尝试使用Slider控件时,我想听MouseLeftButtonDownand MouseLeftButtonUp。我为这两个事件设置了处理程序。MouseLeftButtonUp作品符合预期。MouseLeftButtonDown根本没有提出来。
任何想法为什么?
我做了一些谷歌搜索,似乎 WPF 也没有触发。解决方案之一(在这篇文章中)是使用 Silverlight 不支持的事件的预览版。
有没有我没有看到的简单解决方案?
谢谢J
尝试使用Slider控件时,我想听MouseLeftButtonDownand 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 中情况几乎相同(名称略有不同)。