En temas de WPF son simplemente un conjunto de XAML archivos que contienen cada uno un ResourceDictionary que mantiene el estilo y Plantilla las definiciones que se aplican a los controles que se utilizan en la aplicación. Un archivo de tema podría tener este aspecto:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:uc="clr-namespace:MyApp.UserControls">
<!-- Standard look for MyUserControl -->
<Style x:Key="Standard" TargetType="{x:Type uc:MyUserControl}">
<Setter Property="Width" Value="22" />
<Setter Property="Height" Value="10" />
</Style>
</ResourceDictionary>
soporte para temas en una aplicación WPF debe estar habilitado explícitamente añadiendo el siguiente atributo a la asamblea:
[assembly: ThemeInfo(
ResourceDictionary.None,
ResourceDictionaryLocation.SourceAssembly
)]
Esto le dará instrucciones WPF para buscar un recurso incrustado archivo llamado themes \ generic.xaml para determinar el aspecto predeterminado de los controles de la aplicación.
Nótese que cuando la diccionarios temas específicos están contenidos en archivos separados de recursos de montaje, de estilo y de la plantilla de la aplicación debe utilizar un compuesto clave, que dice WPF cuyo conjunto contiene el control que el estilo/plantilla se aplica a . Así que el ejemplo anterior se debe modificar para:?.
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:uc="clr-namespace:MyApp.UserControls;assembly=MyApp">
<!-- Standard look for MyUserControl in the MyApp assembly -->
<Style x:Key="{ComponentResourceKey {x:Type uc:MyUserControl}, Standard}">
<Setter Property="Width" Value="22" />
<Setter Property="Height" Value="10" />
</Style>
</ResourceDictionary>
Enlace está muerto :(¿Recuerdas el artículo – Default