2010-06-09 25 views
0

我有一個顯示窗口名稱的標籤。我想使用樣式和觸發器更新窗口的IsActive屬性上的標籤顏色,以便所有繼承此樣式的標籤都應該顯示相同的屬性。請任何人都可以告訴我如何?更新窗口活動屬性上的標籤的前景-WWF

我想是這樣的:

<Style TargetType="{x:Type Label}" x:Key="HeaderLabel"> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding (Window.IsActive)}" Value="True"> 
      <Setter Property="FontSize" Value="15"/> 
      <Setter Property="FontWeight" Value="Bold"/> 
      <Setter Property="FontFamily" Value="Arial"/> 
      <Setter Property="Foreground" Value="Black"/> 
      <Setter Property="HorizontalAlignment" Value="Left"/> 
     </DataTrigger> 
     <DataTrigger Binding="{Binding (Window.IsActive)}" Value="False"> 
      <Setter Property="FontSize" Value="15"/> 
      <Setter Property="FontWeight" Value="Bold"/> 
      <Setter Property="FontFamily" Value="Arial"/> 
      <Setter Property="Foreground" Value="White"/> 
      <Setter Property="HorizontalAlignment" Value="Left"/> 
     </DataTrigger> 

    </Style.Triggers> 
</Style> 

回答

1

嘗試在DataTrigger這種結合:

Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=IsActive}" 
0

通過標籤,這表明你的意思是在窗口標題欄上的一個窗口的名字嗎?或者是其他東西?

如果是後者,則可以設置標籤的默認樣式,並僅使用一個觸發器來處於非活動狀態。還要確保你在標籤的datacontext中有一個Window。它應該是這樣的(沒有檢查):

<Style TargetType="{x:Type Label}" x:Key="HeaderLabel"> 
    <Setter Property="FontSize" Value="15"/> 
    <Setter Property="FontWeight" Value="Bold"/> 
    <Setter Property="FontFamily" Value="Arial"/> 
    <Setter Property="Foreground" Value="Black"/> 
    <Setter Property="HorizontalAlignment" Value="Left"/> 

    <Style.Triggers> 
     <DataTrigger Binding="{Binding (Window.IsActive)}" Value="False"> 
      <Setter Property="FontSize" Value="15"/> 
      <Setter Property="FontWeight" Value="Bold"/> 
      <Setter Property="FontFamily" Value="Arial"/> 
      <Setter Property="Foreground" Value="White"/> 
      <Setter Property="HorizontalAlignment" Value="Left"/> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 

如果要更改標題欄,我想最簡單的方法是完全重寫的窗口樣式(適用於所有Windows主題)。

+0

哎, 其實默認的窗口標題欄的設置爲我的應用程序不活動。標題正在由一個標籤顯示。我想在窗口處於活動狀態或非活動狀態時更改標籤的顏色。 – Deb 2010-06-09 10:06:38