我重寫了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