2013-09-08 17 views
5

Desidero assegnare a un pulsante uno stile piatto a livello di codice quando si verificano determinate condizioni.Impostazione del pulsante stile piano a livello di programmazione

This question mostra come posso impostare uno stile su un controllo a livello di programmazione, avendo già definito in XAML.

This question indica che esiste già uno stile di pulsante piatto, quindi non è necessario crearne uno in XAML.

ToolBar.ButtonStyleKey restituisce un ResourceKey e lo stile corrispondente non è definito nella mia finestra (è in ToolBar). Come lo uso in codice per impostare lo stile a livello di programmazione?

risposta

12

In alternativa, si può provare questo:

XAML

<Button Name="FlatButton" Width="100" Height="30" Content="Test" /> 

Code behind

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    FlatButton.Style = (Style)FindResource(ToolBar.ButtonStyleKey); 
} 
8

Questa è una soluzione che funziona. Aggiungere uno stile basato su ToolBar.ButtonStyleKey a Window.Resources come segue:

<Window.Resources> 
    <Style x:Key="MyStyle" BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" TargetType="Button" /> 
</Window.Resources> 

Poi, nel codice, fare riferimento ad esso come da primo anello di questa domanda:

button.Style = this.Resources["MyStyle"] as Style; 

Preferirei avere un code- solo soluzione (no XAML) per questo, ma funziona altrettanto bene.

Problemi correlati