의 엄지 손가락을 가져 오기 :과 같이 뭔가를 그냥 WPF에서 슬라이더의 엄지 손가락을 얻을 수있는 방법을 알아 내려고 노력하고 있어요 슬라이더
Slider mySlider = new Slider();
Thumb thumb = slider.Thumb;
을 지금 내가이 한 간단하게 가능하지 알고 ; 하지만이 문제를 해결해야합니다. 네가 알면 나 한테 알려줘.
감사합니다.
의 엄지 손가락을 가져 오기 :과 같이 뭔가를 그냥 WPF에서 슬라이더의 엄지 손가락을 얻을 수있는 방법을 알아 내려고 노력하고 있어요 슬라이더
Slider mySlider = new Slider();
Thumb thumb = slider.Thumb;
을 지금 내가이 한 간단하게 가능하지 알고 ; 하지만이 문제를 해결해야합니다. 네가 알면 나 한테 알려줘.
감사합니다.
Slider
이 템플릿의 일부 유형 Track
의 PART_Track
라고해야 선언하는 TemplatePartAttribute
있습니다. 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
템플릿이 슬라이더에 대해 null 인 경우의 해결책은 무엇입니까? – deathrace