1

.NET-4.5 を使用した WPF Canvas があります。

イベント (自動作成されたメソッド)MouseLeftButtonDownとを追加しましMouseDownた。を使用しMessageBoxて、ユーザーがキャンバスをクリックしたときにこれらのメソッドが呼び出されることを確認しましたが、 からマウスの位置を取得する方法が見つかりませんMouseButtonEventArgs

イベント (および自動作成されたメソッド) を追加したときにManipulationStartedManipulationStartingそれらのMessageBoxes が表示されません。

private void CenterCanvas_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
        MessageBox.Show("Doesn't show up");   // never shows up
}

private void CenterCanvas_MouseDown(object sender, MouseButtonEventArgs e)
{
        MessageBox.Show("Shows up");   // shows up, but can't seem to get click position
}
4

1 に答える 1

2

からマウスの位置を取得するには、 GetPositionメソッドMouseEventArgsを呼び出す必要があります。

private void Canvas_MouseDown(object sender, MouseButtonEventArgs e)
{
    var pos = e.GetPosition((IInputElement)sender);

    System.Diagnostics.Trace.TraceInformation("MouseDown at {0}", pos);
}

操作イベントを取得するには、 IsManipulationEnabledをに設定する必要がありますtrue。MSDN入力の概要の「タッチと操作」セクションを参照してください。

于 2013-01-10T08:11:44.193 に答える