2009-11-19 2 views

답변

6

는 여기에 바보 예입니다 - ScrollViewer으로

<Grid x:Name="LayoutRoot" Background="White"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="100" /> 
     <ColumnDefinition Width="100" /> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="60" /> 
    </Grid.RowDefinitions> 
    <ScrollViewer x:Name="ScrollSource"> 
     <StackPanel> 
      <TextBlock>Hello</TextBlock> 
      <TextBlock>World</TextBlock> 
      <TextBlock>Yasso</TextBlock> 
      <TextBlock>Kosmos</TextBlock> 
     </StackPanel> 
    </ScrollViewer> 
    <TextBox Grid.Column="1" Text="{Binding VerticalOffset, ElementName=ScrollSource}" /> 

</Grid> 

새로운 가치 좋습니다 TextBox의 Text 속성을 스크롤합니다.

+0

팁 주셔서 감사합니다! ScrollChanged 이벤트를 구독하는 WPF 대신 scrollviewer의 VerticalOffset에 사용자 지정 종속성 속성을 바인딩하고 종속성 속성에 대한 콜백을 사용하여 코드에서 변경된 값을 사용하여 작업을 수행 할 수 있습니다. 적어도 작동 : p – eriksmith200

+1

http://www.wintellect.com/CS/blogs/jlikness/archive/2010/05/18/making-the-scrollviewer-talk-in-silverlight-4.aspx –

3

는 실버 포럼에 특색 쉬운 해결 방법이 있습니다 : 여기

protected override Size ArrangeOverride(Size finalSize) 
{  
    // Assumes you only have one scrollviewer (e.g. fullscreen ScrollViewer) 
    var scrollbar = LayoutRoot.GetVisualDescendants() 
     .OfType<ScrollBar>() 
     .FirstOrDefault(); 

    if (scrollbar != null) 
     scrollbar.Scroll += ScrollBarScroll; 

    return base.ArrangeOverride(finalSize); 
} 

private void ScrollBarScroll(object sender, ScrollEventArgs e) 
{ 

} 
관련 문제