キャンバス上でマウスイベントを処理する際に問題があります。私はマウスを使って描画したいので、これらのイベントハンドラを思いついたのですが、描画を開始するときに何もしません。WPF - マウスイベントでキャンバスに描画する
private void paintSurface_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.ButtonState == MouseButtonState.Pressed)
currentPoint = e.GetPosition(this);
}
private void paintSurface_MouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
Line line = new Line();
line.Stroke = SystemColors.WindowFrameBrush;
line.X1 = currentPoint.X;
line.Y1 = currentPoint.Y;
line.X2 = e.GetPosition(this).X;
line.Y2 = e.GetPosition(this).Y;
currentPoint = e.GetPosition(this);
paintSurface.Children.Add(line);
}
}
何が欠けているか、書き直す方法を教えてもらえますか?
うん。それはまさに私がやったことです。ありがとうございました。 –
メニューによるオフセットを考慮してクリックキャプチャを更新するにはどうすればよいですか? – Benjin
は、GetPositionのウィンドウへの参照を渡すのではなく、代わりにCanvasへの参照を渡します。アンディのコメント+1 – Andy