2009-04-09 7 views
5

Я хотел бы определить ControlTemplate во время выполнения. Это возможно? Я заметил свойство VisualTree в классе ControlTemplate. Я также заметил, что он использует класс FrameworkElementFactory. Однако я не могу заставить его работать.Определить WPF ControlTemplate во время выполнения

Возможно ли создать контрольную таблицу во время выполнения?

ответ

8

Да, вы можете сделать это с помощью FrameworkElementFactory. Чарльз Петцольд имеет пошаговое руководство в главе 11 «Приложения = код + разметка», но основная идея заключается в том, что вы создаете FrameworkElementFactory для корневого элемента шаблона (и других фабрик для любых дочерних элементов), создаете ControlTemplate и устанавливаете свойство VisualTree элемента ControlTemplate для FrameworkElementFactory:

FrameworkElementFactory borderFactory = new FrameworkElementFactory(typeof(Border)); 
// set properties and create children of borderFactory 
ControlTemplate template = new ControlTemplate(); 
template.VisualTree = borderFactory; 

myButtonInstance.Template = template; 
-1

Класс управления WPF имеет свойство «Шаблон», которое вы можете установить во время выполнения.

Смежные вопросы