问题
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