2009-06-03 14 views

答えて

0

あなたが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

オフだこれは私が探しているかなりものではありません。私がする必要があるのは、既存のScrollViewerのScrollContentPresenterへの参照を取得することです。基本的には、このScrollContentPresenterのActualWidthを取得する必要があります。bc ScrollBarの内側の範囲に測定が必要です。私がしたいのは、(C#)コードを介してScrollContentPresenterへの参照を取得することです。たぶん私はVisualTreeHelperでこれを行うことができる、または何とかScrollViewerのテンプレートを介してScrollContentPresenterを見つける。 – BrandonS

0

代わりのScrollViewerのから木を下るしようとしているを使用することができますScrollViewerののScrollContentPresenterに取得したい場合は、多分あなたがしたいですコンテンツまでバインドしますか?

ような何か:

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

を注意:この構文は、100%の権利ではないかもしれない、それは私の頭の上

関連する問題