操作模板控件
在做WPF開發的時候,我們通常因為滿足不同的需求會開發一些自定義控件來滿足需要,我們會自定義模板來定義控件的外觀,添加命令和路由事件來給控件添加行為,那如何在模板中查找元素並關聯事件處理程序或添加數據綁定表達式呢,WPF有一個專用的OnApplyTemplate()方法,在該方法中,可以使用GetTemplateChild或FindName來查找所需的元素。
添加部件名稱
為了查找做需要的元素,WPF控件通過名稱定為他們需要的元素,所以,元素的名稱變成了自定義控件公有接口的一部分,並且需要恰當的描述性名稱。為此。WPF給出了約定:這些名稱以PART_開頭,后跟元素名稱。元素名稱的首字母要大寫,就像一個屬性名稱:比如PART_Slider。
<Slider Name="PART_Slider" Minimum="0" Minimum="255" Margin="{TemplateBinding padding}"></Slider>
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
RangeBase sliderRed = GetTemplateChild("PART_Slider") as RangeBase;
if (sliderRed != null)
{
Binding binding = new Binding("Red");
binding.Source = this;
binding.Mode = BindingMode.TwoWay;
sliderRed.SetBinding(RangeBase.ValueProperty, binding);
}
..............
}
