我为WPF按钮实现了一些触发器,如下所示:
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="DragOver">
<BeginStoryboard Storyboard="{StaticResource swap}"/>
<BeginStoryboard Storyboard="{StaticResource fadein}"/>
</EventTrigger>
<EventTrigger RoutedEvent="DragLeave">
<BeginStoryboard Storyboard="{StaticResource reset}"/>
<BeginStoryboard Storyboard="{StaticResource fadeout}"/>
</EventTrigger>
<EventTrigger RoutedEvent="Drop">
<BeginStoryboard Storyboard="{StaticResource reset}"/>
<BeginStoryboard Storyboard="{StaticResource fadeout}"/>
</EventTrigger>
</ControlTemplate.Triggers>这在Visual 2015中运行得很好,但是在Visual 2008中,它会抛出在错误下面:
Cannot convert string 'DragOver' in attribute 'RoutedEvent' to object of type 'System.Windows.RoutedEvent'我已将事件触发器中的以上路由事件更改为:
Mouse.DragOver、Mouse.DragLeave、Mouse.Drop不被xaml解析器识别,是高亮显示的。有什么想法吗?
发布于 2017-07-04 11:40:19
我已经找到了解决办法。我需要使用Button和下面这样的句点对路由事件进行预处理。现在正在发挥作用:
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="Button.DragOver">
<BeginStoryboard Storyboard="{StaticResource swap}"/>
<BeginStoryboard Storyboard="{StaticResource fadein}"/>
</EventTrigger>
<EventTrigger RoutedEvent="Button.DragLeave">
<BeginStoryboard Storyboard="{StaticResource reset}"/>
<BeginStoryboard Storyboard="{StaticResource fadeout}"/>
</EventTrigger>
<EventTrigger RoutedEvent="Button.Drop">
<BeginStoryboard Storyboard="{StaticResource reset}"/>
<BeginStoryboard Storyboard="{StaticResource fadeout}"/>
</EventTrigger>
</ControlTemplate.Triggers>https://stackoverflow.com/questions/44904850
复制相似问题