2013-02-27 18 views
7

In WPF, è possibile creare un Style che agisce come predefinita per un tipo di controllo in XAML:Trovare lo stile predefinito per un tipo in codice dietro

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

Poi, quando WPF va a visualizzare che il controllo, guarda su quello Style dalle risorse basate sul suo tipo.

Voglio fare l'equivalente di questo nel code-behind del mio programma. Come trovo che Style?

risposta

17

È possibile cercare lo stile delle risorse a livello di applicazione utilizzando il tipo di controllo come la chiave:

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; 
} 

Nel caso in cui qualcuno terre qui in cerca di una soluzione per l'Universal Windows Projects (UWP), no TryFindResource esiste quindi quanto sopra è come devi farlo.

Problemi correlati