首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >作为EventTrigger自定义RoutedEvent

作为EventTrigger自定义RoutedEvent
EN

Stack Overflow用户
提问于 2013-02-25 21:48:33
回答 3查看 12K关注 0票数 6

我有自己的shape类

代码语言:javascript
复制
public sealed class MirrorTile : Shape

在这个类中,我添加了事件

代码语言:javascript
复制
public static readonly RoutedEvent SelectedEnterEvent = EventManager.RegisterRoutedEvent("SelectedEnter", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MirrorTile));

public event RoutedEventHandler SelectedEnter
{
    add
    {
        this.AddHandler(SelectedEnterEvent, value);
    }

    remove
    {
        this.RemoveHandler(SelectedEnterEvent, value);
    }
}

并希望以这种方式使用它

代码语言:javascript
复制
<shapes:MirrorTile>
    <shapes:MirrorTile.Triggers>
        <EventTrigger RoutedEvent="SelectedEnter">
            <BeginStoryboard Storyboard="{StaticResource SelectShape}"/>
        </EventTrigger>
    </shapes:MirrorTile.Triggers>
</shapes:MirrorTile>

启动后,我得到了一个异常:{"RoutedEventConverter cannot convert from System.String."}

我做错了什么,我如何解决这个问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-25 22:05:43

<EventTrigger RoutedEvent="shapes:MirrorTile.SelectedLeave">

命名空间也丢失了。

票数 7
EN

Stack Overflow用户

发布于 2013-02-25 21:52:24

您还必须提供类型:

代码语言:javascript
复制
<EventTrigger RoutedEvent="MirrorTile.SelectedEnter"></EventTrigger>

注释后编辑:

您是否尝试过向XAML声明中添加名称空间?

代码语言:javascript
复制
 xmlns:local="clr-namespace:YourNameSpace"

然后将其修复为:

代码语言:javascript
复制
 <EventTrigger RoutedEvent="local:MirrorTile.SelectedEnter"></EventTrigger>
票数 6
EN

Stack Overflow用户

发布于 2013-02-25 21:52:47

我认为你错过了定义你的事件的类型:

代码语言:javascript
复制
<EventTrigger RoutedEvent="MirrorTile.SelectedEnter">
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15068471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档