2013-09-08 19 views
5

Ich möchte eine Schaltfläche einen flachen Stil programmgesteuert geben, wenn bestimmte Bedingungen auftreten.Festlegen von Flat Button-Stil programmgesteuert

This question zeigt, wie ich einen Stil zu einem Steuerelement programmgesteuert festlegen kann, bereits in XAML definiert.

This question zeigt, dass bereits ein flacher Button-Stil existiert, daher ist es nicht notwendig, einen in XAML zu erstellen.

ToolBar.ButtonStyleKey gibt eine ResourceKey zurück, und der entsprechende Stil ist nicht in meinem Fenster definiert (es ist in ToolBar). Wie verwende ich es in Code, um den Stil programmgesteuert festzulegen?

Antwort

12

Als Alternative können Sie versuchen, diese:

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

Dies ist eine Problemumgehung, die funktioniert. Fügen Sie einen Stil basierend auf ToolBar.ButtonStyleKey zu Window.Resources wie folgt:

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

Dann im Code, bezeichnet es als pro erstem Glied in dieser Frage:

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

Ich würde es vorziehen, eine Code- haben einzige Lösung (kein XAML) dafür, aber das funktioniert genauso gut.

Verwandte Themen