このアプリでは、Element ホスト内に小さな WPF Listbox をホストし、PreviewMouseDown イベントを使用してドラッグ アンド ドロップを実装します...
private void Border_PreviewMouseMove(object sender, MouseEventArgs e)
{
// Get the current mouse position
Point mousePos = e.GetPosition(null);
Vector diff = startPoint - mousePos;
if (e.LeftButton == MouseButtonState.Pressed &&
Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance &&
Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance)
{
OnDragStarted(e);
}
}
私たちが目にしている問題は、アイテムをクリックしてドラッグすると、マウスが Elementhost を離れる前に WPF コントロールが PreviewMouseMove イベントを 1 つしか発生させないため、マウスが Elementhost に戻って別の PreviewMouseMove に戻るまでドラッグ操作が開始されないことです。イベントが発生します。
このケースを処理する堅牢な方法はありますか?