【发布时间】:2015-08-18 11:42:52
【问题描述】:
我正在尝试在运行时动态更改我的应用程序的资源字典定义。
我这样做是因为我想根据视口大小为我的应用程序设置不同的字体大小、缩放等。
我目前有以下代码,每次视口大小更改时都会执行:
string stylesPath;
if (args.Type == "small")
{
stylesPath = "ms-appx:///Styles/small.xaml";
}
else
{
stylesPath = "ms-appx:///Styles/standard.xaml";
}
var resourceDictionary = new ResourceDictionary
{
Source = new Uri(stylesPath, UriKind.RelativeOrAbsolute)
};
Application.Current.Resources.MergedDictionaries.Clear();
Application.Current.Resources.MergedDictionaries.Add(resourceDictionary);
这适用于初始加载。当我更改我的视口时,此代码确实会再次被命中,但在资源字典被清除并重新加载后,我的应用程序的字体/样式/等根本不会改变。
应用程序样式似乎只会在应用程序启动期间加载一次。
有谁知道我可以强制我的应用程序根据新的资源字典值重绘自身吗?
【问题讨论】:
-
Oki,我现在有一个半工作模型。我必须在我的 App.xaml.cs 文件中为整个应用程序删除并重新创建我的内容框架对象。我认为这可能是前进的方向。
标签: xaml windows-store-apps windows-8.1 winrt-xaml