Dav*_*vio 2 c# wpf xaml user-controls routedevent
我在使用XAML设计器时遇到了一些问题.
我有一个表示自定义ProgressBar的UserControl:只是一个基于状态的一些颜色的旋转圆圈.它扩展了UserControl,我将本地命名空间添加到XAML文件中,并将其命名为"local".
<UserControl x:Class="MyControls.ProgressControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyControls">
Run Code Online (Sandbox Code Playgroud)
在代码隐藏中,我创建了一个自定义事件,如下所示:
public static readonly RoutedEvent NotStartedEvent = EventManager.RegisterRoutedEvent("NotStartedEvent",RoutingStrategy.Bubble,typeof(RoutedEventHandler),typeof(ProgressControl));
// .NET wrapper
public event RoutedEventHandler NotStarted
{
add { AddHandler(NotStartedEvent, value); }
remove { RemoveHandler(NotStartedEvent, value); }
}
Run Code Online (Sandbox Code Playgroud)
在我的XAML文件中,我有一个EventTrigger来连接一些动画:
<UserControl.Triggers>
<EventTrigger RoutedEvent="local:ProgressControl.NotStartedEvent">
<StopStoryboard BeginStoryboardName="rotateAnimation"/>
<BeginStoryboard Storyboard="{StaticResource notStartedStateAnimation}"/>
</EventTrigger>
</UserControl.Triggers>
Run Code Online (Sandbox Code Playgroud)
但是这给了我一个错误:在'UserControl'类型中找不到事件'NotStartedEvent'.
我在网上搜索过,但找不到我做错了什么,一定是一些愚蠢的细节.例如,因为EventTrigger位于UserControl.Triggers下吗?
我已经多次尝试清理和重建项目,这很好.只有XAML设计师给我这个错误.
试试这个:
<UserControl.Triggers>
<EventTrigger RoutedEvent="{x:Static local:ProgressControl.NotStartedEvent}">
<StopStoryboard BeginStoryboardName="rotateAnimation"/>
<BeginStoryboard Storyboard="{StaticResource notStartedStateAnimation}"/>
</EventTrigger>
</UserControl.Triggers>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2542 次 |
| 最近记录: |