Comment hériter du style XAML et remplacer la propriété de l'élément enfant?
on vient juste de commencé avec XAML et se battent encore avec des questions de base:
Venant de CSS, nous aimerions définir un bouton générique de style personnalisé pour le modèle de contrôle et ensuite avoir un deuxième style hériter de tout, de la première de style à l'aide de "basée. Ce second style doit alors modifier les propriétés telles par exemple "couleur de premier plan" (qui fonctionne), mais également les propriétés des éléments enfants dans notre modèle personnalisé tels que la "couleur de fond", par exemple un élément de frontière etc. (qui ne fonctionne pas).
Ce qui est de l'approche générale pour aller sur ce genre de choses? Jusqu'où peut-on aller avec les styles en cascade?
Cheers!
source d'informationauteur Flosta
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser hérité d'un style sans clé référence:
J'ai (Dans mon application WPF) par défaut (de base) des styles définis dans ResourceDictionary dans l'App.xaml (au démarrage du projet). Par exemple pour le bouton comme suit.
Dans tous les points de vue-je utiliser (par défaut) ce style général (automatiquement hérité)! Quand j'ai besoin de changer ou d'ajouter un peu de bien dans le style par défaut (défini dans l'Application.xaml) - je créer un nouveau style basé sur le style par défaut.
Quand j'ai besoin de cacher ou fortement redéfini le style par défaut (dans certains) j'ai créer un nouveau style (sur la base de rien).
Vous pouvez, bien sûr, se poursuit dans l'héritage dans l'App.xaml ou en vue spécifique. Vous pouvez basée à new nommé de style sur le style par défaut et utiliser le nouveau style par nom. Par exemple RedButton et GreenButton style.
Etc...
REMARQUE: au lieu de définir votre style en Application.xaml, vous pouvez utiliser autonome de la bibliothèque (dll) avec des styles que et ResourceDictionary à partir de votre bibliothèque App.xaml ResourceDictionary.MergedDictionaries.
L'approche standard à une prise de contrôle personnalisable modèle est à utiliser objet templatebinding dans le modèle de lier des propriétés du contrôle, puis à l'ensemble de ces propriétés dans les styles enfant.
Par exemple, cela crée un bouton modèle avec un contrôle à la Frontière, et se lie à l'arrière-plan de la Frontière, à l'arrière-plan de la propriété de la Touche. En définissant la propriété Background de Bouton dans d'autres styles, il change l'arrière-plan de la propriété de la Frontière.
De nombreuses propriétés sur le Contrôle sont destinés à être utilisés dans les modèles de contrôle, et ne pas affecter d'autres comportement si elles sont modifiées. Ils sont BorderBrush, BorderThickness, Fond, Rembourrage, HorizontalContentAlignment, et VerticalContentAlignment.