【发布时间】:2011-03-14 21:35:18
【问题描述】:
在我们的应用中,我们在 Element 主机中托管一个小型 WPF 列表框,我们使用 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);
}
}
我们看到的问题是,当我相当快地单击并拖动一个项目时,WPF 控件仅在鼠标离开 Elementhost 之前触发一个 PreviewMouseMove 事件,因此直到鼠标返回到 Elementhost 才开始拖动操作并引发另一个 PreviewMouseMove 事件。
有处理这种情况的可靠方法吗?
【问题讨论】:
标签: c# wpf drag-and-drop winforms-interop