Je veux être en mesure d'appliquer un style à l'exécution à un objet SEULEMENT si le style actuel est le style par défaut. Je ne souhaite pas remplacer les styles définis par l'utilisateur. Quelqu'un sait-il comment faire ça?Comment puis-je déterminer à l'exécution si le style appliqué à un objet est le style par défaut?
1
A
Répondre
3
Il semble que vous pouvez le faire de cette façon:
DependencyPropertyHelper.GetValueSource(
someControl, FrameworkElement.StyleProperty).BaseValueSource
== BaseValueSource.Default;
Vous pouvez envelopper que jusqu'à dans une méthode d'extension comme ceci:
static public bool HasDefaultStyle(this FrameworkElement item)
{
return DependencyPropertyHelper.GetValueSource(
item, FrameworkElement.StyleProperty).BaseValueSource
== BaseValueSource.Default;
}
Ensuite, vous pouvez simplement appeler someControl.HasDefaultStyle()
.
En outre, un coup d'oeil à cet article: Default Templates in WPF
-1
Cochez DefaultStyleKeyProperty, qui est une propriété statique de tout contrôle personnalisé.
string styleKeyName = DefaultStyleKeyProperty.Name;
Habituellement, s'il n'y a pas de style associé au contrôle, le nom sera « DefaultStyleKey »
Questions connexes
- 1. Appliquer le style WPF par défaut
- 2. Style ContextMenu par défaut - WPF
- 3. Rétablissement d'un style de style CSS par défaut
- 4. Modifier le style de devis par défaut pour htmlentities
- 5. Flex AdvancedDataGrid: MXML ItemRenderers n'affiche pas le style par défaut
- 6. Empêcher asp: ImageButton Style inline par défaut
- 7. Style de validateur ASP.Net par défaut
- 8. Comment changer le style div parent si le contenu augmente?
- 9. Comment mettre le code XAML à droite dans un style?
- 10. Le style n'est pas appliqué à l'en-tête Datagrid dans WPF ... Problème de ressource
- 11. Appliquer le style à tous TreeViewItem
- 12. comment le style curseur
- 13. Définir le style par défaut pour un type dans le code-behind
- 14. éléments de formulaire de style dans Zend Framework avec un style par défaut
- 15. TranslateTransform dans le style
- 16. Pourquoi mon style n'est-il pas appliqué à un élément non HTML dans IE?
- 17. Besoin de savoir si un widget jQuery UI a été appliqué à un objet DOM
- 18. Y at-il un moyen de désactiver/remplacer le style par défaut pour les WebControls désactivés
- 19. Silverlight: Comment définir le style par défaut dans generic.xaml pour la classe enfant?
- 20. rails pour le style
- 21. Est-il possible de "supprimer" le style des éléments HTML?
- 22. Comment ajouter un déclencheur à un contrôle personnalisé WPF sans surcharger le style existant?
- 23. Comment déterminer si un objet Rails est marked_for_destruction?
- 24. Animer d'un style à un autre
- 25. vérifier si la classe css existe dans le fichier de feuille de style dans le code
- 26. Comment afficher le contenu de style JTextPane en HTML, y compris le style personnalisé?
- 27. Comment appliquer un style par défaut pour contrôler dans un contrôle personnalisé
- 28. Comment définir un style de rectangle basé sur le code à partir d'un fichier de ressources XAML par le code
- 29. CMFCButton avec le style Vista
- 30. Comment obtenir le style du texte sélectionné dans un JTextPane?
points bonus pour l'idée de la méthode d'extension !! – Micah