如何确定事件是由 UI 还是由代码引发的?我需要识别滑块的值是否由用户从 UI 更改或具有来自执行代码的新值?
谢谢!
我假设您已经Slider
连接到双向绑定,因此滑块的当前值可以通过用户拖动滑块Thumb
或通过绑定类的代码更改属性的值来确定滑块是必然的。如果这是真的,那么我认为一种可行的方法是,如果您对 Slider Thumb 的 DragCompleted
event使用处理程序。尽管我没有尝试过,但我相信这会起作用,因为看起来拇指只会被用户“拖动”,而不是您执行的代码会更改滑块绑定到的值(尽管我承认这将导致拇指“移动”,因此这将需要测试来验证)。
有关此类似问题的更多指导,请参阅 YotaXP 和 Santo 的答案。
由于 Thumb 的 DragCompleted 事件没有解决用户单击滑块的情况,因此我使用了类似于 Peter 在link中建议的内容,我使用了滑块的 PreviewMouseLeftButtonUp 事件。这解决了所有情况。