鼠标移到 canvas 上停止计时器

mouse movement over canvas stops the timer

除了冻结之外,是否还有其他方法可以防止计算机监控鼠标相对于几何体的位置 objects?

我在 WPF window 的每一侧都有两个包含按钮和文本框的面板。两个面板之间是 canvas。计时器每秒 运行 10 次,并在侧面板的文本框中显示数字 1 到 10。 canvas 有一个 child,它是我创建的包含许多行的临时 canvas。临时 canvas 通过路径加载几何组(许多行),然后作为 child 添加到主 canvas。 问题是... 当我的鼠标在侧面板周围移动时,计时器保持良好的时间,数字 1 到 10 完美地绘制在文本框中。放大和缩小也非常快。当我将鼠标移到 canvas 上时,文本框中的数字变慢,甚至在鼠标快速移到 canvas 上时停止。 问题被隔离到几何组。当我发表评论时,问题就消失了。

我试过冻结几何组和画笔。定时器没有变化放慢速度。 我已经删除了我的 canvas_mouse 移动事件。定时器减速没有变化。 我已经使几何组更小(更少的行)。计时器速度更快,但仍然很慢。

除了冻结之外,是否还有其他方法可以防止计算机监控鼠标相对于几何体的位置 objects?

我的程序非常大,所以我只发布下面的临时 canvas 部分。

       TempCanvas.Children.Clear()


        Dim myPathPXF As Path = New Path
        myPathPXF.Stroke = Brushes.Black
        myPathPXF.StrokeThickness = 10
        myPathPXF.Data = myGeometryGroupPXF
        TempCanvas.Children.Add(myPathPXF)   'mouse movement over canvas stops program with this line

        'created in world coordinates and render to screen coordinates
        TempCanvas.RenderTransform = myTransformGroup

    'show on plan view canvas
    PlanViewCanvas.Children.Clear()
    PlanViewCanvas.Children.Add(TempCanvas)

我在网上找了好几天也没有找到有同样问题的人。提前感谢您的帮助。

geometryGroup 大约有 1,000 行。

刚刚发现,当我打开一个对话框时,计时器以正确的速度运行,因为我假设鼠标不再被跟踪。

编辑: 我使用的是 Visual Studio 2019。我只是 运行 我的代码到 Visual Studio 2015,问题就消失了。

问题似乎与几何组无关。当我从使用 Visual Studio 2019 切换到使用 Visual Studio 2015 时,问题就消失了。