データグリッドでドラッグドロップターゲットを使用しているアプリケーションで同じ問題が発生していました。解決策を見つけましたが、それは望ましい方法ではありませんでした。その解決策のおかげで、私が望んでいたとおりに機能する別の方法を見つけることができます。
DragStartingイベントを使用して、 MouseLeftButtonUpおよびMouseLeftButtonDownイベントから受け取った入力に基づいてドラッグをキャンセルします。
DragStarting イベントで:
public void dg1stUnAllocDragStarting (object sender, ItemDragEventArgs e)
{
if (blnMouseLeftButtonUp)
{
e.Cancel = true;
e.Handled = true;
}
blnMouseLeftButtonUp = false;
}
MouseLeftButtonUp イベント:
public void dataGrid1stUnAllocChild_MouseLeftButtonUp (object sender, MouseButtonEventArgs e)
{
blnMouseLeftButtonUp = true;
}
MouseLeftButtonDown イベント:
public void dataGrid1stUnAllocChild_MouseLeftButtonDown (object sender, MouseButtonEventArgs e)
{
blnMouseLeftButtonUp = false;
e.Handled = false;
}
それがあなたを助けることを願っています。