Bien sûr - ici est le modèle par défaut pour ScrollViewer
modifié pour transposer la ligne de la grille 0 et grille la ligne 1, qui met la barre de défilement horizontale en haut:
<ControlTemplate x:Key="ScrollViewerHorizontalOnTopTemplate" TargetType="{x:Type ScrollViewer}">
<Grid x:Name="Grid" Background="{TemplateBinding Background}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" MinHeight="17"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Rectangle x:Name="Corner"
Fill="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
Grid.Column="1" Grid.Row="0"/>
<ScrollContentPresenter x:Name="PART_ScrollContentPresenter" Margin="{TemplateBinding Padding}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" Grid.Column="0" Grid.Row="1" CanContentScroll="{TemplateBinding CanContentScroll}" CanHorizontallyScroll="False" CanVerticallyScroll="False"/>
<ScrollBar x:Name="PART_VerticalScrollBar"
Cursor="Arrow"
Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
Grid.Column="1" Grid.Row="1"
AutomationProperties.AutomationId="VerticalScrollBar"
Maximum="{TemplateBinding ScrollableHeight}"
Minimum="0"
Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
ViewportSize="{TemplateBinding ViewportHeight}"/>
<ScrollBar x:Name="PART_HorizontalScrollBar"
Cursor="Arrow"
Grid.Column="0"
AutomationProperties.AutomationId="HorizontalScrollBar"
Maximum="{TemplateBinding ScrollableWidth}"
Minimum="0"
Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
Orientation="Horizontal"
ViewportSize="{TemplateBinding ViewportWidth}"/>
</Grid>
</ControlTemplate>
Appliquer ce modèle à votre ScrollViewer
et vous devrait être tout ensemble. Expression Blend rend les tâches de ce type triviales - je le recommande.
Cela fonctionne! Cela a vraiment aidé! Cependant, "x: key" dans votre XAML m'a donné une erreur, donc je l'ai simplement enlevé et ça a marché! Merci beaucoup, Jay! EDIT: Voici un +1 pour vous! –
@ xplinux557 le 'x: Key' est utilisé si vous stockez le modèle en tant que ressource et ne voulez pas qu'il s'applique à tous les objets' ScrollViewer' dans la portée de la ressource. – Jay