2013-02-27 13 views
7

In WPF können Sie eine Style erstellen, die für eine Steuerart in XAML als Standard fungiert:Finden der Standardstil für einen Typ im Code hinter

<Style TargetType="{x:Type local:MyControl}"> 
    . . . 
</Style> 

Dann, wenn WPF geht, dass die Kontrolle angezeigt werden, es sieht Style aus den Ressourcen basierend auf seinem Typ nach.

Ich möchte das Äquivalent dazu im Code-Behind meines Programms tun. Wie finde ich das Style?

Antwort

17

Sie können mit dem Steuerelementtyp als Schlüssel in der Anwendungsebene Ressourcen für den Stil suchen:

Style defaultStyle = Application.Current.TryFindResource(typeof(MyControl)) as Style; 
2

object globalStyleDefinedByApp; 
Style globalStyle = new Style(typeof(TargetType)); 
if (Application.Current.Resources.TryGetValue(typeof(TargetType), out globalStyleDefinedByApp)) 
{ 
    globalStyle = globalStyleDefinedByApp as Style ?? globalStyle; 
} 

Falls jemand hier landet für Universal nach einer Lösung gesucht Windows Projects (UWP), keine TryFindResource existiert so das oben ist, wie Sie es tun müssen.

Verwandte Themen