2012-09-20 50 views
0

我需要使垂直滚动条稍微低一些(因为我需要一个小按钮的空间)该按钮将悬停在右上角的ScrollViewer上。我想避免将滚动条从ScrollViewer中分离出来,只是在那里添加我的按钮。控制ScrollViewer的垂直滚动条高度

这是一个标准的WPF的ScrollViewer与

<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#代码)一些黑客,这将释放一些空间(这将是上边距,我猜)以上的垂直滚动条?

+0

哪个垂直滚动条?也许你应该发布一些Xaml。 –

+0

增加了XAML。它是默认的WPF ScrollViewer。 – JustAMartin

+0

我怀疑将滚动条完全分开的唯一方法是重新设置scrollviewer。 –

回答

2

我会改变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"**/> 
+0

谢谢,我重新调整了所有滚动条,对于需要填充的滚动条,我设置了: JustAMartin