【问题标题】:how to add eventsetter by code如何通过代码添加事件设置器
【发布时间】:2012-05-09 02:35:56
【问题描述】:

一个完整的例子

    public delegate void mouseup_delegate(object obj, MouseButtonEventArgs args);

    constructor()
    {
        TextBlock text_block = new TextBlock() { Text = "aa" };
        Style style = new Style();
        //style.Setters.Add(new EventSetter(){Event=TextBlock.MouseUpEvent, Handler=new mouseup_delegate(this.textblockClicked)});
        style.Setters.Add(new EventSetter(TextBlock.MouseUpEvent, new mouseup_delegate(this.textblockClicked)));
        text_block.Style = style;
    }

    public void textblockClicked(object sender, MouseButtonEventArgs args)
    {
        MessageBox.Show("mouse up");
    }

但是当我运行应用程序时,出现异常:处理程序类型无效

这段代码有什么问题?

【问题讨论】:

  • 改用这个有用吗? new EventSetter(TextBlock.MouseUpEvent, new urlClickDelegate(this.url_click))
  • 谢谢,但异常仍然出现。如果我不将 url_style(contains the EventSetter) 分配给 TextBlock.Style,则不会抛出异常

标签: c# wpf delegates event-handling eventsetter


【解决方案1】:

EventSetter 期望您提供的代表是 MouseButtonEventHandler,而不是 mouseup_delegate

【讨论】:

  • 那在 C# 中是什么样子的?
猜你喜欢
  • 2012-12-07
  • 2016-11-29
  • 2011-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-01
  • 1970-01-01
相关资源
最近更新 更多