此代码有效
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));
答案 0 :(得分:9)
分配/取消分配路由事件处理程序FrameworkElementFactory
具有AddHandler
和RemoveHandler
方法。所以你的电话应该是这样的:
textblock.AddHandler(TextBlock.MouseRightButtonDownEvent, new MouseButtonEventHandler(cc_CopyToClip));
答案 1 :(得分:3)
使用SetValue
不是依赖属性。您可以使用AddHandler添加路由事件处理程序。