嗨,我的滑块左侧有一个“-”的图像,右侧有一个“+”的图像。
如何绑定这些图像,以便如果单击它们,它们会根据我的 SMALLCHANGE 值增加或减少滑块?
谢谢。
嗨,我的滑块左侧有一个“-”的图像,右侧有一个“+”的图像。
如何绑定这些图像,以便如果单击它们,它们会根据我的 SMALLCHANGE 值增加或减少滑块?
谢谢。
请注意,最简单的方法是命名您的 Slider,在 UserControl 中处理 Image.MouseLeftButtonUp 并在后面的代码中更改其值。如果您不打算重用此行为,则无需再做任何事情。
为了使这种行为可重用,有几种方法。最初,我建议在图像中使用EventTrigger ,并将CallMethodAction绑定到 Slider,但 Slider 没有 LargeIncrement、SmallIncrement、LargeDecrement、SmallDecremenet 等方法。不过,您可以将其子类化并自己实现这些方法。
另一种选择是为 Image(或任何 FrameworkElement)创建一个像“IncrementSlider”这样的AttachedProperty,它将通过 ElementName 绑定接收一个 Slider 实例。在 PropertyMetadata 的 PropertyChangedCallback 中(见此),您可以订阅控件的 MouseLeftButtonUp 事件并修改 Slider。您也可以创建其他附加属性,例如“DecrementSlider”、“SmallIncrementSlider”。
在这种情况下,比 AttachedProperty 更好的解决方案是AttachedBehavior。您可以使用 Slider 属性和其他控件属性(如“IncrementOrDecrement”和“SmallOrLarge”)为 FrameworkElement(或只是 Image)创建行为。在行为的 OnAttached 方法中,您将订阅控件的 MouseLeftButtonUp 以更新 Slider(如果有可用的话)。然后,您可以将行为附加到图像,将行为的 Slider 属性绑定到所需的 Slider,并将其配置到每个图像,以大步或小步递增或递减。