2011-08-27 4 views
0

Silverlight에서 애니메이션을 트리거하는 사용자 지정 이벤트를 만들려고합니다. 이벤트가 트리거되고 있지만 애니메이션이 작동하지 않습니다. 다음과 같이Silverlight 사용자 지정 EventTrigger

namespace SilverlightApplication1 
{ 
    public partial class MainPage : UserControl 
    { 
     public MainPage() 
     { 
      MyEvent += new ChangedEventHandler(UserControl_MyEventHandler); 
      /* Other stuff */ 
     } 
     private void UserControl_MyEventHandler(object sender, RoutedEventArgs e) 
     { 
       MessageBox.Show("MyEventHandler has been called"); 
     } 

     public delegate void ChangedEventHandler(object sender, RoutedEventArgs e); 

     private event ChangedEventHandler MyEvent; 

     private void UserControl_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
     { 
       if (MyEvent != null) 
        MyEvent(this, e); 
     } 
    } 
} 

XAML 코드는 다음과 같습니다 :

<UserControl 
... 
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" mc:Ignorable="d" 
x:Class="SilverlightApplication1.MainPage" MouseLeftButtonDown="UserControl_MouseLeftButtonDown"> 

    <Grid x:Name="LayoutRoot" Background="White"> 
     <i:Interaction.Triggers> 
      <i:EventTrigger EventName="MyEvent"> 
       <ei:GoToStateAction StateName="Highlighted"/> 
      </i:EventTrigger> 
     </i:Interaction.Triggers> 
     ... 
    </Grid> 
</UserControl> 

현재, "MouseLeftButtonDown"가 표시지고 있지만 애니메이션 호출 점점되지가 포함 된 메시지 상자 다음은 관련 코드입니다. EventTrigger EventName이 MouseLeftButtonDown이고 MyEvent 대신 애니메이션이 호출되었습니다. 제발 도와주세요. 감사.

답변

0

일부 제어 이벤트에서 트리거하려는 경우 EventTrigger에서 SourceName을 설정할 수 있습니다. 코드 뒤에있는 경우 귀하의 경우 :

VisualStateManager.GoToState(this [or some other object with Highlighted state], "Highlighted", false); 
+0

감사합니다. 그게 효과가 있었어. :) – Anand

관련 문제