2012-07-20 30 views
21

Nel mio progetto c'è uno stile personalizzato per la casella di testo. È definito come:eredita lo stile dallo stile predefinito

<Style TargetType="TextBox"/> 

Quindi viene applicato a tutti i controlli figlio di casella di testo per impostazione predefinita.

Ho bisogno di creare un altro stile basato sullo stile predefinito. Ma come faccio a specificare nell'attributo BasedOn che il mio nuovo stile dovrebbe usare lo stile predefinito?

risposta

43

utilizzare il tipo di controllo che si vorrebbe estendere

BasedOn="{StaticResource {x:Type TextBox}}" 

esempio completa:

<Style x:Key="NamedStyle" TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}"> 
    <Setter property="Opacity" value="0.5" /> 
</Style> 
+0

Non è necessario impostare x: Key se si desidera applicare ulteriori modifiche (opacità nel tuo caso) automaticamente (senza nome dello stile). – honzakuzel1989

+1

@ honzakuzel1989 è vero. Dipende dal caso d'uso se vuoi che la chiave sia impostata. – Aphelion

+0

Che ne dici di in uwp, dove x: il tipo non esiste? – bunkerdive

Problemi correlati