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を示すリソースの内部を作成する必要がありますTargetType

このスタイルは、xamlファイル内のすべてのScrollBarに適用されます。

<Window.Resources>
    <Style TargetType="{x:Type ScrollBar}">
        ....
    </Style>
于 2012-08-15T14:02:00.610 に答える