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