gpt4 book ai didi

c# - 对鼠标移动有即时 react 的线条图?

转载 作者:行者123 更新时间:2023-11-30 17:13:26 30 4
gpt4 key购买 nike

我正在尝试弄清楚如何编写代码,以便鼠标移动和线条绘制之间的响应时间是即时的。每次我这样做时,两者之间总是存在滞后。我已经在 Windows 窗体中对此进行了编码,现在我在 WPF 中对其进行了编码。

问题肯定出在代码上,不是我的电脑。

基本上它是这样工作的。单击任意位置并创建 point1。移动鼠标并更新 point2,并绘制一条从 Point1 到 Point2 的线,该线随鼠标移动而变化。

下面是我执行此操作的极其简单的代码..它可能看起来是即时的,但如果您最大化窗口并拉长该行并快速移动鼠标,您会更容易注意到它。

另外,以后在这个下面会有一个图像层,肯定会导致它更卡顿..但现在我只想优化这个。

当我使用 5 多年前的其他此类程序时,线条移动实际上是即时的。这就是为什么我对为什么使用这种较新的编码感到困惑,它的滞后..

    Point mLoc;
Line myLine = new Line();


public MainWindow()
{
InitializeComponent();
SnapsToDevicePixels = false;

myLine.Stroke = System.Windows.Media.Brushes.White;
myLine.StrokeThickness = 1;

canvas1.Children.Add(myLine);
}

private void onMMove(object sender, MouseEventArgs e)
{
mLoc = Mouse.GetPosition(canvas1);

myLine.X2 = mLoc.X;
myLine.Y2 = mLoc.Y;


}

private void onMLClick(object sender, MouseButtonEventArgs e)
{
mLoc = Mouse.GetPosition(canvas1);

myLine.X1 = mLoc.X;
myLine.Y1 = mLoc.Y;

}

最佳答案

WinAPI 发送 WM_MOUSEMOVE 的速度不够快,无法检测到鼠标的每一次移动。有一篇非常好的文章展示了如何非常精确地检测鼠标移动 (http://blogs.msdn.com/b/oldnewthing/archive/2012/03/14/10282406.aspx)

关于c# - 对鼠标移动有即时 react 的线条图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9739163/

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