Конвертер статических ресурсов на Windows Phone - PullRequest
5 голосов
/ 07 марта 2011

Надеюсь, это должно быть легко, у меня есть фон прямоугольника, который я хочу отобразить как цвет акцента телефона или отключенный цвет на основе логического значения в моей модели представления.

Я предполагаю, что конвертеры - это путь, но я не уверен в синтаксисе для доступа к статическим ресурсам.

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

Ответы [ 2 ]

11 голосов
/ 07 марта 2011

Получите код для обобщенного BoolToValueConverter из этой статьи блога: -

Универсальный преобразователь логических значений

Также включите в свой код эту специализацию дляконвертер в кисть: -

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 голосов
/ 07 марта 2011

У вас есть два варианта:

  1. Использовать конвертер
  2. Определите свойство в вашей модели представления, которое возвращает Brush на основе логического значения. Я бы предпочел это решение, поскольку снижение производительности конвертеров на телефоне заметнее, чем на рабочем столе.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...