2011-02-13 68 views
2

我试着做一个应该容易的东西,不幸的是我不能想象如何:我想要一个TextBlock在白色和负数字中正面分子在红色(很原始,嗯)我希望这个东西只能在视图方面实现。我看到VisualStateManager,但显然我需要在后面的代码中驱动它以手动更改状态。应该有一些easyer:在WPF中,我将使用带有ValueConverter的触发器,Silverlight中是否有类似的东西?根据值更改在Silverlight4中的文本块的ForeColor

回答

1

它在Silverlight中是一样的。创建一个实现IValueConverter的类,将其添加为控件中的资源。将您的笔刷绑定到感兴趣的属性,然后将Binding表达式转换器属性设置为您的资源。完成。

public class BrushColorConverter : IValueConverter 
    { 

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return ((int)value >= 0) ? new SolidColorBrush(Colors.White) : new SolidColorBrush(Colors.Red); 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
    } 
+1

你XAML将``(从存储器) – ChrisF 2011-02-13 14:26:46