我正在小型设备上使用触摸屏,滚动条的自定义宽度并不好,因为我的要求之一是手指手势都需要做一切。
如何设置WPF ScrollViewer滚动条的宽度?
请注意,我不想更改设备上所有滚动条的宽度(可通过Windows设置进行操作) - 仅限我应用中的滚动条。
答案 0 :(得分:52)
ScrollBar
模板伸出系统参数以确定其宽度/高度(取决于方向)。因此,您可以覆盖这些参数:
<ScrollViewer>
<ScrollViewer.Resources>
<sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">100</sys:Double>
</ScrollViewer.Resources>
</ScrollViewer>
答案 1 :(得分:19)
这是一个XAML解决方案:
<Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}">
<Setter Property="Stylus.IsFlicksEnabled" Value="True" />
<Style.Triggers>
<Trigger Property="Orientation" Value="Horizontal">
<Setter Property="Height" Value="40" />
<Setter Property="MinHeight" Value="40" />
</Trigger>
<Trigger Property="Orientation" Value="Vertical">
<Setter Property="Width" Value="40" />
<Setter Property="MinWidth" Value="40" />
</Trigger>
</Style.Triggers>
</Style>
答案 2 :(得分:18)
肯特的回答也可以应用于应用程序中的所有滚动条,方法是将其放在App.xaml
资源中,同时指定水平高度键。
<Application
xmlns:sys="clr-namespace:System;assembly=mscorlib"
...
>
<Application.Resources>
<sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">50</sys:Double>
<sys:Double x:Key="{x:Static SystemParameters.HorizontalScrollBarHeightKey}">50</sys:Double>
</Application.Resources>
</Application>
答案 3 :(得分:0)
如果您不想使用XAML,则可以在Application
的构造函数中进行操作,例如
using System.Windows;
public partial class App
{
public App()
{
Resources.Add(SystemParameters.VerticalScrollBarWidthKey, 50d);
Resources.Add(SystemParameters.HorizontalScrollBarHeightKey, 50d);
}
}