在WPF中,是可以指定单个事件触发多个路由事件?
-
19-08-2019 - |
题
我有一个事件触发器,我想在响应于被触发以两个不同的路由事件。我不想重复事件响应代码(XAML)的两倍。我可以为单个事件触发声明中指定多个路由事件?
单个事件的示例:
<Style.Triggers>
<EventTrigger RoutedEvent="Button.MouseEnter">
<--XAML MAGIC-->
...
解决方案
对不起...... WPF的执行EventTrigger中只允许一个路由事件。
通常你会从一个路由事件触发一个情节串连图板。我建议如下妥协:
<!--Define a storyboard as a resource-->
<Storyboard x:Key="MyStoryboard1">
<!--Many properties and etc...-->
</Storyboard>
<Style.Triggers>
<EventTrigger RoutedEvent="Button.MouseEnter">
<BeginStoryboard Storyboard="{StaticResource MyStoryboard1}">
<!--Other properties/name if necessary-->
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="Button.MouseDown">
<BeginStoryboard Storyboard="{StaticResource MyStoryboard1}">
<!--Other properties/name if necessary-->
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
的概念是通过共享资源,以减少重复的代码。
希望这有助于!
不隶属于 StackOverflow