它可以通過TextBlock文本值設置TextBlock的前景屬性? 例如:文本值是邁克,前景屬性是黑色,值添,屬性值是綠等我搜索谷歌,但我沒有找到任何解決方案。WPF:如何通過TextBlock文本值設置TextBlock的Foreground屬性?
1
A
回答
2
您具有文本作爲屬性和前景色爲一個屬性模型視圖(實現INotifyPropertyChanged的),有文本塊結合這兩個屬性的模型圖。顏色屬性可以取決於文本屬性。
4
如果你想靈活地做一些聰明的,比如動態文本映射到顏色等,你可以使用一個轉換器類。我假設的文本設置爲綁定的東西,你可以綁定到同一個東西在前臺,但通過自定義轉換器:
<TextBlock Text="{Binding Path=Foo}"
Foreground="{Binding Path=Foo, Converter={StaticResource myConverter}" />
你的轉換器將被定義是這樣的:
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;
}
}
顯然,不是簡單的switch語句,你可以有更智能的邏輯來處理新的值等。
+2
想要添加:如果您不使用靜態資源,則轉換器中的返回值應爲:'新的SolidColorBrush(Colors.Red)'以正確綁定字段值。 – Fragment 2015-09-21 11:12:56
相關問題
- 1. 設置WPF文本TextBlock的
- 2. 如何將TextBlock設置爲屬性值?
- 3. WPF屬性綁定的TextBlock
- 4. 如何將TextBlock文本屬性設置爲字符串資源?
- 5. 如何更改WPF中Textblock的文本屬性?
- 6. 如何在TextBlock中設置文本。
- 7. 從TextBlock的Foreground屬性獲取十六進制代碼
- 8. 如何將TextBlock的文本屬性綁定到文本框的文本屬性
- 9. 如何讓WPF TextBlock在Text屬性異步設置的位置滾動?
- 10. Silverlight TextBlock文本屬性與內容
- 11. 如何設置TextBlock高度
- 12. WPF在ControlTemplate的TextBlock上更改文本屬性
- 13. WPF TextBlock MouseUp更改ViewModel屬性
- 14. 無法將WPF TextBlock綁定到屬性
- 15. 動態設置TextBlock的文本綁定
- 16. WPF TextBlock的MultiBinding
- 17. 當綁定到布爾屬性時設置TextBlock的默認值
- 18. WPF TextBlock BackGround未使用風格設置
- 19. 如何以編程方式設置TextBlock擴展屬性
- 20. Silverlight Textblock設置行
- 21. WPF:在沒有文本時將TextBlock Height設置爲0
- 22. wpf textblock - 僅在文本背後設置背景顏色?
- 23. WPF TextBlock Cutoff
- 24. WPF TextBlock Click Event
- 25. WPF TextBlock ColorAnimation
- 26. WPF ListView TextBlock TextWrapping
- 27. WPF textblock blink
- 28. WPF TextBlock要求
- 29. 將WPF TextBlock綁定到文本文件
- 30. 動畫WPF中的TextBlock文本
我想你會發現,使用這種方法比觸發/轉換器的方法更加靈活和可測試性。 – 2010-11-04 18:51:57