Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Fornece uma maneira para autores de controle personalizados ou aplicativos que integram controles de terceiros para carregar dicionários de recursos específicos do tema a serem usados no estilo do controle.
Uso do atributo XAML
<object property="{ThemeDictionary assemblyUri}" ... />
Uso de elementos de objeto XAML
<object>
<object.property>
<ThemeDictionary AssemblyName="assemblyUri"/>
<object.property>
<object>
Valores XAML
| Valor | Descrição |
|---|---|
assemblyUri |
O identificador uniforme de recurso (URI) do assembly que contém informações de tema. Normalmente, esse é um URI de pacote que faz referência a um assembly no pacote maior. Recursos de assemblagem e URIs de pacotes simplificam problemas de implantação. Para obter mais informações, consulte URIs do Pacote no WPF. |
Observações
Essa extensão destina-se a preencher apenas um valor de propriedade específico: um valor para ResourceDictionary.Source.
Usando essa extensão, você pode especificar um único assembly somente de recursos que contenha alguns estilos a serem usados somente quando o tema do Windows Aero for aplicado ao sistema do usuário, outros estilos somente quando o tema Luna estiver ativo e assim por diante. Usando essa extensão, o conteúdo de um dicionário de recursos específico do controle pode ser invalidado automaticamente e recarregado para ser específico para outro tema quando necessário.
A assemblyUri cadeia de caracteres (AssemblyName valor da propriedade) forma a base de uma convenção de nomenclatura que identifica qual dicionário se aplica a um tema específico. A lógica para ProvideValue conclui a convenção ao gerar um identificador uniforme de recursos (URI) que aponta para uma variante específica do dicionário de temas, conforme contido em um assembly de recursos pré-compilado. Descrever essa convenção, ou as interações de tema com o estilo de controle geral e o estilo de nível de página/aplicativo como um conceito, não está totalmente abordado aqui. O cenário básico para o uso de ThemeDictionary é especificar a propriedade Source de ResourceDictionary declarado no nível da aplicação. Quando você fornece um URI para o assembly por meio de uma ThemeDictionary extensão e não como um URI direto, a lógica de extensão fornecerá uma lógica de invalidação que se aplica sempre que o tema do sistema for alterado.
A sintaxe do atributo é a sintaxe mais comum usada com essa extensão de marcação. O token de cadeia de caracteres fornecido após o identificador ThemeDictionary é atribuído como o valor AssemblyName da classe de extensão ThemeDictionaryExtension subjacente.
ThemeDictionary também pode ser usado na sintaxe do elemento de objeto. Nesse caso, é necessário especificar o valor da propriedade AssemblyName.
ThemeDictionary também pode ser usado em um atributo detalhado que especifica a propriedade Member como sendo o par propriedade=valor:
<object property="{ThemeDictionary AssemblyName=assemblyUri}" ... />
O uso detalhado geralmente é útil para as extensões que têm mais de uma propriedade configurável, ou caso algumas propriedades sejam opcionais. Como ThemeDictionary tem apenas uma propriedade configurável, a qual é obrigatória, esse uso verboso não é típico.
Na implementação do processador XAML do WPF, a manipulação dessa extensão de marcação é definida pela classe ThemeDictionaryExtension.
ThemeDictionary é uma extensão da marcação. As extensões de marcação normalmente são implementadas quando há um requisito para escapar de valores de atributo que não sejam valores literais ou nomes de manipulador, e o requisito é mais global do que apenas colocar conversores de tipo em determinados tipos ou propriedades. Todas as extensões de marcação no XAML usam os caracteres { e } em sua sintaxe de atributo, que é a convenção pela qual um processador XAML reconhece que uma extensão de marcação deve processar o atributo. Para obter mais informações, consulte Extensões de marcação e XAML do WPF.
Consulte também
.NET Desktop feedback