откидная полоса прокрутки WPF - PullRequest
3 голосов
/ 10 ноября 2010

Привет. Я создаю элемент управления, который показывает линейку от 0 до максимума.Значение 0 находится внизу, а максимум - больше y, чем 0 (максимум не виден, пока мы не прокрутим его)Проблема в том, что пока 0 вниз, а максимум вверх.Значение 0 полосы прокрутки вверх, а максимум вниз.Я хочу, чтобы полоса прокрутки была перевернута.Как я могу это сделать?

Ответы [ 3 ]

7 голосов
/ 02 декабря 2014

Чувак, думай просто:

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

Привет

1 голос
/ 10 ноября 2010

Как насчет использования конвертера значений для отмены ваших свойств Minimum, Maximum и Value.Таким образом, полоса прокрутки будет действовать так, как если бы вы ее щелкнули.

код:

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 голосов
/ 12 июня 2018

Меня вдохновили некоторые ответы здесь, и я решил добавить свой для дальнейшего использования.

Для полосы прокрутки не имеет значения, повернута ли она на 180 градусов или перевернута вверх ногами, но для других элементов управления (иликакой-то стиль) это может быть важно.

Вот мой код:

<ScrollBar Orientation="Vertical" RenderTransformOrigin="0.5,0.5">
    <ScrollBar.RenderTransform>
        <ScaleTransform ScaleY="-1"/>
    </ScrollBar.RenderTransform>
</ScrollBar>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...