2013-12-15 1 views
1

내 라벨의 텍스트 색상 위로 마우스를 이동하면 다음과 같이 변경되었습니다. 그러나 기본 텍스트 색상은 검은 색입니다. 예를 들어 흰색을 기본 색상으로 변경하려면 어떻게해야합니까?기본 설정을 텍스트 색상 위로 가져갑니다. wpf

<Page.Resources> 
    <SolidColorBrush x:Key="mouseOverColor" Color="Gold" /> 
    <Style x:Key="mouseOverStyle" TargetType="Label"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="Label"> 
        <ControlTemplate.Triggers> 
         <Trigger Property="IsMouseOver" Value="True"> 
          <Setter Property="Foreground" Value="{StaticResource mouseOverColor}" /> 
         </Trigger> 
        </ControlTemplate.Triggers> 
        <ContentPresenter /> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</Page.Resources> 

답변

5

템플릿을 전혀 덮어 쓸 필요가 없습니다. 이것은 단지 스타일을 다음과 같이 얻을 수있다 :

<SolidColorBrush x:Key="mouseOverColor" Color="Gold" /> 
<Style TargetType="Label" x:Key="mouseOverStyle"> 
    <Style.Triggers> 
     <Trigger Property="IsMouseOver" Value="True"> 
      <Setter Property="Foreground" Value="{StaticResource mouseOverColor}"/> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

트리거 당신이 당신의 라벨에 Foreground의 디폴트 값을 지정하는 경우에는 작동하지 않습니다.

이 레이블 작동하지 않습니다 :

<Label Content="sjdfjfddjfjdfs" 
     Style="{StaticResource mouseOverStyle}" Foreground="Green"/> 

그러나,이 라벨 작동합니다

<Label Content="sjdfjfddjfjdfs" Style="{StaticResource mouseOverStyle}"/> 

심지어 당신의 스타일이 작동하지만 것 확실히 당신은 로컬 값을 설정하지 않습니다 전경 DP.Dependency Property Precedence order이 있기 때문에 로컬 값이 스타일의 설정 값보다 우선 순위가 높습니다.

+0

하지만 여러 레이블이 있고 일부는 이런 변화를 갖고 싶어

+0

'Foreground'는'Brush' 타입입니다. – Chris

+0

@HarryBoy 당신은 원하는 방식으로이 대답을 사용할 수 있습니다 'x : Key = '을 추가하고 a 너는 현재하고있다. – Chris

1

SetterForeground 속성에 대해 Value을 변경해 보셨습니까?

<Setter Property="Foreground" Value="White" /> 

또는 원하는 색상의 Brush을 정의하고 사용 하시겠습니까? 예 :

<SolidColorBrush x:Key="myColor" Color="White" /> 

<!-- Your Existing Code --> 
    <Setter Property="Foreground" Value="{StaticResource myColor}" /> 
<!-- Your Existing Code --> 

그냥 라벨 색상 변경 후 (오히려 ControlTemplate에 아무것도보다라면 Rohit의 대답은 분별/훨씬 간단합니다.

관련 문제