est-il possible de définir la propriété de premier plan d'une valeur de texte TextBlock by TextBlock? Par exemple: La valeur du texte est Mike, la propriété du premier plan est Noire, la valeur est Tim, la valeur de la propriété est verte, etc. Je recherche avec google, mais je ne trouve aucune solution.WPF: Comment définir la propriété Foreground d'une valeur de texte TextBlock by TextBlock?
Répondre
vous avez une vue de modèle (implémentant INotifyPropertyChanged) qui a le texte en tant que propriété et la couleur de premier plan en tant que propriété, le bloc de texte lie ces deux propriétés à la vue modèle. la propriété color peut dépendre de la propriété text.
Si vous voulez avoir la possibilité de faire quelque chose de malin, comme mapper dynamiquement des textes sur des couleurs, etc., vous pouvez utiliser une classe Converter. Je suppose que le texte est mis à se lier à quelque chose, vous pouvez lier à la même chose au premier plan, mais par un convertisseur de mesure:
<TextBlock Text="{Binding Path=Foo}"
Foreground="{Binding Path=Foo, Converter={StaticResource myConverter}" />
serait défini Votre convertisseur quelque chose comme ceci:
public class ColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string text = (string)value;
switch (text)
{
case "Mike":
return Colors.Red;
case "John":
return Colors.Blue;
default:
return Colors.Black;
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
Évidemment, au lieu de l'instruction switch simple, vous pourriez avoir une logique plus intelligente pour gérer de nouvelles valeurs et autres.
Voulez ajouter: Si vous n'utilisez pas de ressources statiques, la valeur renvoyée dans le convertisseur doit être: 'new SolidColorBrush (Colors.Red)' pour lier correctement la valeur du champ. – Fragment
- 1. Réglage texte WPF à TextBlock
- 2. WPF - TextBlock - Format texte Programmatically
- 3. WPF TextBlock texte modifié notifier
- 4. Comment définir la hauteur TextBlock
- 5. Silverlight, wpf mesure problème de texte TextBlock!
- 6. Alignement vertical du texte dans WPF TextBlock
- 7. WPF Textblock Convert Édition
- 8. Définir de manière dynamique la liaison de texte de TextBlock
- 9. WPF: texte automatique tronqué dans TextBlock
- 10. Lier WPF TextBlock au fichier texte
- 11. Format WPF DateTime dans TextBlock?
- 12. Silverlight TextBlock Valeur de propriété de la propriété avant l'application de la liaison
- 13. WPF TextBlock Texte de débordement vers la gauche
- 14. Liaison TextBlock Linq ToSql & WPF
- 15. C# WPF - Défauts ScrollViewer + TextBlock
- 16. WPF TextBlock dynamique gras et italique parties
- 17. Comment afficher le texte dans une ligne dans wpf textblock
- 18. Comment effacer TextBlock
- 19. Comment détecter une modification dans la propriété Text d'un TextBlock?
- 20. WPF Label vs TextBlock dans la bordure?
- 21. WPF TextBlock Nombre négatif en rouge
- 22. WPF - TextBlock - Impossible de surcharger OnRender
- 23. Erreur de bug ou erreur utilisateur? Impossible de définir la propriété VerticalAlignment de TextBlock sur Centre
- 24. Comment lier plusieurs valeurs à un seul TextBlock WPF?
- 25. Changement DataTemplate TextBlock propriété à l'exécution
- 26. TextBlock Databinding
- 27. Avec WPF, comment faire pour réduire un TextBlock en fonction du contenu de son TextBlock enfant?
- 28. WPF: Dessiner au-dessus d'un TextBlock
- 29. Comment changer la couleur d'arrière-plan d'un Textblock dans Silverlight?
- 30. Problème avec ItemTemplate TextBlock
Je pense que vous constaterez que cette approche est beaucoup plus flexible et testable que l'approche déclencheur/convertisseur. –