Cómo heredar / extender estilos de un diccionario de recursos?
-
26-09-2019 - |
Pregunta
Tengo problemas para extender uno de mis estilos que he definido en el diccionario de Windows. Solo, parece aplicar el estilo a mis controles como se esperaba. Sin embargo, si intenta extender el estilo en uno de mis controles de usuario, utilizando la propiedad BasedOn, simplemente anula el principal y todos los estilos de base desaparecer. He aquí un ejemplo:
En un diccionario de recursos, llamado dict1.xaml:
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Pink"/>
</Style>
En el window.xaml principal:
<Window.Resources>
<ResourceDictionary Source="dict1.xaml"/>
</Window.Resources>
En un control de usuario llamado userControl1.xaml:
<UserControl.Resources>
<Style BasedOn="{StaticResource {x:Type Button}}"
TargetType="{x:Type Button}">
<Setter Property="FontWeight" Value="Bold"/>
</Style>
</UserControl.Resources>
El estilo en el control de usuario, simplemente anula el uno en el diccionario de recursos y la fuente es negrita. Si quito el estilo en el control de usuario, el estilo en las patadas del diccionario en el fondo y se convierte en rosa. Quiero ambas.
Alguna idea de lo que estoy haciendo mal aquí?
gracias.
Solución
sea necesario añadir el diccionario a los recursos UserControl, o añadirlo a los recursos App.xaml.
Como es, el control de usuario no puede resolver que StaticResource -. Es en el ámbito del control de usuario, no la ventana, si eso tiene sentido