2011-03-07 10 views
5

Espero que esto sea fácil, tengo un fondo de un rectángulo que quiero mostrar como el color de acento del teléfono o un color desactivado basado en un booleano en mi modelo de vista.Convertidor de recursos estáticos en Windows Phone

Supongo que los convertidores son el camino a seguir, pero no estoy seguro de la sintaxis para acceder a los recursos estáticos.

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

Respuesta

11

Coge el código de un genérico BoolToValueConverter de este artículo en el blog: -

A Generic Boolean Value Converter

también incluyen en su código de esta especialización para un convertidor a un cepillo: -

public class BoolToBrushConverter : BoolToValueConverter<Brush> { } 

Ahora agregue el convertidor a su Xaml de esta manera: -

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

Luego, en rectángulo: -

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

Esto supone el establecimiento con su modelo de vista se llama Disabled.

+0

Spot on, thank you :) – Spruce

0

tiene dos opciones:

  1. utilizar un converter
  2. definir una propiedad en su modelo de vista que devuelve un cepillo basado en el valor booleano. Preferiría esta solución porque el rendimiento de los convertidores es más notable en el teléfono que en el escritorio.