如何增加 WPF ScrollViewer 中的滚动条宽度?
Posted
技术标签:
【中文标题】如何增加 WPF ScrollViewer 中的滚动条宽度?【英文标题】:How to increase scrollbar width in WPF ScrollViewer? 【发布时间】:2010-11-22 05:12:48 【问题描述】:我正在小型设备上的触摸屏上工作,滚动条的自定义宽度并不好,因为我的要求之一是一切都需要通过手指手势来完成。
如何设置 WPF ScrollViewer 滚动条的宽度?
请注意,我不想更改设备上所有滚动条的宽度(可通过 Windows 设置实现) - 仅更改我应用中的滚动条。
【问题讨论】:
【参考方案1】:ScrollBar
模板用于获取系统参数以确定其宽度/高度(取决于方向)。因此,您可以覆盖这些参数:
<ScrollViewer>
<ScrollViewer.Resources>
<sys:Double x:Key="x:Static SystemParameters.VerticalScrollBarWidthKey">100</sys:Double>
</ScrollViewer.Resources>
</ScrollViewer>
【讨论】:
谢谢 - 它看起来像我需要的!我在页面中有滚动查看器 - 当我尝试应用您的建议时,我得到 sys:Double 未找到 -> 任何线索为什么?对 WPF 不太熟悉 您需要将 sys 命名空间映射到 mscorlib 中的 System,如下所示:xmlns:sys="clr-namespace:System;assembly=mscorlib"【参考方案2】:Kent 的答案也可以通过将其放在您的 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】:这是一个 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>
【讨论】:
这个“IsFlicksEnabled”是关于什么的? IsFlicksEnabled 与在触摸屏设置中使用时是否可以响应手势有关:msdn.microsoft.com/en-us/library/…【参考方案4】:如果你不想使用 XAML,你可以在 Application
的构造函数中进行,例如
using System.Windows;
public partial class App
public App()
Resources.Add(SystemParameters.VerticalScrollBarWidthKey, 50d);
Resources.Add(SystemParameters.HorizontalScrollBarHeightKey, 50d);
【讨论】:
以上是关于如何增加 WPF ScrollViewer 中的滚动条宽度?的主要内容,如果未能解决你的问题,请参考以下文章