我重写了ResourceDictionary中控件的模板Generic.xaml
。在那我添加了一个我想添加一些事件的按钮。GetTemplateChild .Net 3.5中已废弃,FrameWorkTemplate.FindName和ControlTemplate.FindName之间的区别是什么
<Setter Property="Template">
<Setter.Value>
--Added my button here.
</Setter.Value>
</Setter>
所以在控制的Loaded事件我做
Button b = (Button)mycontrol.Template.FindName("PARTName", mycontrol)
//Add Events on my button
在互联网上我看到,我可以做
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
UIElement editingelement = GetTemplateChild("PART_EditingElement");
if (editingelement != null)
{
// do something
}
}
当我试图做的这条建议GetTemplateChild
说难道不是一些地方使用。
所以我的问题是
为什么不使用
GetTemplateChild
。它过时了吗?并且FrameWorkTemplate.FindName
和ControlTemplate.FindName
有什么区别?
回答你的问题。 'ControlTemplate'继承'FrameworkTemplate',所以差异没有任何问题。看[这里](http://msdn.microsoft.com/en-us/library/system.windows.controls.controltemplate.aspx) – 2013-05-03 06:07:15
[原因在这里](http://msdn.microsoft.com/en -us /库/ system.windows.frameworkelement.gettemplatechild.aspx) – noobob 2013-05-03 06:09:06