wpf - slider MouseLeftButtonDown 不起作用?

标签 wpf silverlight slider mouseevent

尝试使用 Slider 时控制我想听MouseLeftButtonDownMouseLeftButtonUp .我为这两个事件设置了处理程序。 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/

相关文章:

c# - 如何处理 WPF 数据绑定(bind)菜单中的单击事件

c# - 从 silverlight 中的 observablecollection 中删除多个项目

javascript - 如何在此 slider /旋转木马的每个框下方添加不同的文本?

wpf - LiveCharts ColumnSeries 填充颜色

wpf - 您如何管理庞大且几乎无法维护的 XAML 文件?

c# - WPF DataGrid 的多线程?

c# - Silverlight 应用程序中的 F# 库?

ASP.NET 与 Silverlight

wpf - 如何找到 slider 的拇指来设置其宽度

css - 使用 css 缩放属性时鼠标坐标错误