マウス カーソルの位置を追跡し、MouseMove イベント ハンドラーで画像を更新する WPF アプリを作成したいと思います。私の最初の考えは、GeometryDrawing を作成し、それにパスを追加することでしたが、コードでこれを接続する方法に苦労しています (ただし、GeometryDrawings の Xaml は簡単に見えます)。このようなものを配線する最も簡単な方法は何ですか-デバッグのためだけなので、効率は気にしません。
質問する
11642 次
2 に答える
13
ポリラインを使用するのはどうですか?
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));
}
于 2009-09-25T23:47:26.227 に答える
2
GeometryGroupを使用します。これには複数の子ジオメトリを含めることができます。この場合、マウスの位置を中心として、マウスの移動ポイントごとに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 に答える