MouseDown/MouseLeftButtonDown事件不会触发,MouseUp是?
问题描述:
这里是我的代码:MouseDown/MouseLeftButtonDown事件不会触发,MouseUp是?
public AbilitiesController(Abilities page)
{
_page = page;
page.ScrollBar.MouseLeftButtonDown += MouseDown;
page.ScrollBar.MouseLeftButtonUp += MouseUp;
page.ScrollBar.MouseLeave += MouseLeave;
page.ScrollBar.MouseWheel += MouseWheel;
page.ScrollBar.MouseMove += MouseMove;
}
private void MouseMove(object sender, MouseEventArgs mouseEventArgs)
{
if (!_dragBound) return;
var newPos = mouseEventArgs.GetPosition(_page);
var dPos = newPos - _pos;
_page.ScrollBar.ScrollToHorizontalOffset(dPos.X);
_page.ScrollBar.ScrollToVerticalOffset(dPos.Y);
_pos = newPos;
Console.WriteLine("Moved");
}
private void MouseWheel(object sender, MouseWheelEventArgs mouseWheelEventArgs)
{
Console.WriteLine("MouseWheel");
}
private void MouseLeave(object sender, MouseEventArgs mouseEventArgs)
{
_dragBound = false;
Console.WriteLine("Left");
}
private void MouseUp(object sender, MouseButtonEventArgs mouseButtonEventArgs)
{
_dragBound = false;
Console.WriteLine("Mouse Up");
}
private void MouseDown(object sender, MouseButtonEventArgs mouseButtonEventArgs)
{
_dragBound = true;
Console.WriteLine("Click!");
}
页是一个网页,滚动条滚动型。
我知道我的移动滚动条的逻辑可能是不正确的,但我们甚至没有得到那么多。
出于某种奇怪的原因,MouseDown事件不会触发是否将其绑定到MouseDown或MouseLeftButtonDown。
但奇怪的是,MouseUp事件没有问题。
这似乎非常奇怪,因为通常如果一个坏了,另一种是太...
在WPF项目中使用最新版本的Visual Studio 2017。
答
对于所有其他非工作鼠标事件,您可能会尝试使用“PreviewMouseDown”而不是“MouseDown”,因为它们可能已经由“能力”类的基类来处理。
+0
PreviewMouse事件修复了这个问题,谢谢! –
根据这篇文章,它可能已经被ScrollBar类重写了鼠标向下。 http://stackoverflow.com/questions/22813608/wpf-button-mouseleftbuttondown-doesnt-work-at-all –
尝试绑定到page.MouseDown和page.MouseUp,仍然是完全相同的问题。 –
怎么样抛出一个覆盖它。只是一个猜测,但如果它在某些基类中被覆盖,那么它就会起作用。 –