我有一个在触摸屏计算机上运行的 WPF 应用程序。我想将应用程序中的所有滚动条更改为更宽。有没有办法在全球范围内做到这一点?
问问题
995 次
2 回答
3
哟必须override the default template of scrollViewer
增加垂直滚动条的宽度。要将模板应用于所有滚动条,请将覆盖样式放在您的应用资源中 -
<Style TargetType="{x:Type ScrollViewer}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="HorizontalContentAlignment" Value="Left" />
<Setter Property="VerticalContentAlignment" Value="Top" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollViewer}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ScrollContentPresenter Grid.Column="1"/>
<ScrollBar Name="PART_VerticalScrollBar"
Value="{TemplateBinding VerticalOffset}"
Width="40"
Maximum="{TemplateBinding ScrollableHeight}"
ViewportSize="{TemplateBinding ViewportHeight}"
Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/>
<ScrollBar Name="PART_HorizontalScrollBar"
Orientation="Horizontal"
Grid.Row="1"
Grid.Column="1"
Value="{TemplateBinding HorizontalOffset}"
Maximum="{TemplateBinding ScrollableWidth}"
ViewportSize="{TemplateBinding ViewportWidth}"
Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
您可以将宽度设置'PART_VerticalScrollBar'
为您想要的宽度(例如上面示例中的 40)。将此样式放在Application Resources
(App.xaml) 下使其应用于整个应用程序。
于 2012-08-15T13:59:27.927 回答
1
您需要Style
在 Resources 内部创建一个指示TargetType
.
此样式将应用于您的 xaml 文件中的所有 ScrollBar。
<Window.Resources>
<Style TargetType="{x:Type ScrollBar}">
....
</Style>
于 2012-08-15T14:02:00.610 回答