2013-02-27 17 views
7

w WPF, można utworzyć Style który działa jako domyślny dla typu kontroli w XAML:Znalezienie domyślny styl dla typu w kodzie za

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

Potem, kiedy WPF przechodzi do wyświetlania tej kontroli, wygląda na to, że Style pochodzi z zasobów opartych na jego typie.

Chcę zrobić odpowiednik tego w kodzie programowym mojego programu. Jak znaleźć ten Style?

Odpowiedz

17

Można wyszukiwać stylu w zasobach na poziomie aplikacji przy użyciu typ sterowania jako klucz:

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

W przypadku kogoś ziemie tutaj szuka rozwiązania dla Universal Windows Projekty (UWP), nr TryFindResource istnieje, więc powyższe jest, jak musisz to zrobić.

Powiązane problemy