2009-04-09 20 views
5

Me gustaría definir un ControlTemplate en tiempo de ejecución. es posible? Me di cuenta de la propiedad VisualTree en la clase ControlTemplate. También noté que usa la clase FrameworkElementFactory. Sin embargo, parece que no puedo hacer que funcione.Definir un WPF ControlTemplate en tiempo de ejecución

¿Es posible crear un ControlTemplate en tiempo de ejecución?

Respuesta

8

Sí, puede hacerlo utilizando FrameworkElementFactory. Charles Petzold tiene un tutorial de esto en el capítulo 11 de "Aplicaciones = Código + Marcado", pero la idea básica es que cree una FrameworkElementFactory para el elemento raíz de plantilla (y otras fábricas para cualquier elemento secundario), cree un ControlTemplate y establezca la propiedad VisualTree de ControlTemplate a 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

La clase de control WPF tiene una propiedad 'Plantilla' a la que puede establecer un tiempo de ejecución.

Cuestiones relacionadas