質問

私は、MouseMoveイベントハンドラ内で画像を更新し、マウスカーソルの位置を追跡するWPFアプリケーションを作成したいと思います。 (GeometryDrawingsためのXAMLは簡単そうですが)私の独創的な考えは、GeometryDrawingを作成し、それにパスを追加することでしたが、私は、コードでこれをアップ配線方法に苦しみました。このようなものを配線する最も簡単な方法は何だ - そのちょうどので、デバッグのために、私は効率が心配ないよ。

役に立ちましたか?

解決

どのようなだけでポリラインを使用してはどうですか?

ここで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));
}

他のヒント

GeometryGroupを使用してください。これは、複数の子ジオメトリを持つことができますあなたのケースであなたは、マウスの位置を中心に、各マウスの移動ポイントのEllipseGeometryを追加します。だから、何かます:

private GeometryGroup _allMousePoints = new GeometryGroup();

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

あなたは今GeometryDrawingまたはパスのデータのジオメトリとして_allMousePointsを使用することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top