WPF - 增加现有样式的滚动条宽度

时间:2014-10-24 17:22:22

标签: c# wpf xaml mahapps.metro

我目前正在使用MahApps.Metro来设置我的WPF控件的样式。当我向组件添加ScrollViewer时,使用了MahApps.Metro样式,但是虽然我喜欢这种样式,但滚动条的宽度(垂直)并不适合我的需要。有人可以建议一种方法来增加现有样式的宽度(来自库,尽管源代码可以在github上获得)?

我尝试过使用:

<Style TargetType="ScrollBar"><Setter Property="Width" Value="50"/></Style>

但它将MahApps.Metro样式恢复为WPF默认值,但使用较粗的滚动条。在此之后,我尝试使用:

<sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">100</sys:Double>

但似乎没有视觉效果。

2 个答案:

答案 0 :(得分:4)

看起来他们的ScrollBar样式会使用不同的资源键覆盖宽度和高度:

<Style.Triggers>
    <Trigger Property="Orientation"
             Value="Horizontal">
        <Setter Property="Height"
                Value="{DynamicResource MetroScrollBarHeight}" />
        <!-- ... -->
    </Trigger>
    <Trigger Property="Orientation"
             Value="Vertical">
        <Setter Property="Width"
                Value="{DynamicResource MetroScrollBarWidth}" />
        <!-- ... -->
    </Trigger>
</Style.Triggers>

尝试像以前一样放弃资源覆盖,但改为使用自定义资源键:

<sys:Double x:Key="MetroScrollBarWidth">100</sys:Double>

答案 1 :(得分:0)

Mike Strobel's answer为基础,以及最好的复制粘贴传统,以下是我如何使用它......

<ScrollViewer
    Name="scrlMain"
    VerticalAlignment="Stretch"
    CanContentScroll="True"
    HorizontalScrollBarVisibility="Auto"
    VerticalScrollBarVisibility="Auto" >
    <ScrollViewer.Resources>
        <system:Double  x:Key="MetroScrollBarWidth">20</system:Double>
    </ScrollViewer.Resources>