私は WPF アプリ、より具体的にはドラッグ可能な要素を持つ Canvas を使用しています。
アイテムがドラッグされたら、アイテムがドラッグされているキャンバス内にカーソルの移動範囲を制限したいと思います。
ドラッグを開始できるイベントを以下に示します
private void WidgetCanvas_PreviewHeaderLeftMouseDown(object sender, MouseButtonEventArgs e)
{
e.Handled = true;
... logic to figure out if this is a valid drag, blah blah blah ...
this.IsDragging = true;
// TODO: clip the available cursor movement to actual width of Canvas
}
Preview-MouseUp では、カーソルの動きを単純に「クリップ解除」して通常の状態に戻したいと思います。
ドラッグ(PreviewMouseMove)を開始すると、マウスの動きを監視するので、最悪の場合、マウスの位置を手動で確認してキャンバスに拘束したままにすることもできますが、それは少し醜いようです.
カーソルの境界を制限するより良い方法はありますか?