2017-12-15 18 views
0

TabControl을 사용하여 WPF 응용 프로그램을 개발 중입니다. 이 TabControl의 TabItem 안에는 LeftButtonMouseDownEvent에 반응하는 EventTriggers가 구현되어 있습니다. 내 문제는 Visual Studio의 디자인 타임 동안 이벤트가 트리거되고 디자인 윈도우에서 이후의 상호 작용을 차단하는 것 같습니다.디자인 타임에서 트리거 사용 안 함

내 비주얼 스튜디오가 디자인 타임에있을 때 트리거를 무시하는 가능성이 있습니다. 순수 XAML에서이 작업을 수행하는 것이 좋습니다. 나는 "mc : Ignorable"태그가 있다는 것을 알고 있지만, 다른 방법으로 원한다. 필요한 경우 코드 스 니펫을 게시했습니다.

도움 주셔서 감사합니다.

<TabItem> 
    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="MouseLeftButtonDown"> 
      <SomeAction/> 
     </i:EventTrigger> 
    </i:Interaction.Triggers> 
</TabItem> 

답변

0

xaml에서 수행하는 방법을 모르겠지만 SomeAction 코드를 추가하면 문제가 해결됩니다.

var isInDesignMode = DesignerProperties.GetIsInDesignMode(new DependencyObject()); 
if(isInDesignMode) 
{ 
    // using in VisualStudio or Blend 
} 
else 
{ 
    // using in application 
} 
+0

코드에서의 작업을 처리하고 싶지 않기 때문에 많은 도움이되지 않습니다. 그것들은 영향력이없는 Action이며, Xaml에서 직접 호출되어야합니다. 그리고 나는 Code Behind에서 이러한 트리거/액션을 첨부하는 것을 좋아하지 않습니다. – Febertson

+0

[질문] (https://stackoverflow.com/questions/2764415/how-to-give-the-condition-for-eventtrigger)을 보았습니까? –

+0

저에게 질문을 보여 주셔서 고마워요.하지만 그 문제는 제가 생각하는 것처럼 생각하지 않습니다. 가까운면이긴하지만 주요 차이점은 런타임 중에 문제가 발생하고 디자이너가 내 문제라는 것입니다. 그리고 디자인 타임에서 작동하지만 런타임 중에 (아직 예측할 수없는 이상한 경우에) 내 XAML을 손상시킬 수있는 Conditon-Bindings를 작성하고 싶지 않습니다. – Febertson