2014-03-12 2 views
2

다른 메뉴 컨트롤에 대한 컨테이너로 사용되는 StackPanel이 있습니다. StackPanel이 UI의 다른 곳을 클릭 할 때 사라지 길 원합니다 (일반적인 메뉴/컨텍스트 메뉴와 비슷 함). 나는 이것을하는 방법에 고투하고있다. 어떤 제안? 나는 아래와 같은 스타일로 이벤트 트리거를 시도했지만 제대로 작동하지 않는 것 같습니다.포커스가 사라지면 WPF 컨트롤이 사라집니다.

<StackPanel.Style> 
    <Style TargetType="{x:Type StackPanel}"> 
     <Style.Triggers> 
      <EventTrigger RoutedEvent="LostMouseCapture" > 
       <BeginStoryboard> 
        <Storyboard> 
         <DoubleAnimation From="1" To="0" Duration="0:0:0.1" 
             Storyboard.TargetProperty="Opacity"/> 
        </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger> 
     </Style.Triggers> 
    </Style> 
</StackPanel.Style> 

답변

0

이 같은 StackPanel에의 트리거 설정 :

<EventTrigger RoutedEvent="MouseEnter" > 
    <BeginStoryboard> 
     <Storyboard> 
      <DoubleAnimation To="1" Duration="0:0:0.1" 
        Storyboard.TargetProperty="Opacity"/> 
     </Storyboard> 
    </BeginStoryboard> 
</EventTrigger> 

이 창에 태그 추가 (물론 당신이 클릭 할 때 원하는 다른 컨트롤은 스택 패널을 숨기) :

<Window.Triggers> 
    <EventTrigger RoutedEvent="MouseDown"> 
     <BeginStoryboard> 
      <Storyboard> 
       <DoubleAnimation To="0" Duration="0:0:0.1" 
           Storyboard.TargetName="disappearingStackPanel" 
           Storyboard.TargetProperty="Opacity"/> 
      </Storyboard> 
     </BeginStoryboard> 
    </EventTrigger> 
</Window.Triggers> 

마우스 조작이없는 컨트롤에서 IsHitTestVisible=False을 설정하여 트리거를 추가 할 필요가 없습니다.

+0

작동하지 않는 것 같습니다. XAML 마크 업 intellisense는 MouseDown이 유효한 이벤트가 아님을 나타 냈습니다. –

+0

MouseDown이 UIElement의 이벤트 중 하나이기 때문에 이상합니다. – Bijan

+0

실행 했습니까? 때때로 인텔리 센스는 관련성없는 오류를 보여줍니다. – Bijan

관련 문제