使用SetValue方法添加事件处理程序

4

这段代码可以正常运行。

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个回答

11

为了分配/取消路由事件处理程序,FrameworkElementFactoryAddHandlerRemoveHandler方法。因此,您的调用应该如下所示:

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

4

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接