我有以下树形结构
MainWindow -> 自定义用户控件 -> GroupBox -> ViewBox
我已经在用户控件中添加了自定义路由事件,如下所示:
事件的调用如下所示:
我已经检查了事件是否被触发,但是似乎
如果我将 EventTrigger 的 RoutedEvent 属性更改为其他属性(例如 Loaded),则动画可以正常工作。
有人能帮我解决这个问题吗?
我已经在用户控件中添加了自定义路由事件,如下所示:
public static readonly RoutedEvent ConnectedEvent =
EventManager.RegisterRoutedEvent("Connected", RoutingStrategy.Tunnel,
typeof(RoutedEventHandler), typeof(IQMasterControl));
public event RoutedEventHandler Connected
{
add { AddHandler(IQMasterControl.ConnectedEvent, value); }
remove { RemoveHandler(IQMasterControl.ConnectedEvent, value); }
}
事件的调用如下所示:
_masterViewModel.Connected += delegate ()
{
RoutedEventArgs ea = new RoutedEventArgs(IQMasterControl.ConnectedEvent, this);
this.RaiseEvent(ea);
};
我希望在"Connected"事件中使用事件触发器在ViewBox上运行一些动画:
<Viewbox VerticalAlignment="Center"
Child="{StaticResource PDataIco}"
RenderTransformOrigin="0.5, 0.5" Stretch="Uniform">
<Viewbox.RenderTransform>
<!-- the transform a name tells the framework not to freeze it -->
<RotateTransform x:Name="noFreeze" />
</Viewbox.RenderTransform>
<Viewbox.Triggers>
<EventTrigger RoutedEvent="local:IQMasterControl.Connected">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation RepeatBehavior="Forever" Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.Angle)" To="360" Duration="0:0:1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Viewbox.Triggers>
</Viewbox>
我已经检查了事件是否被触发,但是似乎
ViewBox
没有接收到该事件。因此,没有启动任何动画。如果我将 EventTrigger 的 RoutedEvent 属性更改为其他属性(例如 Loaded),则动画可以正常工作。
有人能帮我解决这个问题吗?