【发布时间】:2015-04-09 22:43:11
【问题描述】:
我正在我的 Windows Phone 8.1 应用程序中动态添加一些控件。在XAML中,你可以为当前主题的样式设置各种样式,就像我在下面的例子中设置这个TextBlock控件的foreground属性一样。
<TextBlock Text="Hello World" Foreground="{ThemeResource PhoneAccentBrush}" />
我希望能够在后面的代码中做同样的事情,但还不能确定如何做到这一点。我以编程方式创建 TextBlock,如下所示。
TextBlock textBlock = new TextBlock() {
Text = "Hello World",
Foreground = // Need to get phone accent brush from theme
};
我见过不同主题值存储如下的示例,但是当我检查主题资源时,此字典似乎不包含任何键。
SolidColorBrush phoneAccent = new SolidColorBrush((Color)Application.Current.Resources["PhoneAccentColor"]);
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
在运行时更改主题时,Rob 的答案是否有效?
-
是的,当主题在运行时发生变化时它确实有效。
-
感谢@tribute2ro,这是一件有趣的事情。我主要使用 Windows 应用程序,因此如果代码中的一次性画笔分配与 XAML 中的 ThemeResource 绑定相同,那么 Win 8.1 和 WP 8.1 之间的主题处理肯定存在显着差异。
标签: c# xaml windows-phone-8.1