Domanda

Ho creato un'applicazione WPF che ha molti pulsanti.

Ora il cliente vuole cambiare tutti i pulsanti in icone. Per esempio: Tutti i pulsanti OK devono avere la stessa icona, tutti i pulsanti Annulla e così via.

Voglio inserire tutti i pulsanti Style = " {StaticResource ButtonStyle_OK} " ;, Style = " {StaticResource ButtonStyle_OK} " ecc.

Ora la mia domanda è in generale cosa devo collocare in questi stili

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

Ho paura di cambiare tutti i pulsanti della mia applicazione in Immagine e utilizzare l'evento MouseDown per fare clic, sarebbe stupido?

NOTE: Voglio che i pulsanti siano un'immagine, non un pulsante che contenga un'immagine (cioè non voglio la cornice del pulsante originale), parlando della forma. Voglio che questi pulsanti / stili siano riutilizzabili.

È stato utile?

Soluzione

Dai un'occhiata a questo articolo MSDN sullo styling - http: // msdn .microsoft.com / en-us / library / ms745683.aspx

Penso che potresti essere in grado di ottenere una certa trazione leggendo la sezione ControlTemplate.

Inoltre, come notato da Chris, gli stili possono andare in un dizionario di risorse e quindi possono essere applicati a livello globale su tutti i pulsanti omettendo una chiave.

AGGIORNAMENTO: non sarà necessario usare l'immagine con l'evento click, usando ControlTemplate ti permetterà di definire più precisamente l'aspetto del pulsante.

Un altro esempio: http: //mrpmorris.blogspot. com / 2008/04 / WPF-custom-button-templates.html

Altri suggerimenti

inseriscili in un dizionario di risorse, quindi tutto ciò che devi fare è sostituire i dizionari per cambiare lo stile e praticamente qualsiasi cosa abbia a che fare con il lato dell'interfaccia utente dei pulsanti, ecc.

Sto pensando che desideri un modello di controllo nei tag, qualcosa del genere:

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

dovresti riuscire a trovare il modello predefinito online (MSDN) relativamente semplice. Consiglierei di usare Blend per farlo (se puoi) - può rendere le cose più facili.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top