2009-04-09 8 views
5

Je voudrais définir un ControlTemplate lors de l'exécution. Est-ce possible? J'ai remarqué la propriété VisualTree sur la classe ControlTemplate. J'ai également remarqué qu'il utilise la classe FrameworkElementFactory. Cependant, je n'arrive pas à le faire fonctionner.Définir un WPT ControlTemplate à l'exécution

Est-il possible de créer un ControlTemplate lors de l'exécution?

Répondre

8

Oui, vous pouvez le faire en utilisant FrameworkElementFactory. Charles Petzold en fait une présentation dans le chapitre 11 de "Applications = Code + Markup", mais l'idée de base est que vous créez une FrameworkElementFactory pour l'élément racine template (et d'autres usines pour les éléments enfants), créez un ControlTemplate et définissez la propriété VisualTree du ControlTemplate à la 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 classe de contrôle WPF possède une propriété 'Modèle' à laquelle vous pouvez définir une heure d'exécution.

Questions connexes