C# 如何在silverlight中获取默认滚动条的子元素(例如repeatbutton、thumb等)?

C# 如何在silverlight中获取默认滚动条的子元素(例如repeatbutton、thumb等)?,c#,silverlight,C#,Silverlight,我有一个listbox,它绑定了一些集合&一旦内容大小增加,listbox就会显示垂直滚动ViewerDefault。我从这个scrollviewer获得了scrollbar作为子元素。但是,当我试图从滚动条中获取子元素(例如repeatbutton、thumb)时,我得到的子元素为null。我从silverlight spy那里得到了控制等级。我想从垂直滚动条获取repeatbutton这不是自定义滚动条。例如。 代码: 任何方法都会被接受。我用如下方法解决了这个问题: var objVRep

我有一个listbox,它绑定了一些集合&一旦内容大小增加,listbox就会显示垂直滚动ViewerDefault。我从这个scrollviewer获得了scrollbar作为子元素。但是,当我试图从滚动条中获取子元素(例如repeatbutton、thumb)时,我得到的子元素为null。我从silverlight spy那里得到了控制等级。我想从垂直滚动条获取repeatbutton这不是自定义滚动条。例如。 代码:


任何方法都会被接受。

我用如下方法解决了这个问题:

var objVRepeatBtn = ((FrameworkElement)VisualTreeHelper.GetChild(objvScrollBar, 0)).FindName("VerticalSmallIncrease") as System.Windows.Controls.Primitives.RepeatButton;
private RepeatButton rb = null;
private RepeatButton rb1 = null;
private Thumb thumb = null;

public ThumbnailUserControl()
{
  InitializeComponent();
  //sv1 repensented as ScrollViewer's object
  this.sv1.Loaded += new RoutedEventHandler(sv1_Loaded);
}

void sv1_Loaded(object sender, RoutedEventArgs e)
{
        FrameworkElement fe = VisualTreeHelper.GetChild(this.sv1, 0) as FrameworkElement;
        if (fe == null)
            return;
        var sb = fe.FindName("VerticalScrollBar") as ScrollBar;
        if (sb != null)
        {                
            thumb = (Thumb)((FrameworkElement)VisualTreeHelper.GetChild(sb, 0)).FindName("VerticalThumb");
            rb1 = (RepeatButton)((FrameworkElement)VisualTreeHelper.GetChild(sb, 0)).FindName("VerticalLargeDecrease");
            rb = (RepeatButton)((FrameworkElement)VisualTreeHelper.GetChild(sb, 0)).FindName("VerticalSmallIncrease");
            rb.Click += new RoutedEventHandler(rb_Click);
            thumb.DragCompleted += new DragCompletedEventHandler(thumb_DragCompleted);
            thumb.MouseWheel += new MouseWheelEventHandler(thumb_MouseWheel);
        }            
}