这段代码有效
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));
分配/取消分配路由事件处理程序 FrameworkElementFactory
具有AddHandler
和RemoveHandler
方法。因此,您的呼叫应如下所示:
textblock.AddHandler(TextBlock.MouseRightButtonDownEvent, new MouseButtonEventHandler(cc_CopyToClip));
使用 SetValue
不是依赖属性。可以使用 AddHandler 添加路由事件处理程序。