WPF: ¿Cómo heredo los valores de propiedad de todos los controles secundarios?
-
05-07-2019 - |
Pregunta
Tengo UserControls que contiene otros controles. Quiero que si configuro un color de primer plano para el UserControl, todos los controles secundarios lo heredarán automáticamente. Tengo el mismo problema con el estilo / tamaño de fuente.
¿Puedo configurar estas propiedades de alguna manera para auto / heredar? ¿Es posible configurar todos los subcontroles sin un bucle?
Solución
Puede crear diccionarios de recursos para definir estilos predeterminados globalmente.
También puede hacer referencia a un diccionario de recursos o definir un estilo en cualquier objeto.
En cualquier caso, esos estilos se aplicarán a todos los objetos secundarios que no tengan un estilo definido explícitamente ...
Ejemplo:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<!--Default styles that will apply to any object of the specified type (if it doesn't have style set locally)-->
<Style TargetType="Label" >
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="Padding" Value="0"/>
</Style>
</ResourceDictionary>
Otros consejos
Mira a usar la configuración de Styles y BasedOn.
Recientemente escribí un ejemplo de algo similar ubicado aquí . Desafortunadamente, la pregunta estaba relacionada con Silver Lite, por lo que no respondió a la pregunta, pero creo que puede darle algunas ideas sobre dónde buscar.