使用SetValue添加事件处理程序

时间:2014-01-17 17:23:57

标签: .net wpf event-handling setvalue

此代码有效

TextBlock tbTest = new TextBlock();
tbTest.MouseRightButtonDown += new MouseButtonEventHandler(cc_CopyToClip);

但是我需要用SetValue做同样的事情 这不起作用 - 编译错误

FrameworkElementFactory textblock = new FrameworkElementFactory(typeof(TextBlock));
textblock.SetValue(TextBlock.MouseRightButtonDownEvent, += new MouseButtonEventHandler(cc_CopyToClip));

如何通过SetValue分配事件处理程序?

答案

textblock.AddHandler(TextBlock.MouseRightButtonDownEvent, new MouseButtonEventHandler(cc_CopyToClip));

2 个答案:

答案 0 :(得分:9)

分配/取消分配路由事件处理程序FrameworkElementFactory具有AddHandlerRemoveHandler方法。所以你的电话应该是这样的:

textblock.AddHandler(TextBlock.MouseRightButtonDownEvent, new MouseButtonEventHandler(cc_CopyToClip));

答案 1 :(得分:3)

使用SetValue不是依赖属性。您可以使用AddHandler添加路由事件处理程序。