2010-11-09 68 views
2

嗨 我正在构建一个控件,显示从0到最大的标尺。 0值位于底部,最大值位于y值较高的位置,然后是0(直到滚动到最大值才可见)。 问题是当0关闭并且最大值已到达时。滚动条的0值为up,最大值为down。 我希望滚动条会翻转。 我该怎么做?翻转滚动条WPF

回答

1

如何使用值转换器来取消您的“最小值”,“最大值”和“值”属性。这样滚动条就像你翻转它一样。

代码:

class NegativeValueConverter : IValueConverter 
{ 
    object Convert(object value, ...) 
    { 
    return -System.Convert.ToDouble(value); 
    } 

    object ConvertBack(object value, ...) 
    { 
    return -System.Convert.ToDouble(value); 
    } 
} 

XAML:

<Resources> 
    <local:NegativeValueConverter x:Key="negative" /> 
</Resources> 
<ScrollBar Value="{Binding RulerValue, Converter={StaticResource negative}" 
      Minimum="{Binding RulerMinimum, Converter={StaticResource negative}" 
      Maximum="{Binding RulerMaximum, Converter={StaticResource negative}"/> 
+0

谢谢,我没有尝试,但是我认为,它应该做的伎俩。我昨晚想要创建一个从ScrollBar继承的类并覆盖Value属性,以便返回最大值的值,但是在覆盖ScrollBar类之后,新类没有显示,我不知道为什么。 – user502490 2010-11-10 05:26:21

5

花花公子,想简单:

  <ScrollBar.RenderTransform> 
       <RotateTransform Angle="180"/> 
      </ScrollBar.RenderTransform> 

问候

+0

为了保持它在同一位置,请添加: ' Erko 2016-09-13 08:07:56