在我的应用程序中全局更改滚动条的宽度

时间:2012-08-15 13:32:56

标签: wpf webbrowser-control

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

2 个答案:

答案 0 :(得分:3)

哟必须override the default template of scrollViewer才能增加垂直滚动条的宽度。要在所有滚动条中应用模板,请将覆盖样式放在App资源中 -

<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)下放置此样式会使其应用于整个应用程序。

答案 1 :(得分:1)

您需要在资源内部创建一个Style,表示TargetType

此样式将应用于xaml文件中的所有ScrollBars。

<Window.Resources>
    <Style TargetType="{x:Type ScrollBar}">
        ....
    </Style>