0

我有一个在触摸屏计算机上运行的 WPF 应用程序。我想将应用程序中的所有滚动条更改为更宽。有没有办法在全球范围内做到这一点?

4

2 回答 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 回答