2009-12-11 51 views

回答

16

你是否像「如果(x == 1),使這個控制的背景藍色」?如果這就是你所追求的,那麼你可以使用數據觸發器。以下是一個基於某些數據有條件地更改控件背景顏色的示例。在這個例子中,我將它作爲一種風格的一部分,稍後在一些控件中使用它。

<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> 

如果「着色」的變化值,以「紅」,「藍」或「白色」,它會相應地更新DockPanel中的背景屬性。

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