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.

¿Fue útil?

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

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