Pregunta

Tengo un control de usuario WPF definido en un conjunto de aplicación. Estoy tratando de peinar el control de usuario basada en los estilos en otro montaje (piel o el tema). No quiero que el conjunto temático / piel que contiene el ResourceDictionary con todos los estilos para hacer referencia al conjunto de aplicación. ¿Hay alguna manera de hacer esto? Por ejemplo.

Asamblea WPFApplication

MyUserControl.xaml <- control de usuario WPF

Asamblea Tema

MyStyles.xaml <- diccionario de recursos WPF

Asumo que puedo utilizar

<Style x:Key="MyStyle">
    <Setter Property="Background" Value="Red" />
</Style>

en la ResourceDictionary MyStyles.xaml, y uso:

<l:MyUserControl Name="control" Style="{StaticResource MyStyle}" />

en cualquier ventana que utiliza MyUserControl.xaml en el montaje WPFApplication

Sin embargo, yo preferiría para apuntar el control de usuario personalizado en el ResourceDictionary MyStyles.xaml:

<Style TargetType="{x:Type l:MyUserControl}" x:Key="MyStyle">
        <Setter Property="Background" Value="Red" />
    </Style>

¿Es esto posible ??

¿Fue útil?

Solución

Sí, puede hacerlo. Marque esta SO enviar donde muestro cómo hacerlo mediante programación. Lo hacía con ControlTemplates, pero exactamente lo mismo se aplica a los estilos también.

Para hacerlo de forma declarativa puede ser más simple, puede que tenga que fusionar sus resourcedictionaries mediante programación, declarar las StaticResources adecuadas y espacios de nombres en su xaml, y luego simplemente hacer referencia al estilo / plantilla que desee.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top