2017-01-30 1 views
0

마우스 오버 트리거가 wpf 단추 컨트롤에서 작동하지 않습니다. 마우스가 위에있을 때 단추의 배경과 전경을 변경하고 싶습니다. wpf 단추 컨트롤에서 마우스 오버 트리거가 작동하지 않습니다.

<Button.Style> 
    <Style TargetType="{x:Type Button}"> 
     <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type Button}"> 
      <Border Background="{TemplateBinding Background}" BorderBrush="Black" BorderThickness="1"> 
       <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> 
      </Border> 
     </ControlTemplate> 
     </Setter.Value> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
      <Setter Property="Background"> 
       <Setter.Value> 
        <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5"> 
         <GradientStop Color="#FFF2E32F" Offset="0" /> 
         <GradientStop Color="#FF45E815" Offset="1" /> 
        </LinearGradientBrush> 
       </Setter.Value> 
      </Setter> 
      <Setter Property="Foreground" Value="White"/> 
     </Trigger> 
     </Style.Triggers> 
    </Style> 
</Button.Style> 

내가 템플릿을 추가

를 편집하지만, 그냥 버튼 기본 마우스 오버 트리거를 제거하고 내 원하는 전경과 배경 스타일 일어나고 없습니다.

+0

이 질문을보고 해결책을 시도해 보셨습니까? http://stackoverflow.com/questions/17259280/how-do-you-change-background-for-a-button-mouseover-in-wpf –

+0

@RizkiPratama 예. 템플릿을 추가해도 아무런 변화가 없습니다. 이 솔루션은 버튼 기본 MouseOver 트리거를 제거하지만 원하는 전경 및 배경 스타일을 수행하지 않습니다. –

+0

물론 사용자 정의 컨트롤 템플릿으로 바꿀 때 기본 트리거가 제거됩니다. 이것이 예상되는 동작입니다. 정확히 무엇을 성취하려고합니까? 두 개의 서로 다른 컨트롤 템플릿을 결합 할 수 없습니다. – mm8

답변

2

here에서 해결책을 찾았습니다. 버튼 내부의 스타일을 다음과 같이 정의하십시오.

<Button.Style> 
    <Style TargetType="{x:Type Button}"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type Button}"> 
        <Border Background="{TemplateBinding Background}" BorderBrush="Black" BorderThickness="1"> 
         <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> 
        </Border> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="Background"> 
        <Setter.Value> 
         <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5"> 
          <GradientStop Color="#FFF2E32F" Offset="0" /> 
          <GradientStop Color="#FF45E815" Offset="1" /> 
         </LinearGradientBrush> 
        </Setter.Value> 
       </Setter> 
       <Setter Property="Foreground" Value="White"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</Button.Style> 
+0

감사하지만 너무 효과가 없었습니다. –

+0

@AAAE_N 전체 코드를 살펴볼 수 있습니까? 나는 그것을 직접 시도했기 때문에 그것이 내게 효과적이었습니다. 즉, 방아쇠를 당긴 마우스가 작동하고 있습니다. –

관련 문제