Windows Phone上的静态资源转换器

Spr*_*uce 5 silverlight windows-phone-7

希望这应该是一个简单的,我有一个矩形的背景我想显示为手机强调颜色或基于我的视图模型中的布尔值的禁用颜色.

我假设转换器是可行的方法,但不确定访问静态资源的语法.

<Rectangle.Fill>
    <SolidColorBrush Color="{StaticResource PhoneAccentColor}"/>
</Rectangle.Fill>
Run Code Online (Sandbox Code Playgroud)

Ant*_*nes 11

BoolToValueConverter从这篇博客文章中获取通用代码: -

通用布尔值转换器

在你的代码中还包括这个转换器到刷子的专业化: -

public class BoolToBrushConverter : BoolToValueConverter<Brush> { }
Run Code Online (Sandbox Code Playgroud)

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

<Grid.Resources>
   <local:BoolToBrushConverter x:Key="DisabledBrushConv"
      FalseValue="{StaticResource PhoneAccentBrush}"
      TrueValue="{StaticResource PhoneDisabledBrush}" />
</Grid>
Run Code Online (Sandbox Code Playgroud)

然后在矩形中: -

 <Rectangle Fill="{Binding Disabled, Converter={StaticResource DisabledBrushConv}}" ... />
Run Code Online (Sandbox Code Playgroud)

这假定调用视图模型中的属性Disabled.