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çã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
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çã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.
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.
Abra as propriedades do projeto e selecione o Build (compilar para Visual Basic) guia.
Set the project's output path to "bin\".
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
Adicionar um novo Class Library projeto em Visual Basic ou o Visual C# chamado TailspinToysControlLibrary.Design à solução.
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.
Adicionar referências para os seguintes assemblies do WPF e XAML .
PresentationCore
PresentationFramework
System.XAML
WindowsBase
Add references to the following WPF Designer assemblies.
Microsoft.Windows.Design.Extensibility
Microsoft.Windows.Design.Interaction
Observaçã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çã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).
Adicionar uma referência ao projetode TailspinToysControlLibrary.
Em Solution Explorer, altere o nome do arquivo de código Class1 para RegisterMetadata.cs ou RegisterMetadata.vb.
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(); } } } }
Build the solution.
Próximas etapas
Esta explicação passo a passo fornece uma solução que contém a implementação básica para uma experiência de designer de personalizado que funciona em Visual Studio e Expression Blend. Você pode expandir esta solução executando a instrução a seguir.
Você pode registrar seu controle e o design-assemblies de tempo usando o procedimentode registro de AssemblyFoldersEx. For more information, see Implantando um controle personalizado e assemblies de tempo de design.
Você pode baixar a exemplos de implementações do tempo-de design personalizado da Exemplos de extensibilidade doWPF Designer site.
Consulte também
Tarefas
Passo a passo: Criando um ícone de caixa de ferramentas personalizada para um controle
Referência
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