WPF, полоса прокрутки Thumb отображает задом наперед - PullRequest
3 голосов
/ 02 августа 2011

Я следовал руководству по созданию шаблона полосы прокрутки с этого сайта: http://sachabarber.net/?p=122

Но по какой-то причине элемент управления Thumb находится в обратном направлении. Когда содержимое средства просмотра прокрутки находится вверху, большой палец, как внизу, когда я нажимаю нижнюю кнопку повтора, содержимое прокрутки прокручивается правильно, однако большой палец входит в направление вверх. и наоборот, когда я нажимаю верхнюю кнопку повтора, большой палец опускается.

Не уверен, что я сделал, чтобы заставить это сделать это ... Когда я удаляю созданный шаблон элемента управления, он возвращается к стилю по умолчанию, и большой палец помещается правильно.

Ниже приведен код для шаблона управления. У меня есть этот шаблон ссылки на элемент управления Scrollbar, и все отображается нормально, за исключением большого пальца.

<ControlTemplate x:Key="kd_VertScrollBar" TargetType="{x:Type ScrollBar}">
                <Grid Width="15">
                    <Grid.RowDefinitions>
                        <RowDefinition MaxHeight="25"/>
                        <RowDefinition Height=".00001*"/>
                        <RowDefinition MaxHeight="25"/>
                    </Grid.RowDefinitions>

                    <Border Grid.RowSpan="3" CornerRadius="2" Background="#CCCCCCCC" /> 

                    <RepeatButton Grid.Row="0"
                        Background="Aqua"
                        Height="25"
                        ContentTemplate="{StaticResource RepeatButtonImage}"
                        Command="ScrollBar.LineUpCommand" />

                    <Track Grid.Row="1">
                        <Track.DecreaseRepeatButton>
                            <RepeatButton Style="{StaticResource ScrollBarPageButton}" Command="ScrollBar.PageUpCommand" />
                        </Track.DecreaseRepeatButton>

                        <Track.Thumb>
                            <Thumb Style="{StaticResource ScrollBarThumb}" Background="Blue" BorderBrush="Black" />
                        </Track.Thumb>

                        <Track.IncreaseRepeatButton>
                            <RepeatButton Style="{StaticResource ScrollBarPageButton}" Command="ScrollBar.PageDownCommand" />
                        </Track.IncreaseRepeatButton>
                    </Track>

                    <RepeatButton x:Name="ToBottom" Grid.Row="2"
                        Background="Aqua"
                        Height="25"
                        ContentTemplate="{StaticResource RepeatButtonImage}"
                        Command="ScrollBar.LineDownCommand" />

                </Grid>
            </ControlTemplate>

Любая помощь будет принята с благодарностью

1 Ответ

2 голосов
/ 02 августа 2011

Вы должны установить IsDirectionReversed на true на Track, что и делают шаблоны по умолчанию.

...