我在WPF中有一个UserControl。 UserControl有一个MouseLeftMouseButtonUp事件。 问题是 - Window在其MouseDown事件中有一个this.DragMove()方法,它似乎干扰了用户控件中的MouseLeftMouseButtonUp(我需要this.DragMove()方法来移动无边框窗口)。 有任何想法吗? 谢谢!
答案 0 :(得分:4)
DragMove 是一个同步调用;它会阻塞,直到用户完成移动窗口。这意味着一旦 DragMove 返回,左按钮就会。 DragMove()调用后立即添加代码,你应该没问题。
答案 1 :(得分:2)
我遇到了同样的问题,但找到了答案。如果已经处理了MouseDown,则Window_MouseDown事件将不会运行,因此您只需添加以下代码即可阻止DragMove干扰控件的鼠标事件:
Private Sub YourControl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles YourControl.MouseDown
e.Handled = True
End Sub
答案 2 :(得分:0)
我也有这样的问题,发现使用点击事件代替鼠标按钮事件不会触发拖动。对于我的修复,我只需要换一个标签换一个按钮。您可以为usercontrol子类化不同的元素,以便您可以选择要使用的click事件吗?
答案 3 :(得分:0)
private void MouseDown(object sender, MouseButtonEventArgs e)
{
e.Handled = true;
if (e.LeftButton == MouseButtonState.Pressed)
{
this.DragMove();
}
if (e.LeftButton == MouseButtonState.Released)
{
//your mouse up code
}
}