尝试使用Slider
控件时,我想听MouseLeftButtonDown
and MouseLeftButtonUp
。我为这两个事件设置了处理程序。MouseLeftButtonUp
作品符合预期。MouseLeftButtonDown
根本没有提出来。
任何想法为什么?
我做了一些谷歌搜索,似乎 WPF 也没有触发。解决方案之一(在这篇文章中)是使用 Silverlight 不支持的事件的预览版。
有没有我没有看到的简单解决方案?
谢谢J
尝试使用Slider
控件时,我想听MouseLeftButtonDown
and MouseLeftButtonUp
。我为这两个事件设置了处理程序。MouseLeftButtonUp
作品符合预期。MouseLeftButtonDown
根本没有提出来。
任何想法为什么?
我做了一些谷歌搜索,似乎 WPF 也没有触发。解决方案之一(在这篇文章中)是使用 Silverlight 不支持的事件的预览版。
有没有我没有看到的简单解决方案?
谢谢J
这是因为 Slider 处理鼠标向下/向上事件。在内部,它实现为两个重复按钮和中间的拇指。当您单击滑块的左侧或右侧时,您的鼠标事件由重复按钮处理,您不会得到它们。
如果您仍想处理已处理的事件,您可以使用AddHandler()方法。这是 Silverlight 示例:
XAML
<Slider Width="100"
VerticalAlignment="Top"
Minimum="0"
Maximum="100"
Name="sl" />
C#
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
sl.AddHandler(MouseLeftButtonDownEvent, new MouseButtonEventHandler(Slider_MouseLeftButtonDown), true);
sl.AddHandler(MouseLeftButtonUpEvent, new MouseButtonEventHandler(Slider_MouseLeftButtonUp), true);
}
private void Slider_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
}
private void Slider_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
}
}
在 WPF 中情况几乎相同(名称略有不同)。