Если вы хотите гибко делать что-то умное, например, динамически отображать текст в цвета и т. Д., Вы можете использовать класс Converter.Я предполагаю, что текст настроен для привязки к чему-либо, вы можете привязать к тому же чему-либо в Foreground, но с помощью специального конвертера:
<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 вы могли бы иметь более разумную логику для обработки новых значений и тому подобное.