操作模板控件
在做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); }
.............. }