2012-05-10 4 views
0

안녕하세요,XAML 템플릿에서 MouseOver 트리거의 색상 값을 어떻게 증가시킬 수 있습니까?

내 WPF 응용 프로그램에서 사용할 단추 서식 파일을 만드는 중입니다. 형식은 기본적으로 색상 타일입니다 (대부분 Windows Phone 스타일을 생각하십시오.). 나는 마우스 오버의 경우 버튼의 색상을 변경하고자하는 경우

, 나는 그냥이 같은 일부 코드를 만들 것 (의 원래 버튼의 색상을 가정 해 봅시다은 회색입니다) : 분명히

<Window.Resources> 
    <Style x:Key="ColorTileButton" TargetType="Button> 

<!-- Insert various property editing here. --> 

     <ControlTemplate.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="Background" Value="LightGray" /> 
      </Trigger> 
      <Trigger Property="IsMouseOver" Value="False> 
       <Setter Property="Background" Value="Gray" /> 
      </Trigger> 
     </ControlTemplate.Triggers> 
    </Style> 
</Window.Resources> 

그러나 원래의 단추 색상이 Firebrick 인 경우이 기능은 작동하지 않습니다. 왜냐하면 나는 표준 회색 단추로 끝날 것이기 때문입니다. 그래서이 단추 템플리트를 다시 작성하여 R, G 및 B의 값을 약 10 씩 증가시켜 버튼에 밝은 색상을 부여한 다음 마우스를 놓으면 감소하는 방식이 궁금합니다. 도와 줘?

감사합니다.

답변

1

ColorAnimationexample이며,이 부분은 Forum Post입니다. 포럼 게시물의 흥미로운 메모.

트리거는 조건이 충족 될 때 하나 이상의 속성을 변경 한 다음 조건이 더 이상 충족되지 않을 때 속성 값을 다시 설정합니다.

그래서 그가 제시되어 있습니다 : 당신이 당신의 예를

+0

음에 내 주면서는 내화 벽돌로 재설정 할

<ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Background" Value="LightGray" /> </Trigger> </ControlTemplate.Triggers> 

, 이것은 내가 될 거라고 생각했던 것보다 훨씬 간단합니다. 저는 컨트롤이 원래의 색으로 되돌아 갈 수있는 방법을 코딩해야하는 데 익숙합니다. 그래서 이것은 저에게 즐거운 놀라움이었습니다. XAML로이 기능을 편리하게 사용할 수 있다는 사실을 알지 못했습니다. 감사! –

관련 문제