2012-09-20 94 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