2009-12-11 13 views

Respuesta

16

¿Está buscando algo así como "Si (x == 1), haga que el fondo de este control sea azul"? Si eso es lo que buscas, podrías usar desencadenadores de datos. Aquí hay un ejemplo que cambia el color de fondo de un control de forma condicional en función de algunos datos. En este ejemplo, lo hice parte de un estilo y lo usé más tarde en algunos controles.

<UserControl.Resources> 
    <Style x:Key="ColoringStyle" TargetType="{x:Type DockPanel}"> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding Path=Coloring}" Value="Red"> 
       <Setter Property="Background" Value="#33FF0000"></Setter> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding Path=Coloring}" Value="Blue"> 
       <Setter Property="Background" Value="#330000FF"></Setter> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding Path=Coloring}" Value="White"> 
       <Setter Property="Background" Value="#33FFFFFF"></Setter> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
</UserControl.Resources> 

Si 'colorear' valores cambia a 'Rojo', 'Azul', o 'blanco', se actualizará la propiedad de fondo de la DockPanel en consecuencia.

<DockPanel Style="{StaticResource ColoringStyle}"> 
    ... 
</DockPanel> 
Cuestiones relacionadas