如何在WPF中实现主题化

4
我希望您能够将ASP.Net类型的主题实现到WPF中。用户可以选择各种预定义的主题并切换到另一个主题。
为了实现这个目标,我尝试创建不同的资源字典来存储每个主题所需的样式及其键。所有主题中的键集合相同,但是每个主题中的定义不同。
我使用以下代码在单击时切换主题:
var theme = Application.LoadComponent(uri) as ResourceDictionary;
Application.Current.Resources.MergedDictionaries.Clear();
Application.Current.Resources.MergedDictionaries.Add(theme);

在所有页面/用户控件/窗口中,我已经设置了StaticResource并应用了适当的键。当我切换到另一个主题时,它只有在UI上的下一个事件后才会被应用。如果我将StaticResource更改为DynamicResource,则可以立即应用。请分享您的想法以实现StaticResource的此功能?
2个回答

0

谢谢您的回复,但是它在使用StaticResource时无法工作。 - Naresh Goradara

0

很遗憾,您无法使用StaticResource实现此目标。在切换到另一个主题后,需要重新加载带有StaticResource 的控件,以应用新资源。

您可能想要创建功能,在更改主题后重新加载当前页面。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接