Finding the default style for a type in code behind

倖福魔咒の 提交于 2019-12-18 20:09:23

问题


In WPF, you can create a Style that acts as the default for a control type in XAML:

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

Then, when WPF goes to display that control, it looks up that Style from the resources based on the its type.

I want to do the equivalent of this in the code-behind of my program. How do I find that Style?


回答1:


You can search for the style in the Application-level resources by using the control type as the key:

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

In case somebody lands here looking for a solution for Universal Windows Projects (UWP), no TryFindResource exists so the above is how you have to do it.



来源:https://stackoverflow.com/questions/15123714/finding-the-default-style-for-a-type-in-code-behind

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!