gpt4 book ai didi

.net - MouseClick 和 DoubleClick 的区别

转载 作者:行者123 更新时间:2023-12-04 06:40:59 24 4
gpt4 key购买 nike

WPF, Shapes

我有一个自定义 Shape ,并尝试实现 MouseClickMouseDoubleClick上面的东西。

通过例如。我需要打开一个关于 MyShape OnClick 的信息窗口并选择它 OnDoubleClick。

stub 如下:

public class MyShape : Shape
{
public Point Point1, Point2;

public MyShape() : base() { }

protected override Geometry DefiningGeometry
{
get { return new LineGeometry(Point1, Point2); }
}

protected override void OnMouseUp(MouseButtonEventArgs e)
{
base.OnMouseUp(e);
if (e.ClickCount == 1)
{
// Open Informational Window
}
else if (e.ClickCount == 2)
{
// Select Item
}
}
}

每次我都双击 // Only do MouseClick// Only do MouseDoubleClick发生。

有没有办法在 WPF、.NET 4 中避免这种情况?

最佳答案

在双击中的第一次单击和第二次单击之间,我认为有大约 50 到 400 毫秒的时间,所以下面的代码不是最好的代码,但可以这样做:

bool firstClicked = false;

protected override void OnMouseUp(MouseButtonEventArgs e)
{
base.OnMouseUp(e);
if (e.ClickCount == 1)
{
firstClicked = true;
Task tsk = new TaskFactory()
.StartNew(
() =>
{
Thread.Sleep(SystemInformation.DoubleClickTime);
if (firstClicked)
{
// if you want to use `e`
// e.Source
// Open Informational Window
}
firstClicked = false;
}
);

}

}
else if (e.ClickCount == 2)
{
firstClicked = false;
// Select Item
}
}

关于.net - MouseClick 和 DoubleClick 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4238923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com