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

3
我目前正在使用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个回答

7

看起来他们的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>

这正是我想要的。当你知道该去哪里寻找时,它看起来很简单。再次感谢您的帮助。 - BlackBox
随着版本MahApps.Metro 2.0(目前处于alpha测试阶段),MetroScrollBarWidth已更改为MahApps.Sizes.ScrollBar.Width - Ben

0

Mike Strobel的回答的基础上,并且遵循最佳复制粘贴的传统,这是我让它正常工作的方法...

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接