c# - WPF 引发 DoubleClick 事件
问题描述
我有一个派生的类,WindowsFormsHost
它监听 WinForms 鼠标事件。它适用于单击,但有什么方法可以触发双客户端事件?ClickCount
是只读的,所以我无法设置它,并且提升Control.MouseDoubleClickEvent
不会传播它。还有什么想法吗?
private void OnMouseDown(object sender, System.Windows.Forms.MouseEventArgs e) {
MouseButton? wpfButton = ConvertToWpf(e.Button);
if (!wpfButton.HasValue)
return;
RaiseEvent(new MouseButtonEventArgs(Mouse.PrimaryDevice, 0, wpfButton.Value) {
RoutedEvent = Mouse.MouseDownEvent,
Source = this
//ClickCount = 2 // read-only
});
//RaiseEvent(new RoutedEventArgs() { // won't propagate
// RoutedEvent = System.Windows.Controls.Control.MouseDoubleClickEvent,
// Source = this
//});
}
解决方案
这是您将MouseDoubleClickEvent
在 WPF 中以编程方式提出的问题:
MouseButtonEventArgs doubleClickEvent = new MouseButtonEventArgs(Mouse.PrimaryDevice, (int)DateTime.Now.Ticks, MouseButton.Left);
doubleClickEvent.RoutedEvent = Control.MouseDoubleClickEvent;
doubleClickEvent.Source = this;
RaiseEvent(doubleClickEvent);
推荐阅读
- angular - ERROR TypeError: layer.addEventParent is not a function while setting marker for marker cluster in angular
- java - Annotation @NotEmpty doesn't check if String is null
- matplotlib - 以不规则间隔绘制日期时间 x 轴
- java - 使用 Java 在 Excel 工作表中打印空单元格相邻单元格值
- sql - 不知道我是否需要 NEST 或 JOIN 或其他什么?
- javascript - Javascript:生成自定义数量的 TextAreas
- excel - 下标超出范围,不进入循环
- javascript - 使用链式 JavaScript Promises 淡出/淡入图像
- apache-spark - 如何将RDD解析为Dataframe
- mysql - 我需要在右侧的 REGEXP 中使用 MySQL 列