我正在尝试在 DataGrid 视图中进行拖放。
我的 DataGrid 是在用户控件中定义的,并且用户控件托管在 tabcontrol 中
现在我正在处理以下事件
PreviewMouseLeftButtonDown="OnPreviewMouseLeftButtonDown"
PreviewMouseMove="OnPreviewMouseMove"
处理程序定义如下;
private void OnPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
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))
{
// .......doing drag/drop work here.......
}
}
private void OnPreviewMouseMove(object sender, MouseEventArgs e)
{
startPoint = e.MouseDevice.GetPosition(null);
}
其中 startPoint 是 Point 类型的内部变量
但是,OnPreviewMouseLeftButtonDown 函数中的向量差异始终为零。
令我惊讶的是,相同的逻辑在 triewview 控件中有效,但在数据网格中无效?任何帮助将非常感激