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

时间:2009-09-25 21:26:26

标签: wpf drawing point

我想创建一个跟踪鼠标光标位置的WPF应用程序,更新MouseMove事件处理程序中的图像。我最初的想法是创建一个GeometryDrawing,然后添加路径,但我正在努力解决如何在代码中连接它(虽然Xaml for GeometryDrawings似乎很简单)。连接这些东西的最简单方法是什么 - 它仅用于调试,所以我不关心效率。

2 个答案:

答案 0 :(得分:13)

使用Polyline怎么样?

这是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>

这是背后的代码:

private void Canvas_MouseMove(object sender, MouseEventArgs e)
{
    polyline.Points.Add(e.GetPosition(canvas));
}

答案 1 :(得分:2)

使用GeometryGroup。这可以有多个子几何:在您的情况下,您将为每个鼠标移动点添加一个EllipseGeometry,以鼠标位置为中心。如下所示:

private GeometryGroup _allMousePoints = new GeometryGroup();

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

现在可以使用_allMousePoints作为GeometryDrawing的几何图形或路径数据。

相关问题