Question

J'ai créé une application WPF comportant de nombreux boutons.

Le client souhaite maintenant remplacer tous les boutons par des icônes. Par exemple: Tous les boutons OK doivent avoir la même icône, tous les boutons d’annulation, etc.

.

Je souhaite insérer tous les boutons Style = "{StaticResource ButtonStyle_OK}", Style = "{StaticResource ButtonStyle_OK} " etc.

Maintenant, ma question est en général qu'est-ce que je dois placer dans ces styles

<Style x:Key="ButtonStyle_OK" TargetType="Button">
    <!-- What comes here? -->                
</Style>

J'ai peur de changer tous les boutons de mon application en image et d'utiliser l'événement MouseDown pour un clic, est-ce que ce serait stupide?

NOTES: Je veux que les boutons soient une image - pas un bouton qui contient une image (c’est-à-dire que je ne veux pas le cadre du bouton original), qui parle de la forme. Je souhaite que ces boutons / styles soient réutilisables.

Était-ce utile?

La solution

Consultez cet article MSDN sur le style - http: // msdn .microsoft.com / fr-us / library / ms745683.aspx

Je pense que vous pourriez être en mesure de tirer parti de la lecture de la section ControlTemplate.

De même, comme l'a noté Chris, les styles peuvent être insérés dans un dictionnaire de ressources, puis appliqués globalement à tous les boutons en omettant une clé.

UPDATE: vous n’aurez pas besoin d’utiliser image avec un événement click, utiliser le ControlTemplate vous permettra de définir plus précisément l’aspect du bouton.

Autre exemple - http: //mrpmorris.blogspot. com / 2008/04 / wpf-custom-button-templates.html

Autres conseils

mettez-les dans un dictionnaire de ressources, il ne vous reste plus qu'à échanger les dictionnaires pour changer le style et à peu près tout ce qui concerne le côté interface utilisateur des boutons, etc.

Je pense que vous voulez un modèle de contrôle dans les balises, quelque chose comme ceci:

<Setter TargetType="{x:Type Button}">
     <Setter Property="Template">
         <Setter.Value>
             <ControlTemplate TargetType="{x:Type Button}">
             </ControlTemplate>
         </Setter.Value>
     <Setter Property="Template">
</Setter>

vous devriez pouvoir trouver le modèle par défaut en ligne (MSDN) relativement facile. Je vous recommanderais d’utiliser Blend pour ce faire (si vous le pouvez) - cela peut faciliter les choses.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top