从代码在WPF中绘制点序列的最简单方法

从代码在WPF中绘制点序列的最简单方法,wpf,drawing,point,Wpf,Drawing,Point,我想创建一个WPF应用程序,跟踪鼠标光标的位置,更新MouseMove事件处理程序中的图像。我最初的想法是创建一个GeometryDrawing,然后向其中添加路径,但我正在努力用代码将其连接起来(尽管GeometryDrawing的Xaml看起来很简单)。连接这些东西最简单的方法是什么?它只是为了调试,所以我不关心效率。使用GeometryGroup。这可以有多个子几何体:在您的例子中,您将为每个鼠标移动点添加一个椭圆几何体,以鼠标位置为中心。比如: private GeometryGroup

我想创建一个WPF应用程序,跟踪鼠标光标的位置,更新MouseMove事件处理程序中的图像。我最初的想法是创建一个GeometryDrawing,然后向其中添加路径,但我正在努力用代码将其连接起来(尽管GeometryDrawing的Xaml看起来很简单)。连接这些东西最简单的方法是什么?它只是为了调试,所以我不关心效率。

使用GeometryGroup。这可以有多个子几何体:在您的例子中,您将为每个鼠标移动点添加一个椭圆几何体,以鼠标位置为中心。比如:

private GeometryGroup _allMousePoints = new GeometryGroup();

void OnMouseMove(...)
{
  _allMousePoints.Children.Add(
    new EllipseGeometry {
      Center = mouseLocation,
      RadiusX = 3,
      Radius Y = 3
    });
}

现在,您可以将所有鼠标点用作几何图形的几何图形或路径的数据。

仅使用多段线如何

以下是xaml:

<Window
    x:Class="CursorLine.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1"
>
    <Canvas x:Name="canvas" Background="#00FFFFFF" MouseMove="Canvas_MouseMove">
        <Polyline x:Name="polyline" Stroke="DarkGreen" StrokeThickness="3"/>
    </Canvas>
</Window>

我不知道你想做什么。。。但别忘了InkCanvas,它允许你在某些东西上“墨水”。。。以相对容易的方式。但是InkCanvas没有回答你的问题,所以我想我会发表评论。谢谢。。。很高兴这就是你要找的。太好了!我正在努力处理路径和几何数据
private void Canvas_MouseMove(object sender, MouseEventArgs e)
{
    polyline.Points.Add(e.GetPosition(canvas));
}