2011-08-03 42 views
2

我有一个大帆布。在casvas中,我在代码背后的drage事件中添加了textblock。每次添加文本块时,滚动查看器都会设置/显示第一个textbloc。因此我必须手动向上滚动到上一个文本块。所以我想添加一个新的文本块后,在画布的最后一个元素上设置滚动查看器。 XAML: -如何在wp7中的某个位置设置ScrollViewer的滚动条?

<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()); 
    } 

回答

0

您希望ScrollViewer.ScrollToVerticalOffset方法。

更好的做法是将项目添加到视图模型中的ObservableCollection<string>并将其绑定到页面上的ListBox。

相关问题