0

小さなボタン用のスペースが必要なため、垂直スクロールバーを少し低く(短く)する必要があります。ボタンは右上隅のScrollViewerにカーソルを合わせます。ボタンをそこに追加するためだけに、ScrollViewerからスクロールバーを分​​離することは避けたいと思います。

これは、標準のWPFScrollViewerです。

 <ScrollViewer Name="Scroller" CanContentScroll="True" VerticalScrollBarVisibility="Auto"  Height="{Binding ElementName=OuterContainer, Path=ActualHeight}" Width="{Binding ElementName=OuterContainer, Path=ActualWidth}">
            <Grid Name="Container" Margin="5,5,5,5"> 
            </Grid>
</ScrollViewer>

垂直スクロールバーの上のスペース(おそらく上マージン)を解放するハックをスタイリング(またはC#コード)する方法はありますか?

4

1 に答える 1

4

ScrollViewersのスタイルを変更します。MSDNライブラリhttp://msdn.microsoft.com/en-us/library/aa970847.aspxによると、デフォルトのスタイルは

<Style x:Key="LeftScrollViewer"
   TargetType="{x:Type ScrollViewer}">
  <Setter Property="OverridesDefaultStyle"
      Value="True" />
  <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>
          <Border Grid.Column="1"
                BorderThickness="0,1,1,1">
            <Border.BorderBrush>
              <SolidColorBrush Color="{DynamicResource BorderMediumColor}" />
            </Border.BorderBrush>
            <ScrollContentPresenter />
          </Border>
          <ScrollBar x:Name="PART_VerticalScrollBar"
                   Value="{TemplateBinding VerticalOffset}"
                   Maximum="{TemplateBinding ScrollableHeight}"
                   ViewportSize="{TemplateBinding ViewportHeight}"
                   Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/>
          <ScrollBar x: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>

したがって、垂直スクロールバーを次のように置き換えることができます

<ScrollBar x:Name="PART_VerticalScrollBar"
                   Value="{TemplateBinding VerticalOffset}"
                   Maximum="{TemplateBinding ScrollableHeight}"
                   ViewportSize="{TemplateBinding ViewportHeight}"
                   Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
                     **Margin="0,12,0,0"**/>
于 2012-09-20T08:45:13.420 に答える