2010-06-09 4 views
0

창 이름을 나타내는 레이블이 있습니다. 이 스타일을 상속하는 모든 레이블이 동일한 속성을 나타내도록 스타일 및 트리거를 사용하여 창의 IsActive 속성에서 레이블의 색을 업데이트하려고합니다. 아무도 나에게 어떻게 제안 할 수 있니?활성 창에서 레이블의 전경 업데이트 - WPF

는이 같은 시도 : 당신은 윈도우 제목 표시 줄에 하나의 의미 윈도우의 이름을 표시 라벨

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

당신이 제목 표시 줄을 변경하려면

, 내가 가장 쉬운 방법은 (모든 창 테마에 대한) 완전히 윈도우 스타일을 무시하는 것입니다 생각합니다.

+0

이봐, 가 실제로 기본 창 제목 표시 줄이 세트에 내 응용 프로그램에서 비활성. 제목이 레이블에 표시됩니다. 창이 활성화되어 있거나 활성화되어 있지 않은 라벨의 색상을 변경하고 싶습니다. – Deb