c# - 仅当用户更改值时才会发生的 WPF Slider 事件

标签 c# wpf slider media-player seekbar

我正在制作一个音乐播放器,我需要在其中创建一个搜索。现在我已经在 WinForms 中以这种方式使用 TrackBar 完成了它:

  • 使用计时器使媒体的位置与 TrackBar 的值保持同步。
  • 使用 Scroll 事件在用户拖动 TrackBar 的拇指时更改媒体位置。

但在 WPF 中,没有 Scroll 事件,即使在代码中更改了值,也会触发 ValueChanged 事件。因此,当我使用 DispatcherTimer 更新 slider 位置时,即使这样 ValueChanged 事件也会被触发,进而改变媒体位置。因此,媒体无法正常播放。

所以我需要一个仅在用户更改 Slider 的值时触发的事件。

我已经遇到了this question但它没有正确的答案。

任何帮助将不胜感激。感谢期待。

最佳答案

在您的 ValueChanged 事件处理程序中,检查一些属性以查看用户交互。

IsFocused, IsMouseDirectlyOver, IsMouseOver, IsKeyboardFocused, IsKeyboardFocusWithin 

关于c# - 仅当用户更改值时才会发生的 WPF Slider 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34480094/

相关文章:

c# - 当 IDENTITY_INSERT 设置为 OFF 时,无法在表 'candidatedetails' 中为标识列插入显式值

c# - 其中一个实现需要异步的接口(interface)

c# - WPF:将文本框输入格式化为用户类型

c# - 如何将自闭标签添加到xml中的元素?

jquery - 带淡入淡出的简单背景 slider

javascript - 悬停时暂停幻灯片放映

c# - 从 C# 运行 Jar 文件

c# - 有效地将 OracleDecimal 转换为带截断的 .NET 十进制

jquery - 在悬停时滑动输入并停留几秒钟

wpf - 将 ToolbarTray 拉伸(stretch)为其行的宽度