12

在 WPF 中,您可以创建一个Style作为 XAML 中控件类型的默认值的:

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

Style然后,当 WPF 显示该控件时,它会根据其类型从资源中查找该控件。

我想在我的程序的代码隐藏中做同样的事情。我怎么找到那个Style

4

2 回答 2

29

您可以使用控件类型作为关键字在Application级资源中搜索样式:

Style defaultStyle = Application.Current.TryFindResource(typeof(MyControl)) as Style;
于 2013-02-27T22:33:44.363 回答
4

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

万一有人在这里寻找通用 Windows 项目 (UWP) 的解决方案,则不TryFindResource存在,因此以上是您必须这样做的方法。

于 2016-01-07T18:00:38.057 回答