Я переопределял шаблон элемента управления в ResourceDictionary Generic.xaml
. В этом я добавил кнопку, на которой я хотел добавить некоторые события.Is 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
говорит Do Not Используйте.
Так что мой вопрос
Почему бы не использовать
GetTemplateChild
. Это устарело? ИВ чем разница между
FrameWorkTemplate.FindName
иControlTemplate.FindName
?
Чтобы ответить на ваш вопрос 2.. 'ControlTemplate' наследует' FrameworkTemplate', поэтому разница не имеет ничего общего. Посмотрите [здесь] (http://msdn.microsoft.com/en-us/library/system.windows.controls.controltemplate.aspx) –
[Причина найдена здесь] (http://msdn.microsoft.com/ru -us/библиотека/system.windows.frameworkelement.gettemplatechild.aspx) – noobob