使用SetValue添加事件处理程序

pap*_*zzo 3 .net wpf event-handling setvalue

这段代码有效

TextBlock tbTest = new TextBlock();
tbTest.MouseRightButtonDown += new MouseButtonEventHandler(cc_CopyToClip);
Run Code Online (Sandbox Code Playgroud)

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

FrameworkElementFactory textblock = new FrameworkElementFactory(typeof(TextBlock));
textblock.SetValue(TextBlock.MouseRightButtonDownEvent, += new MouseButtonEventHandler(cc_CopyToClip));
Run Code Online (Sandbox Code Playgroud)

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

回答

textblock.AddHandler(TextBlock.MouseRightButtonDownEvent, new MouseButtonEventHandler(cc_CopyToClip));
Run Code Online (Sandbox Code Playgroud)

dko*_*ozl 9

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

textblock.AddHandler(TextBlock.MouseRightButtonDownEvent, new MouseButtonEventHandler(cc_CopyToClip));
Run Code Online (Sandbox Code Playgroud)