2011-02-18 18 views
8

Normalmente defino el estilo y la plantilla de control en App.xml en la pestaña. Por lo tanto, al diseñar la interfaz de usuario, puedo ver la interfaz de usuario con el estilo aplicado en la vista de diseño en Visual Studio 2008 con .NET3.5.En WPF, ¿Cómo aplicar estilo a UserControl en la vista de diseño?

Sin embargo, en otro caso, a veces hago que UserControl solo proyecte y en ese caso, no hay App.xml por lo que la interfaz de usuario aparece como apariencia predeterminada en la vista de diseño. Es difícil saber realmente buscando en tiempo de ejecución.

¿Hay alguna manera de aplicar estilo a UserControl también? Si hay una manera de compartir el mismo estilo y plantilla entre el proyecto de la aplicación y el proyecto UserControl, ¡eso sería perfecto!

Háganme saber si hay una solución.

+0

Cree una página o ventana como elemento del elemento raíz. Agregue sus recursos a Window.Resources. Agregue su UserControl como contenido de su Ventana. –

Respuesta

4

Puede mantener sus estilos en un ResourceDictionary por separado en su proyecto de control. Luego hay que Merge Dictionaries en el bloque de recursos en la parte superior de cada control de usuario:

<UserControl.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary Source="MyControlLibraryStyles.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</UserControl.Resources> 

El problema con este enfoque es, por supuesto, que se pierde cualquier beneficio que los estilos de aplicaciones de nivel le daría (como peinado diferente para diferentes aplicaciones) porque ahora los estilos están determinados por el control subyacente.

+0

¡Perfecto! Lo que quiero hacer es usar los mismos estilos para todas las aplicaciones, así que perder cualquier beneficio de usar diferentes estilos para diferentes aplicaciones no es un inconveniente para mí. =) Genial. Gracias, Dana. – Aki24x

Cuestiones relacionadas