2011-03-07 23 views
5

希望这应该是一个简单的,我有一个矩形的背景,我想显示为电话口音颜色或基于我的视图模型中的布尔值禁用的颜色。Windows Phone上的静态资源转换器

我假设转换器是要走的路,但不确定访问静态资源的语法。

<Rectangle.Fill> 
    <SolidColorBrush Color="{StaticResource PhoneAccentColor}"/> 
</Rectangle.Fill> 

回答

11

抓斗从这个博客文章通用BoolToValueConverter代码: -

A Generic Boolean Value Converter

也包括在你的代码这种专业化的转换为Brush: -

public class BoolToBrushConverter : BoolToValueConverter<Brush> { } 

现在将转换器添加到您的Xaml中,如下所示: -

<Grid.Resources> 
    <local:BoolToBrushConverter x:Key="DisabledBrushConv" 
     FalseValue="{StaticResource PhoneAccentBrush}" 
     TrueValue="{StaticResource PhoneDisabledBrush}" /> 
</Grid> 

然后在矩形: -

<Rectangle Fill="{Binding Disabled, Converter={StaticResource DisabledBrushConv}}" ... /> 

这里假设你的视图模型的属性被称为Disabled

+0

现货,谢谢:) – Spruce 2011-03-08 10:36:04

0

你有两个选择:

  1. 使用converter
  2. 定义返回基于布尔值,刷上你的视图模型的属性。我更喜欢这个解决方案,因为在手机上的转换器的性能比在桌面上更显着。