WPF ScrollViewer一些记录

来源:互联网 发布:ios 两个数组相同元素 编辑:程序博客网 时间:2024/06/05 21:00

WPF的ScrollViewer样式由几部分组成

1、<ControlTemplate ... /> 滚动条控制模板,内容区,水平滚动条,垂直滚动条

2、<Style x:Key="ScrollBarLineButtonStyle" ... /> 滚动条的按钮样式,即是含有三角图形的

3、<SolidColorBrush x:Key="ScrollBarPageButtonBrush" ... />  Track的填充块

4、<Style x:Key="ScrollBarStyle" TargetType="{x:Type ScrollBar}"> ... 主要设置部分:Thumb, Track, 增加按钮, 减少按钮,点击Thumb上下方的响应按钮

5、<Style x:Key="ThumbStyle" TargetType="{x:Type Thumb}"> ... Thumb样式

6、<Style x:Key="In_DecreaseRepeatButtonStyle" TargetType="{x:Type RepeatButton}">... Thumb上下方位置,隐藏的按钮

 

<!-- 滚动条控制模板,内容区,水平滚动条,垂直滚动条 --><ControlTemplate x:Key="ScrollViewerControlTemplate" TargetType="{x:Type ScrollViewer}">   <Grid ...>      <ScrollContentPresenter x:Name="PART_ScrollContentPresenter" .../>      <ScrollBar x:Name="PART_VerticalScrollBar" ... Style="{DynamicResource ScrollBarStyle}" />      <ScrollBar x:Name="PART_HorizontalScrollBar" ... Style="{DynamicResource ScrollBarStyle}" />   </Grid></ControlTemplate><!-- 滚动条的三角形按钮有关 --><Style x:Key="ScrollBarLineButtonStyle" TargetType="{x:Type RepeatButton}">   ...</Style><!-- 相当于Track的填充色 --><SolidColorBrush x:Key="ScrollBarPageButtonBrush" Color="#FFFFFFFF" Opacity="1"/><!-- 主要设置部分 --><Style x:Key="ScrollBarStyle" TargetType="{x:Type ScrollBar}">   ...   <ControlTemplate TargetType="{x:Type ScrollBar}">     <Grid ...>      ...      <!-- Up按钮 -->      <Viewbox Grid.Row="0"...>         <RepeatButton Command="{x:Static ScrollBar.LineUpCommand}" ... Style="{StaticResource ScrollBarLineButtonStyle}" />      </Viewbox>      <!-- 滚动条的轨道颜色 -->      <Rectangle Grid.Row="1" Fill="{StaticResource ScrollBarPageButtonBrush}" ... />      <Track Grid.Row="1" x:Name="PART_Track" IsDirectionReversed="true" Grid.Row="1">         <!-- Thumb上方的按钮,是隐藏的 -->         <Track.DecreaseRepeatButton>            <RepeatButton Command="{x:Static ScrollBar.PageUpCommand}" Style="{DynamicResource In_DecreaseRepeatButtonStyle}"/>         </Track.DecreaseRepeatButton>         <!-- Thumb下方的按钮,是隐藏的 -->         <Track.IncreaseRepeatButton>            <RepeatButton Command="{x:Static ScrollBar.PageDownCommand}" Style="{DynamicResource In_DecreaseRepeatButtonStyle}"/>         </Track.IncreaseRepeatButton>         <!-- Thumb样式 -->         <Track.Thumb>            <Thumb Style="{DynamicResource ThumbStyle}"/>         </Track.Thumb>      </Track>      <!-- Down按钮 -->      <Viewbox Grid.Row="2" ...>         <RepeatButton Command="{x:Static ScrollBar.LineUpCommand}" ... Style="{StaticResource ScrollBarLineButtonStyle}" />      </Viewbox>     </Grid>   </ControlTemplate>   ...   </Setter>   <Style.Triggers>      <Trigger Property="Orientation" Value="Horizontal">      <!-- 这部分是响应水平滚动条的样式,跟垂直的设置相似 -->      ....   </Style.Triggers></Style><Style x:Key="ThumbStyle" TargetType="{x:Type Thumb}">   ...</Style><Style x:Key="In_DecreaseRepeatButtonStyle" TargetType="{x:Type RepeatButton}">   ...</Style>

ScrollBarStyle:

Width与MinWidth设置

上下的ViewBox不可见

ScrollBarPageButtonBrush设置颜色

Thumb的Background设置颜色


0 0
原创粉丝点击