J'ai une question WPF débutant.Est-il possible de fournir un convertisseur de type pour une ressource statique dans WPF?
Imaginez mon contrôle utilisateur a une déclaration d'espace de noms comme ceci:
xmlns:system="clr-namespace:System;assembly=mscorlib"
Et j'avoir des ressources pour le contrôle de l'utilisateur comme ceci:
<UserControl.Resources>
<system:Int32 x:Key="Today">32</system:Int32>
</UserControl.Resources>
Et puis quelque part dans mon contrôle utilisateur Je possède ce :
<TextBlock Text="{StaticResource Today}"/>
Cela provoquera une erreur car Today
est défini comme une ressource entière, mais la propriété Text attend une chaîne. Cet exemple est artificiel, mais nous espérons qu'il illustre la question.
La question est, à court de faire correspondre exactement mon type de ressource au type de propriété, est-il un moyen pour moi de fournir un convertisseur pour mes ressources? Quelque chose comme IValueConverter pour les liaisons ou un convertisseur de type.
Merci!
Parfait, merci pour l'information! – Notre
Et si vous vouliez obtenir les composants de couleur d'un StatisResource qui est une couleur? (Par exemple, pour modifier l'opacité de la couleur StaticResource.) L'opération suivante ne semble pas fonctionner: –
Cela ne fonctionne pas car vous ne pouvez définir qu'une liaison sur un DependencyProperty d'un DependencyObject. La couleur est une structure Vous pouvez créer votre propre objet wrapper de couleur, DepdendencyProperty, et exposer les propriétés A, R, G, B et Color qui sont elles-mêmes des DP. La modification de l'une des propriétés mettrait à jour la propriété Color, et sa modification mettrait à jour tous les autres. –