imagine una aplicación wpf donde puedo cambiar dinámicamente el tema. Lo hago intercambiando ResourceDictionaries en el nivel de recursos de la aplicación. Los recursos del tema tienen estilos implícitos definidos para TextBox y similares.Establecer un estilo implícito local diferente de theme-style/alternativo a BasedOn DynamicResource
Ahora tengo una parte en mi aplicación donde los cuadros de texto deben tener este estilo específico "NonDefaultTextBoxStyle" y no el ancho de la aplicación implícita.
Me encantaría hacer esto (usando DynamicResource porque el tema se puede cambiar en tiempo de ejecución):
<StackPanel>
<StackPanel.Resources>
<Style TargetType="TextBox" BasedOn="{DynamicResource NonDefaultTextBoxStyle}"/>
</StackPanel.Resources>
<TextBox .../>
<TextBox .../>
<TextBox .../>
</StackPanel>
en lugar de tener que hacer esto:
<StackPanel>
<TextBox Style="{DynamicResource NonDefaultTextBoxStyle}" .../>
<TextBox Style="{DynamicResource NonDefaultTextBoxStyle}" .../>
<TextBox Style="{DynamicResource NonDefaultTextBoxStyle}" .../>
</StackPanel>
Ahora simplificar esto, tenía esta idea de establecer una propiedad adjunta heredable en el StackPanel que establecería un estilo específico en cada cuadro de texto descendiente.
¿Es esta una buena idea? ¿Hay formas más simples? ¿Me estoy perdiendo de algo?
esta prácticamente se reduce a: ¿Qué es una alternativa a BasedOn = "{...} DynamicResource en un estilo
Sólo puedo animar a leer la pregunta! ¡No estás resolviendo mi problema! –
@ MarkusHütter Ah Veo su pregunta ahora. Bien, continuando con mi respuesta, debería poder cambiar las Propiedades de Dependencias Adheridas en mi solución a 'FrameworkPropertyMetadataOptions.Inherits' (usando este http://msdn.microsoft.com/en-us/library/ms557296.aspx en vez de' UIPropertyMetadata') y luego verifica el tipo de elemento función 'StylesChanged'. La propiedad adjunta solo tendrá que escribirse una vez en el elemento StackPanel. – NtscCobalt
así que te refieres a lo que ya sugerí en la pregunta ... –