2011-09-13 6 views
2

단추가 들어있는 UserControl과 단추 스타일을 만들었습니다. 스타일은 트리거 위에 마우스를 놓을 때 버튼 배경을 설정합니다. 이제 ICommand 유형의 종속성 속성을 추가하고이 새 속성에 button 명령을 설정합니다. 명령 바인딩은 제대로 작동하지만 사용자 정의 컨트롤이 비활성화 된 경우 (canexecute = false) 트리거를 마우스로 계속 움직이면 배경이 변경됩니다.WPF UserControl 및 ICommand

이 같은 트리거 위에 마우스를 변경 시도했지만 작동하지 않습니다 :

<MultiTrigger.Conditions> 
    <Condition Property="IsMouseOver" Value="True"/> 
    <Condition Property="IsEnabled" Value="True"/> 
</MultiTrigger.Conditions> 
<Setter Property="Background" Value="Orange"/> 
</MultiTrigger> 

누구든지 도와 드릴까요?

+1

때문에 문제가 비활성화되어서는 안된다는 또는 비활성화되고 있지만, 그것은 효과를 통해 마우스를 보여주고 있다는 점이다? –

답변

1

조건에서 참조하는 IsEnabled 속성은 컨트롤이 아니라 컨트롤의 속성이라고 생각합니다. 따라서 컨트롤이 활성화되어 트리거 조건이 참인 이유입니다. 버튼에 액세스하려면 Relative Source 마크 업 확장 프로그램을 사용해보세요. 당신은 뭔가를 시도 할 수
:

<Condition Binding="{Binding RelativeSource={RelativeSource 
           AncestorType={x:Type Button}}, 
          Path=IsEnabled}" 
      Value="True"/> 
+0

명령의 CanExecuteChange 이벤트가있는 것일 수 있지만 코드를 보지 않고는 실제로 말할 수는 없습니다. –