Question

Je vais avoir du mal à étendre un de mes styles que je l'ai défini dans le dictionnaire de Windows. Seul, il semble appliquer le style à mes contrôles comme prévu. Toutefois, si essayer d'étendre le style dans un de mes usercontrols, en utilisant la propriété BasedOn, il remplace simplement le principal et tous les styles de base dissapear. Voici un exemple:

Dans un dictionnaire de ressources, du nom dict1.xaml:

<Style TargetType="{x:Type Button}">
    <Setter Property="Background" Value="Pink"/>
</Style>  

Dans la principale window.xaml:

<Window.Resources>
    <ResourceDictionary Source="dict1.xaml"/>
</Window.Resources>

Dans un contrôle utilisateur appelé userControl1.xaml:

<UserControl.Resources>
    <Style  BasedOn="{StaticResource {x:Type Button}}" 
            TargetType="{x:Type Button}">
        <Setter Property="FontWeight" Value="Bold"/>
    </Style>
</UserControl.Resources>

Le style dans le contrôle utilisateur remplace simplement l'un dans le dictionnaire des ressources et la police est en gras. Si je supprime le style dans le contrôle de l'utilisateur, le style dans les coups de pied dans le dictionnaire et l'arrière-plan devient rose. Je veux les deux.

Toutes les idées ce que je fais mal ici?

merci.

Était-ce utile?

La solution

Vous avez besoin soit d'ajouter le dictionnaire aux ressources UserControl, ou l'ajouter aux ressources app.xaml.

Comme il est, le UserControl ne peut pas résoudre ce StaticResource -. Il est dans le cadre de la UserControl, pas la fenêtre, si cela fait sens

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top