Bouton personnalisé modèle dans WPF
Je veux créer un bouton simple modèle avec une image et du texte à l'intérieur d'elle. Mais je veux garder le Système du bouton de regarder et se sentir.
Comment puis-je créer, étape par étape?
P. S.: j'ai déjà essayé avec CustomControl
en WPF et BasedOn
propriété.
OriginalL'auteur Archie | 2010-04-29
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire facilement avec un style et une propriété attachée:
et
Puis dans le balisage:
Cet exemple semble assez hideux, mais vous pouvez facilement changer la
StackPanel
à unGrid
ou quelque chose de similaire pour contraindre l'image de la proportion. À l'aide de laContentPresenter
permet de préserver le comportement d'un bouton vous permettant de mettre n'importe quelUIElement
à l'intérieur, et la conservation de soutien au Commandement, etc.Vous ne devriez pas avoir besoin d'utiliser un modèle de contrôle. J'ai fait tout ça à l'aide de la norme WPF Bouton de classe.
Que c'est bon!! En se liant à l'encontre des propriétés attachées modèles peuvent être personnalisés de façon dynamique. Merci beaucoup!
Pardon pour mon nievity (je suis novice en C#) mais pour ce qui est de la ButtonProperties son propre fichier? Et avez-vous besoin pour y faire référence dans les autres fichiers? Je reçois
"The attachable property "Image" was not found in the type 'ButtonProperties'.
Le ButtonProperties classe peut être son propre fichier, ou vous pouvez avoir une seule classe qui définit un bon nombre de différentes propriétés attachées - il n'a pas vraiment d'importance, mais ce que vous avez besoin (et j'ai mis à jour la réponse à indiquer) est à inclure l'espace de noms pour les propriétés attachées dans le code XAML. Ce sera généralement sous la forme
xmlns:ap="clr-namespace:MyProject.Path.To.AttachedProperties.Namesapce"
oùap
devient le préfixe que vous utiliser pour faire référence à des choses de cet espace de noms.OriginalL'auteur jeffora
J'ai enfin créé un Bouton avec image + texte à l'intérieur:
Ci-dessous le Code Complet:
Étape 1 : Créez un nouveau Contrôle Utilisateur appelé:ImageButtonUC
Étape 2: Modifier ImageButtonUC.xaml.cs
Étape 3: Dans votre xaml, vous pouvez l'utiliser de cette façon:
Ajouter l'espace de noms
Et l'utiliser comme:
Note: Mon Image se trouve dans le dossier de Ressources ici
Référence:
http://blogs.msdn.com/knom/archive/2007/10/31/wpf-control-development-3-ways-to-build-an-imagebutton.aspx
OriginalL'auteur Archie
Si vous ne voulez pas écrire n'importe quel code-derrière, il y a une autre manière de faire (inspiré par jeffora de réponse). Vous pouvez utiliser le Contenu du contrôle de champ pour mettre l'URI de l'image que vous voulez voir dans votre bouton:
Et vous pouvez ensuite modifier la valeur par défaut Touche de Style à ressembler à ceci:
La magie est dans le " Source=(Liaison ...}. Il a bien fonctionné pour moi d'avoir l'info-bulle, il y à des fins de débogage manquant/images -- mais peut facilement être retiré.
OriginalL'auteur dogracer
Voici ma Solution!
Résultat est ci-dessous:
OriginalL'auteur Dave NP
Une autre réponse - l'amélioration de la sur u/dogracer et u/Dave NP:
OriginalL'auteur Declan Taylor