我只是試圖找出一種方式來獲得在WPF中的滑塊的拇指拇指,像這樣:獲取的滑塊
Slider mySlider = new Slider();
Thumb thumb = slider.Thumb;
現在我知道這是不可能的,因爲這樣簡單;但是必須有一個解決這個問題的方法。如果你知道的話,讓我知道。
謝謝!
我只是試圖找出一種方式來獲得在WPF中的滑塊的拇指拇指,像這樣:獲取的滑塊
Slider mySlider = new Slider();
Thumb thumb = slider.Thumb;
現在我知道這是不可能的,因爲這樣簡單;但是必須有一個解決這個問題的方法。如果你知道的話,讓我知道。
謝謝!
Slider
有TemplatePartAttribute
聲明它應該有一個模板部分稱爲Track
型PART_Track
。 Track
可以給我們參考Thumb
。請記住,可以給Slider
一個沒有Track
的模板,在這種情況下不會有Thumb
。
private static Thumb GetThumb(Slider slider)
{
var track = slider.Template.FindName("PART_Track", slider) as Track;
return track == null ? null : track.Thumb;
}
找到了解決方案,我自己從VisualTreeHelper
的一點幫助。任何優化極大的讚賞:
private Thumb Thumb
{
get
{
return GetThumb(this /* the slider */) as Thumb;;
}
}
private DependencyObject GetThumb(DependencyObject root)
{
if (root is Thumb)
return root;
DependencyObject thumb = null;
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(root); i++)
{
thumb = GetThumb(VisualTreeHelper.GetChild(root, i));
if (thumb is Thumb)
return thumb;
}
return thumb;
}
在我的情況下,slider.Template == null,現在該怎麼辦? – Cuero 2012-09-21 00:44:11
模板滑塊爲空時的任何解決方案? – deathrace 2013-05-15 04:21:44