Windows Phone上的静态资源转换器

5
希望这个很容易,我有一个矩形的背景,我想根据我的视图模型中的布尔值将其显示为手机强调颜色或禁用颜色。
我认为转换器是正确的方法,但不确定如何获取静态资源的语法。
<Rectangle.Fill>
    <SolidColorBrush Color="{StaticResource PhoneAccentColor}"/>
</Rectangle.Fill>
2个回答

11

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

一个通用的布尔值转换器

还要在您的代码中包括这个特定于转换为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

你有两个选择:

  1. 使用转换器
  2. 在你的视图模型上定义一个属性,该属性根据布尔值返回Brush。我更喜欢这个解决方案,因为转换器对手机的性能影响比桌面更明显。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接