2010-02-10 5 views
2

Ainsi, lorsque j'applique des styles tapés supplémentaires dans mon application, je n'ai pas besoin de faire la chose BasedOn pour qu'ils soient fusionnés avec mon style global personnalisé. Vous savez, comme c'est le cas avec les propres styles de Microsoft. Essentiellement, je veux appliquer mon style à number 9 au lieu de 8.Comment remplacer le style par défaut d'un contrôle WPF?

Si c'est pertinent: je veux aussi complètement ignorer les thèmes et tout ce qui pourrait faire que mon application apparaisse différemment sur différentes machines. Edit: Je veux faire cela pour les contrôles que je n'ai pas fait, comme, Button.

+0

Vous pouvez vérifier comment la boîte à outils WPF (http://wpf.codeplex.com/wikipage?title=WPF%20Themes) fait et utiliser la même technique. – Heinzi

+0

En fait, vous voudrez le faire au # 8. # 9 est pour les styles pour différents thèmes. Vous voulez un style quel que soit le thème, de sorte que vous fassiez toujours partie de vos styles dans les ressources de l'application afin qu'ils _overrissent_ le style du thème. –

Répondre

3

Il semble que ce que vous voulez faire est de créer un style Generic.xaml (thème) différent pour un contrôle, mais ce n'est pas quelque chose qui est destiné aux contrôles intégrés. Vous pouvez peut-être créer un autre ensemble de thèmes avec vos styles que vous pouvez tromper WPF en le chargeant (c'est-à-dire PresentationFramework.Aero.dll) ou en sous-classant les contrôles sur lesquels vous souhaitez remplacer les modèles. Avant d'aller dans cette direction, vous devriez vraiment évaluer si cela vaut la peine d'investir du temps. Tout ce que vous pourriez être en mesure de se rendre au travail va ajouter de la complexité et être beaucoup de travail supplémentaire juste pour changer vos déclarations par défaut locales Style de

<Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}"> 

à

<Style TargetType="{x:Type Button}"> 

En ce qui concerne les thèmes ignorant , il n'y a pas grand-chose que vous pouvez contrôler en ce qui concerne le processus de sélection automatique. La manière standard de le faire est de copier le Style par défaut d'un thème spécifique dans votre App.xaml en tant que Style par défaut de votre application et de le modifier si nécessaire, mais cela crée évidemment la situation que vous essayez d'échapper.

Questions connexes