2013-02-20 48 views
0

嗨我的滑块左侧有一个' - '图像,右侧有一个'+'图像。将+/-图像绑定到滑块?

如何绑定这些图像,如果它们被点击,它们将通过我的SMALLCHANGE值增加或减少滑块?

谢谢。

回答

0

请注意,最简单的方法是命名您的Slider,处理UserControl中的Image.MouseLeftButtonUp并在代码后面更改其值。如果您不打算重复使用此行为,则无需再进行任何操作。

要使此行为可重用,有几种方法。最初,我建议在图像中使用EventTrigger,将CallMethodAction绑定到Slider,但Slider不具有LargeIncrement,SmallIncrement,LargeDecrement,SmallDecremenet等方法。尽管如此,你可以继承它并自己实现这些方法。

另一种选择是创建一个AttachedProperty像“IncrementSlider”图像(或任何FrameworkElement),它将通过ElementName绑定接收Slider实例。在PropertyMetadata的PropertyChangedCallback(请参阅this)中,您可以订阅控件的MouseLeftButtonUp事件并修改Slider。您还可以创建其他附加属性,例如“DecrementSlider”,“SmallIncrementSlider”。

比AttachedProperty更好的解决方案是AttachedBehavior。您可以使用Slider属性和其他控件属性(如“IncrementOrDecrement”和“SmallOrLarge”)为FrameworkElement(或仅图像)创建行为。在行为的OnAttached方法中,您将订阅控件的MouseLeftButtonUp以更新Slider(如果有的话)。然后,您可以将行为附加到图像上,将行为的Slider属性绑定到所需的Slider上,然后将其配置为其中的每一个,以大或小步幅递增或递减。

+0

谢谢。很多尝试那里。这个工作太:'私人小组ImageEasyMinus_MouseLeftButtonDown(发件人为System.Object的,例如作为System.Windows.Input.MouseButtonEventArgs)把手ImageEasyMinus.MouseLeftButtonDown sliderEasy.Value - = sliderEasy.SmallChange 结束子 私人小组ImageEasyPlus_MouseLeftButtonDown(发件人为系统.Object,e As System.Windows.Input.MouseButtonEventArgs)Handles ImageEasyPlus.MouseLeftButtonDown sliderEasy.Value + = sliderEasy.SmallChange End Sub' – finisterre 2013-02-21 15:10:15