Partilhar via


Passo a passo: Fornecendo metadados de tempo de design personalizados

O WPF Designer for Visual Studio permite que você forneça um design personalizado-tempo metadados para designers diferentes. Por exemplo, você pode experiências de design diferente do destino para seus controles personalizados em Visual Studio e Expression Blend. Para registrar seu tempo de design personalizado- metadados com o designer, você implementa o IProvideAttributeTable interface e a chamada da AddCustomAttributes métodos.

Esta explicação passo a passo mostra como fornecer implementações de tempo de- WPF ou do Silverlightcontrole personalizadodebibliotecade design personalizado. In this walkthrough, you perform the following tasks:

  • Create a WPF custom control library project.

  • Create a separate assembly for design-time metadata.

Quando tiver terminado, você saberá como fornecer o tempo de design personalizado- metadados para umcontrole personalizadodo WPF ou do Silverlight.

ObservaçãoObservação

Caixas de diálogo e comandos de menu que você vê podem diferir das descritas na Help dependendo das suas configurações ativas ou edição. Para alterar as configurações, escolha Import and Export Settings sobre o Ferramentas menu. For more information, see Trabalhando com configurações.

Pré-requisitos

You need the following components to complete this walkthrough:

  • Visual Studio 2010.

Creating the Custom Control

A primeira etapa é criar o projeto para ocontrole personalizadodo WPF.

To create the custom control

  1. Criar uma biblioteca de controlePersonalizar WPFnovo projeto em Visual Basic ou o Visual C# chamado TailspinToysControlLibrary.

    The code for CustomControl1 opens in the Code Editor.

    ObservaçãoObservação

    Se o seu design personalizado enfrentar só precisa destino 4 do Expression Blend e Visual Studio 2010, defina a estrutura do projetode destino para.NET Framework 4. Se a sua experiência de design personalizado deve destino 3 do Expression Blend, 4 do Expression Blend, e Visual Studio 2010, defina a estrutura do projetode destino para.NET Framework 3.5.

  2. Em Solution Explorer, altere o nome do arquivo de código para TailspinToysControl.cs ou TailspinToysControl.vb. If a message box appears that asks if you want to perform a rename for all references in this project, click Yes.

  3. Abra as propriedades do projeto e selecione o Build (compilar para Visual Basic) guia.

  4. Set the project's output path to "bin\".

  5. Build the solution.

Creating the Design-time Metadata Assembly

Design-time code is deployed in special metadata assemblies. Para esta explicação passo a passo, os metadados personalizados que é suportado pelo Visual Studio e o Expression Blend e é implantado em um assembly chamado TailspinToysControlLibrary.Design. Para obter mais informações sobre nomenclatura de assemblies, consulte Implantando um controle personalizado e assemblies de tempo de design.

To create the design-time metadata assembly

  1. Adicionar um novo Class Library projeto em Visual Basic ou o Visual C# chamado TailspinToysControlLibrary.Design à solução.

  2. Definir o caminho de saída do projeto"... \TailspinToysControlLibrary\bin\ ". This keeps the control's assembly and the metadata assembly in the same folder, which enables metadata discovery for designers.

  3. Adicionar referências para os seguintes assemblies do WPF e XAML .

    • PresentationCore

    • PresentationFramework

    • System.XAML

    • WindowsBase

  4. Add references to the following WPF Designer assemblies. 

    • Microsoft.Windows.Design.Extensibility

    • Microsoft.Windows.Design.Interaction

    ObservaçãoObservação

    Se você tiver instalado do Expression Blend, você poderá ver os dois conjuntos de WPF Designer assemblies em referências de Adicionar caixa de diálogo. Selecione os dois assemblies que são instalados com Visual Studio, localizado na pasta \Common7\IDE\PublicAssemblies $(VSInstallDir).

    ObservaçãoObservação

    Se a WPF Designer assemblies não aparecem na caixa de diálogode Adicionar referências. Clique o Procurar guia e navegue até os assemblies na pasta \Common7\IDE\PublicAssemblies $(VSInstallDir).

  5. Adicionar uma referência ao projetode TailspinToysControlLibrary.

  6. Em Solution Explorer, altere o nome do arquivo de código Class1 para RegisterMetadata.cs ou RegisterMetadata.vb.

  7. Replace the automatically generated code with the following code. Esse código cria um AttributeTable que anexa os atributos de tempo de design personalizado-para o TailspinToysControl classe.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    using Microsoft.Windows.Design;
    using Microsoft.Windows.Design.Features;
    using Microsoft.Windows.Design.Metadata;
    
    using TailspinToysControlLibrary;
    
    // The ProvideMetadata assembly-level attribute indicates to designers
    // that this assembly contains a class that provides an attribute table. 
    [assembly: ProvideMetadata(typeof(TailspinToysControlLibrary.Design.RegisterMetadata))]
    namespace TailspinToysControlLibrary.Design
    {
        internal class RegisterMetadata : IProvideAttributeTable
        {
            // Called by the designer to register any design-time metadata. 
            public AttributeTable AttributeTable
            {
                get
                {
                    AttributeTableBuilder builder = new AttributeTableBuilder();
    
                    // Set ToolboxBrowsableAttribute to true to display your custom control 
                    // in the Toolbox and in the Choose Items... dialog box. 
                    builder.AddCustomAttributes(typeof(TailspinToysControl), new ToolboxBrowsableAttribute(true));
    
                    return builder.CreateTable();
                }
            }
        }
    }
    
  8. Build the solution.

Próximas etapas

Consulte também

Tarefas

Passo a passo: Criando um ícone de caixa de ferramentas personalizada para um controle

Referência

AttributeTable

Componentes do WPF de tabulação, escolha a caixa de diálogo de itens da caixa de ferramentas

Outros recursos

Passo a passo: Fornecendo metadados para ícones de caixa de ferramentas

Ícones de caixa de ferramentas

Implantando um controle personalizado e assemblies de tempo de design

Fornecimento de metadados de tempo de design