WPF中如何将ScrollViewer的滚动条放到左侧

为轮子而生 2016-02-22 08:50:05
如题,有一个需求必须要这样做,所以请各位大师勿问为何,只说解决方法即可,谢谢

如果真要用其他方法代替,也请不要影响鼠标滚轮和其他滚动界面应有的特性
...全文
445 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
好几只小萝莉 2016-02-22
  • 打赏
  • 举报
回复

<Style TargetType="{x:Type ScrollViewer}">
                            <Setter Property="Template">
                                <Setter.Value>
                                    <ControlTemplate TargetType="{x:Type ScrollViewer}">
                                        <Grid x:Name="Grid"
                                              Background="{TemplateBinding Background}">
                                            <Grid.ColumnDefinitions>
                                                <ColumnDefinition Width="Auto" />
                                                <ColumnDefinition Width="*" />
                                            </Grid.ColumnDefinitions>
                                            <Grid.RowDefinitions>
                                                <RowDefinition Height="*" />
                                                <RowDefinition Height="Auto" />
                                            </Grid.RowDefinitions>
                                            <Rectangle x:Name="Corner"
                                                       Grid.Column="1"
                                                       Fill="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
                                                       Grid.Row="1" />
                                            <ScrollContentPresenter x:Name="PART_ScrollContentPresenter"
                                                                    CanContentScroll="{TemplateBinding CanContentScroll}"
                                                                    CanHorizontallyScroll="False"
                                                                    CanVerticallyScroll="False"
                                                                    ContentTemplate="{TemplateBinding ContentTemplate}"
                                                                    Content="{TemplateBinding Content}"
                                                                    Grid.Column="1"
                                                                    Margin="{TemplateBinding Padding}"
                                                                    Grid.Row="0" />
                                            <ScrollBar x:Name="PART_VerticalScrollBar"
                                                       AutomationProperties.AutomationId="VerticalScrollBar"
                                                       Cursor="Arrow"
                                                       Grid.Column="0"
                                                       Maximum="{TemplateBinding ScrollableHeight}"
                                                       Minimum="0"
                                                       Grid.Row="0"
                                                       Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
                                                       Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
                                                       ViewportSize="{TemplateBinding ViewportHeight}" />
                                            <ScrollBar x:Name="PART_HorizontalScrollBar"
                                                       AutomationProperties.AutomationId="HorizontalScrollBar"
                                                       Cursor="Arrow"
                                                       Grid.Column="0"
                                                       Maximum="{TemplateBinding ScrollableWidth}"
                                                       Minimum="0"
                                                       Orientation="Horizontal"
                                                       Grid.Row="1"
                                                       Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
                                                       Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
                                                       ViewportSize="{TemplateBinding ViewportWidth}" />
                                        </Grid>
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
                        </Style>
muzizongheng 2016-02-22
  • 打赏
  • 举报
回复
编辑ScrollViewer的control template。 用blend的话就比较简单, 右键scrollViewer编辑模板, 进去后把vertical scrollbar在grid的位置放到左边,

8,737

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧