在尝试使用Slider控件时,我想听听MouseLeftButtonDown和MouseLeftButtonUp。我已经为这两个事件设置了处理程序。MouseLeftButtonUp按预期工作。根本不引发MouseLeftButtonDown。
知道为什么吗?
我已经做了一些谷歌,似乎WPF也没有开火。解决方案之一(在这个岗位上)是使用事件的预览版本,这是silverlight不支持的。
有什么简单的解决办法我看不到吗?
谢谢J
发布于 2009-09-24 16:22:33
这是因为Slider处理鼠标向下/向上的事件。在内部,它被实现为两个RepeatButtons和中间的一个拇指。当您单击滑块的左侧或右侧时,您的鼠标事件将由RepeatButtons处理,而不会得到它们。
如果仍然希望处理已处理的事件,可以使用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中,情况几乎相同(名称上的细微差别)。
https://stackoverflow.com/questions/1471590
复制相似问题