2010-12-22 13 views
6

Ho un semplice textBox nel mio progetto.Come posso "ripristinare" la proprietà di un controllo sul suo valore di stile originale (come Sfondo)

ho fatto questo stile (a fini di esempio):

<Style x:Key="{x:Type TextBox}" TargetType="{x:Type TextBox}"> 
    <Style.Setters> 
     <Setter Property="Background" Value="LightGray"/> 
    </Style.Setters> 
</Style> 

poi a un certo punto, sto facendo: MyTextBox.Background = Brushes.Red nel mio code-behind.

fino a lì, tutto funziona bene.

ora mi piacerebbe essere in grado di ripristinare il colore di sfondo originale, ma senza hardcoding.

I .: E so che posso fare MyTextBox.Background = Brushes.LightGray, ma sto cercando un modo generico che mi consenta di ripristinare la proprietà di sfondo dello stile originale, senza saperlo.

Ho provato a impostarlo su null, ma ovviamente mi dà uno sfondo trasparente, che non è quello che voglio.

è possibile? e se sì, come posso ottenere questo?

grazie

risposta

13
MyTextBox.ClearValue(TextBox.BackgroundProperty); 
+0

si da uomo! grazie mille :) – David

+0

Questo ha funzionato bene per me, tranne che ho cancellato l'intera StyleProperty. Vale anche la pena notare che se si imposta il controllo su disabilitato, gli stili non funzioneranno come previsto. – Kosko

Problemi correlati