Qual è il modo migliore per creare pulsanti della barra degli strumenti con immagini separate attive / disabilitate in WPF?

StackOverflow https://stackoverflow.com/questions/630152

  •  08-07-2019
  •  | 
  •  

Domanda

Sto lavorando sulla barra degli strumenti per un'applicazione WPF. Il set di icone che stiamo utilizzando ha icone separate per gli stati normali, al passaggio del mouse e disabilitati, e vorrei usarli. Mi chiedevo quale fosse la soluzione più semplice / il modo normale di farlo?

Il mio primo pensiero è stato quello di creare un controllo utente " ImageButton " con proprietà NormalImage, ActiveImage, DisabledImage, che conteneva i trigger necessari per IsMouseOver e IsEnabled. Funziona, ma sfortunatamente fa perdere ai pulsanti lo stile dei pulsanti della barra degli strumenti, ovvero ottengono i bordi dei pulsanti standard, nessuno sfondo blu al passaggio del mouse e sono spaziati troppo vicini. A quanto ho capito, questo è perché il controllo della barra degli strumenti di WPF sovrascrive lo stile per gli elementi Button figlio e non riesce a ridisegnare i miei pulsanti perché si trovano all'interno di un ImageButton principale.

Qualcuno ha qualche suggerimento per farlo funzionare? Sono abbastanza nuovo in WPF, quindi potrebbe essere che mi sto avvicinando a questo in modo arretrato.

È stato utile?

Soluzione

Puoi basare lo stile del tuo Button sullo Style prodotto da ToolBar.ButtonStyleKey . Ad esempio:

<Style TargetType="Button" BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}">
    <Setter Property="MinHeight" Value="40"/>
</Style>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top