尝试使用 Slider
时控制我想听MouseLeftButtonDown
和 MouseLeftButtonUp
.我为这两个事件设置了处理程序。 MouseLeftButtonUp
按预期工作。 MouseLeftButtonDown
根本没有提出来。
任何想法为什么?
我做了一些谷歌搜索,似乎 WPF 也没有触发。解决方案之一 (in this post) 是使用 Silverlight 不支持的事件的预览版。
有没有我没有看到的简单解决方案?
谢谢
Ĵ
最佳答案
这是因为 Slider 处理鼠标向下/向上事件。在内部,它实现为两个重复按钮和中间的拇指。当您单击 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 中情况几乎相同(名称略有不同)。
关于wpf - slider MouseLeftButtonDown 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1471590/