我想创建一个 WPF 应用程序来跟踪鼠标光标的位置,更新 MouseMove 事件处理程序中的图像。我最初的想法是创建一个 GeometryDrawing 然后为其添加路径,但我正在努力解决如何在代码中连接它(尽管 GeometryDrawings 的 Xaml 看起来很简单)。连接这些东西的最简单方法是什么 - 它只是用于调试,所以我不关心效率。
问问题
11642 次
2 回答
13
只使用折线怎么样?
这是xml:
<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));
}
于 2009-09-25T23:47:26.227 回答
2
使用几何组。这可以有多个子几何:在您的情况下,您将为每个鼠标移动点添加一个 EllipseGeometry,以鼠标位置为中心。所以像:
private GeometryGroup _allMousePoints = new GeometryGroup();
void OnMouseMove(...)
{
_allMousePoints.Children.Add(
new EllipseGeometry {
Center = mouseLocation,
RadiusX = 3,
Radius Y = 3
});
}
您现在可以将 _allMousePoints 用作 GeometryDrawing 的几何图形或路径的数据。
于 2009-09-25T21:50:18.930 回答