Compartilhar via


Alterações de extensibilidade no Visual Studio 2010

O WPF Designer for Visual Studio fornece uma plataforma de sofisticados para a implementação de experiências de design personalizado para controles WPF e Silverlight . O Extensibilidade do WPF Designer API evoluiu significativamente desde sua inicial versão Visual Studio 2008. As seções a seguir descrevem as alterações na Extensibilidade do WPF Designer para Visual Studio 2010.

Suporte para o Silverlight e várias versões de plataforma

Em Visual Studio 2008, tempo de design do controle foram capaz de destino somente o WPFplataformamais recenteversão. Em Visual Studio 2010, esse suporte é estendido em várias plataformas, incluindo o design-tempo de suporte para WPF 3.5, o WPF 4, Silverlight 3 e plataforma de futuras versões. Como a mesma API de extensibilidade existe para todas essas plataformas, os autores de tempo de design do controle podem gravar uma experiência facilmente e compartilhá-lo entre os tempos de execução do controle para cada plataforma.

Suporte no Expression Blend

Suas implementações de tempo de design-de controle podem agora destino Expression Blend, usando a mesma extensibilidade interface disponível no Visual Studio. Você pode decidir entregar separado ou experiências de tempo de design-comum para os dois ambientes de criação.

Registrando os metadados

A diferença mais significativa na extensibilidade API é que o IRegisterMetadata interface foi substituído com o IProvideAttributeTable interface. Essa alteração, juntamente com a habilitação do suporte a várias plataforma , criou alterações significativas na extensibilidade API. Isso significa que o controle existente implementações de tempo de design-para Visual Studio 2008 não será carregada em Visual Studio 2010.

Além disso, em Visual Studio 2010, você pode usar o ProvideMetadataAttribute atributo para indicar que um tempo de design- assembly fornece metadados para o designer.

Novo Pontos de extensibilidade

extensibilidade nova API também oferece suporte a novas experiências de tempo de design-, incluindo o seguinte:

  • No janela Propriedades, suporte para acessar o modelo de editores de categoria . Essa alteração é aliada a elevação de propriedades comuns para a parte superior da listagem da categoria , para permitir que os autores de controle fornecer experiências de edição no janela Propriedades.

  • Novo AdornerPanel métodos de utilitário para habilitar o posicionamento mais fácil de adorno relativas ao controle personalizado.

  • Novo modelo de programação para o compartilhamento de implementações de tempo de design-entre as ferramentas de design diferente, como Visual Studio e Expression Blend.

  • Novo modelo de programação para o compartilhamento de implementações de tempo de design-entre várias estruturas de destino .

Comparando a extensibilidade no Visual Studio 2008 e o Visual Studio 2010

A tabela a seguir resume as diferenças entre a criação de experiências de tempo de design personalizado-em Visual Studio 2008 e Visual Studio 2010.

Visual Studio 2008

Visual Studio 2010

Para registrar os tipos de tempo de design-, implementar a IRegisterMetadata interface e o uso de MetadataStore classe.

Para registrar os tipos de tempo de design-, implementar a IProvideAttributeTable interface e a chamada a CreateTable método.

Você não precisa adicionar assembly-atributos no nível.

Você deve marcar assemblies de tempo de design-com o ProvideMetadataAttribute atributo.

Para associar um tipo de designer de um elemento gráfico, use o GetImageométodo em NewItemFactory, que pode retornar vários tipos de elemento.

Para associar um tipo de designer de um ícone, use o GetImageStream método para retornar um bitmap. Somente os bitmaps são suportados.

Para acessar as propriedades do modelo, use a propriedade de dependência, por exemplo:

ModelProperty backgroundProperty = adornedControlModel.Properties[Control.BackgroundProperty];

Para acessar as propriedades do modelo, use o nome da propriedade de dependência, por exemplo:

ModelProperty backgroundProperty = adornedControlModel.Properties["Background"];

Além disso, você pode definir um PropertyIdentifier, que é uma combinação de tipo/string. PropertyIdentifieré usado com propriedades anexadas, quando uma pesquisa de nome simples não é suficiente.

Para distinguir entre o espaço de layout e processamento, use o deAdornerCoordinateSpacesclasse.

O deAdornerCoordinateSpacesclasse não é usado.

Para especificar o local de adorno em relação ao conteúdo, use o AdornerPlacementCollection classe.

Para especificar o local de adorno em relação ao conteúdo, use o SetAdornerHorizontalAlignment, SetAdornerVerticalAlignment, e SetAdornerMargin métodos. O deAdornerPlacementCollectionclasse é mantido para compatibilidade com versões anteriores.

Consulte também

Outros recursos

Extensibilidade do WPF Designer