自定义ScrollViewer样式

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=mscorlib">
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/Styles/ColorStyles.xaml" />
        <ResourceDictionary Source="/Styles/ScrollBarStyles.xaml" />
    </ResourceDictionary.MergedDictionaries>
    <SolidColorBrush
        x:Key="ScrollBarBackground"
        Color="Transparent" />
    <Style
        x:Key="WpScrollViewerStyleBase"
        TargetType="ScrollViewer">
        <Setter Property="HorizontalScrollBarVisibility" Value="Hidden" />
        <Setter Property="VerticalScrollBarVisibility" Value="Auto" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ScrollViewer}">
                    <Grid
                        x:Name="Grid"
                        Background="{TemplateBinding Background}">
                        <Grid.Resources>
                            <Style
                                BasedOn="{StaticResource WpScrollBarStyle}"
                                TargetType="ScrollBar" />
                        </Grid.Resources>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*" />
                            <ColumnDefinition Width="Auto" />
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="*" />
                            <RowDefinition Height="Auto" />
                        </Grid.RowDefinitions>
                        <!--<Rectangle
                            x:Name="Corner"
                            Grid.Row="1"
                            Grid.Column="1"
                            Fill="{StaticResource ScrollBarBackground}"
                            RadiusX="4"
                            RadiusY="4" />-->
                        <ScrollContentPresenter
                            x:Name="PART_ScrollContentPresenter"
                            Margin="{TemplateBinding Padding}"
                            CanContentScroll="{TemplateBinding CanContentScroll}"
                            CanHorizontallyScroll="False"
                            CanVerticallyScroll="False"
                            Content="{TemplateBinding Content}"
                            ContentTemplate="{TemplateBinding ContentTemplate}" />
                        <ScrollBar
                            x:Name="PART_HorizontalScrollBar"
                            Grid.Row="1"
                            Grid.Column="0"
                            AutomationProperties.AutomationId="HorizontalScrollBar"
                            Maximum="{TemplateBinding ScrollableWidth}"
                            Orientation="Horizontal"
                            ViewportSize="{TemplateBinding ViewportWidth}"
                            Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
                            Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" />
                        <ScrollBar
                            x:Name="PART_VerticalScrollBar"
                            Grid.Row="0"
                            Grid.Column="1"
                            AutomationProperties.AutomationId="VerticalScrollBar"
                            Maximum="{TemplateBinding ScrollableHeight}"
                            Orientation="Vertical"
                            ViewportSize="{TemplateBinding ViewportHeight}"
                            Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
                            Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <!--  细滚动视图样式  -->
    <Style
        x:Key="ThinScrollViewer"
        BasedOn="{StaticResource WpScrollViewerStyleBase}"
        TargetType="ScrollViewer">
        <Style.Resources>
            <!--  滚动条宽度/高度  -->
            <sys:Double x:Key="ScrollBarThickness">4</sys:Double>
            <!--  滑块圆角  -->
            <sys:Double x:Key="ThumbCornerRadius">2</sys:Double>
        </Style.Resources>
    </Style>
    <!--  粗滚动视图样式  -->
    <Style
        x:Key="ThickScrollViewer"
        BasedOn="{StaticResource WpScrollViewerStyleBase}"
        TargetType="ScrollViewer">
        <Style.Resources>
            <!--  滚动条宽度/高度  -->
            <sys:Double x:Key="ScrollBarThickness">8</sys:Double>
            <!--  滑块圆角  -->
            <sys:Double x:Key="ThumbCornerRadius">4</sys:Double>
        </Style.Resources>
    </Style>
</ResourceDictionary>
  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值