Créer ControlTemplate par programmation dans WPF
Comment puis-je définir par programmation d'un bouton modèle?
Polygon buttonPolygon = new Polygon();
buttonPolygon.Points = buttonPointCollection;
buttonPolygon.Stroke = Brushes.Yellow;
buttonPolygon.StrokeThickness = 2;
//create ControlTemplate based on polygon
ControlTemplate template = new ControlTemplate();
template.Childeren.Add(buttonPolygon); //This does not work! What's the right way?
//create button based on controltemplate
Button button = new Button();
button.Template = template;
J'ai donc besoin d'un moyen de régler mon Polygone que le bouton du modèle. Des Suggestions?
Grâce.
OriginalL'auteur Thomas Stock | 2010-03-28
Vous devez vous connecter pour publier un commentaire.
Officiellement, vous devez créer le code XAML pour la nouvelle ControlTemplate comme une chaîne de caractères, puis se matérialiser comme un ControlTemplate objet à l'aide de XamlReader.Parse.
Une manière plus structurée pour ce faire est d'utiliser le FrameworkElementFactory classe -- créer un FrameworkElementFactory et définir ControlTemplate.VisualTree à celle de la FAE. Cela vous donne le meilleur type de sécurité et évite les clunkiness d'écrire un arbre d'objets juste pour lire à nouveau. Cependant, il est officiellement obsolète et peut obtenir assez compliqué si vous avez un complexe modèle.
Voir Comment configurer un WPF datatemplate dans le code pour un treeview? pour des exemples de ces deux approches-ils sont écrits dans le contexte d'un DataTemplate, mais les travaux pour un ControlTemplate.
OriginalL'auteur itowlson