2013-01-08 24 views
1

我已經爲我的項目中的所有滾動條創建了自定義滾動條模板(對於WPF 4項目)。我遇到的問題是我已將滾動條縮略圖設置爲矩形對象,現在虛擬化(基於列表框中的記錄數重新調整縮略圖大小)不再有效,並且如果嘗試切割矩形設置一個明確的高度。WPF自定義滾動條切斷拇指

這裏是我用來創建自定義模板的xaml。

<!-- CUSTOM SCROLL BAR ELEMENTS --> 
<Style x:Key="ScrollBarLineButtonStyleUp" TargetType="{x:Type RepeatButton}"> 
    <Setter Property="Focusable" Value="False"/> 
    <Setter Property="Margin" Value="1,0,1,4" /> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type RepeatButton}"> 
       <Grid Margin="1"> 
        <Path Name="UpButton" Fill="{StaticResource ScrollBarGray}" Data="M 0 6 L 12 6 L 6 0 Z"/> 
       </Grid> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsPressed" Value="true"> 
         <Setter TargetName="UpButton" Property="Fill" Value="{StaticResource SelectedGray}" /> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

<Style x:Key="ScrollBarLineButtonStyleDown" TargetType="{x:Type RepeatButton}"> 
    <Setter Property="Focusable" Value="False"/> 
    <Setter Property="Margin" Value="1,4,1,0" /> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type RepeatButton}"> 
       <Grid Margin="1"> 
        <Path Name="UpButton" Fill="{StaticResource ScrollBarGray}" Data="M 0 0 L 6 6 L 12 0 Z"/> 
       </Grid> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsPressed" Value="true"> 
         <Setter TargetName="UpButton" Property="Fill" Value="{StaticResource SelectedGray}" /> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

<Style x:Key="ScrollBarPageButtonStyle" TargetType="{x:Type RepeatButton}"> 
    <Setter Property="IsTabStop" Value="False"/> 
    <Setter Property="Focusable" Value="False"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type RepeatButton}"> 
       <Border Background="Transparent" /> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

<Style x:Key="ScrollBarThumbStyle" TargetType="{x:Type Thumb}"> 
    <Setter Property="IsTabStop" Value="False"/> 
    <Setter Property="Focusable" Value="False"/> 
    <Setter Property="Margin" Value="3,0,4,0" /> 

    <Setter Property="Background" Value="{x:Null}" /> 
    <Setter Property="BorderBrush" Value="{x:Null}" /> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type Thumb}"> 
       <Rectangle Fill="{StaticResource ScrollBarGray}" RadiusX="4" RadiusY="4" Width="8" /> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

<Style x:Key="stuff" TargetType="{x:Type ScrollBar}"> 
    <Setter Property="ViewportSize" Value="10"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type ScrollBar}"> 
       <Grid> 
        <Grid.RowDefinitions> 
         <RowDefinition MaxHeight="14"/> 
         <RowDefinition Height="*"/> 
         <RowDefinition MaxHeight="14"/> 
        </Grid.RowDefinitions> 
        <RepeatButton Grid.Row="0" Style="{StaticResource ScrollBarLineButtonStyleUp}" Command="ScrollBar.LineUpCommand" /> 
        <Track Name="PART_Track" Grid.Row="1" IsDirectionReversed="True" ViewportSize="0"> 
         <Track.DecreaseRepeatButton> 
          <RepeatButton Command="ScrollBar.PageUpCommand" Style="{StaticResource ScrollBarPageButtonStyle}"/> 
         </Track.DecreaseRepeatButton> 
         <Track.Thumb> 
          <Thumb Style="{StaticResource ScrollBarThumbStyle}"/> 
         </Track.Thumb> 
         <Track.IncreaseRepeatButton> 
          <RepeatButton Command="ScrollBar.PageDownCommand" Style="{StaticResource ScrollBarPageButtonStyle}"/> 
         </Track.IncreaseRepeatButton> 
        </Track> 
        <RepeatButton Grid.Row="3" Style="{StaticResource ScrollBarLineButtonStyleDown}" Command="ScrollBar.LineDownCommand"/> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 

</Style> 

我將不勝感激,如果有人可以幫助我恢復我的滾動條拇指的虛擬化

JK

回答