2009-06-03 9 views

Antwort

0

Wenn Sie die Scroll eines Scroll bekommen möchten, können Sie ein ControlTemplate

<ScrollViewer Style="{StaticResource LeftScrollViewer}"/> 


<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> 

     <ScrollContentPresenter Grid.Column="1"/> 

     <ScrollBar Name="PART_VerticalScrollBar" 
     Value="{TemplateBinding VerticalOffset}" 
     Maximum="{TemplateBinding ScrollableHeight}" 
     ViewportSize="{TemplateBinding ViewportHeight}" 
     Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/> 
     <ScrollBar 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> 
+0

Dies ist nicht ganz, was ich suche. Was ich tun muss, ist einen Verweis auf den ScrollContentPresenter eines vorhandenen ScrollViewers zu bekommen. Im Grunde brauche ich die ActualWidth von diesem ScrollContentPresenter bc Ich brauche eine Messung an den inneren Grenzen der ScrollBar. Was ich tun möchte, ist eine Referenz auf den ScrollContentPresenter durch (C#) Code. Vielleicht kann ich das mit dem VisualTreeHelper machen, oder irgendwie finde ich den ScrollContentPresenter durch die Vorlage des ScrollViewers. – BrandonS

0

Anstatt zu versuchen, den Baum von Scroll verwenden zu gehen, vielleicht wollen Sie Bind etwas aus dem Inhalt bis?

Etwas wie:

<Grid Width={Binding Path=ActualWidth RelativeBinding={RelativeBinding FindAncestor, AncestorType={x:Type ScrollContentPresenter}}}> 

Hinweis: Das Syntax nicht zu 100% richtig sein könnte, dann ist es aus der Spitze von meinem Kopf

Verwandte Themen