如何设置ScrollViewer在wp7中的某个点滚动?

时间:2011-08-03 14:44:46

标签: windows-phone-7 scroll scrollview

我有一个大帆布。在casvas中,我在drage事件后面的代码中添加了textblock。每次添加文本块时,Scrollviewer都会设置/显示第一个textbloc。因此,我必须手动向上滚动到最后一个文本块。因此,我希望在添加新文本块后,在画布的最后一个元素上设置Scrollviewer。 XAML: -

  <ScrollViewer x:Name="sv" HorizontalScrollBarVisibility="Auto" Margin="6,6,-835,66"> 
            <Canvas x:Name="canvas" Height="450" Width="12000" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto"> 
            </Canvas> 
        </ScrollViewer> 

C#背后的代码: -

     private void OnDragDelta(object sender, DragDeltaGestureEventArgs e) 
    { 

        if (tb_conter > 24) 
            return; 

        TextBlock[] tb = new TextBlock[elemet]; 
        for (int i = 0; i < elemet; i++) 
            tb[i] = new TextBlock(); 


        currentPoint = e.GetPosition(this.ContentPanel); 

        double x = currentPoint.X - oldPoint.X; 

        if (x >= 100) 
        { 

            tb[tb_conter].SetValue(Canvas.LeftProperty, tb_canvasLeft); 
            tb[tb_conter].SetValue(Canvas.TopProperty, tb_canvasTop); 

            tb[tb_conter].Text = time_scale.ToString(); 
            canvas.Children.Add(tb[tb_conter]); 

            time_scale++; 
            tb_conter++; 
            tb_canvasLeft += tb_canvasTop; 

        } 
        else 
            Debug.WriteLine(x.ToString()); 
    } 

1 个答案:

答案 0 :(得分:0)

您需要ScrollViewer.ScrollToVerticalOffset方法。

最好还是在视图模型中将项添加到ObservableCollection<string>并将其绑定到页面上的ListBox。