Question

I ai un contrôle utilisateur WPF défini dans un ensemble d'application. Je suis en train de définir le style du contrôle de l'utilisateur en fonction des styles dans un autre (peau ou thème) l'assemblage. Je ne veux pas l'ensemble thème / peau qui contient le ResourceDictionary avec tous les styles pour faire référence à l'ensemble d'application. Y a-t-il une manière de faire ça? Par exemple.

Assemblée WPFApplication

MyUserControl.xaml <- contrôle utilisateur WPF

Assemblée Thème

MyStyles.xaml <- dictionnaire de ressources WPF

Je suppose que je peux utiliser

<Style x:Key="MyStyle">
    <Setter Property="Background" Value="Red" />
</Style>

dans le ResourceDictionary de MyStyles.xaml, et l'utilisation:

<l:MyUserControl Name="control" Style="{StaticResource MyStyle}" />

dans une fenêtre qui utilise MyUserControl.xaml dans l'ensemble de WPFApplication

Cependant, je préférerais cibler le contrôle utilisateur personnalisé dans le MyStyles.xaml ResourceDictionary:

<Style TargetType="{x:Type l:MyUserControl}" x:Key="MyStyle">
        <Setter Property="Background" Value="Red" />
    </Style>

Est-ce possible ??

Était-ce utile?

La solution

Oui, vous pouvez le faire. Vérifiez ce poste SO où je montre comment le faire programme. Je le faisais avec ControlTemplates, mais la même chose s'applique aux styles.

Pour ce faire, il peut être plus simple déclarative, vous devrez peut-être fusionner votre programme resourcedictionaries, déclarer les bons StaticResources et les espaces de noms dans votre XAML, puis faire référence à tout le style / modèle que vous souhaitez.

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