gpt4 book ai didi

c# - WPF 设计应用程序可动态换肤

转载 作者:行者123 更新时间:2023-11-30 22:36:08 24 4
gpt4 key购买 nike

我正在设计一个相当复杂的 WPF 应用程序,许多模块将使用 Prism v4 加载(一些用户控件将位于单独的 dll 中,以及一些其他功能/插件)。由于我刚刚开始使用 WPF,所以我有几个问题。

我希望所有的 GUI 都是“可换肤的”,用户可以单击并选择不同的配色方案,并且整个 GUI 会根据用户的选择更改显示 - 主屏幕,包括所有模块(即运行时皮肤变化)

问:您能推荐一些通用的方法吗?例如,我是否可以只编写 Xaml 而不指定任何样式(具体来说,不将其绑定(bind)到动态样式)并且它可以在运行时更改?我怎样才能切换事件皮肤,使其影响所有加载的用户控件?

谢谢

最佳答案

基本上,您所要做的就是换出资源字典。这些应该包含整个应用程序的样式和画笔等。您甚至可以将这些“皮肤”保留在外部组件中。

你应该看看ComponentResourceKeys用于“命名”外部资源,下面是一些关于如何从所述外部程序集加载资源的代码:

using (FileStream fs = new FileStream("MainResources.xaml", FileMode.Open))
{
ResourceDictionary dic = (ResourceDictionary) XamlReader.Load(fs);
Resources.MergedDictionaries.Clear();
Resources.MergedDictionaries.Add(dic);
}

here is a demo on codeproject

关于c# - WPF 设计应用程序可动态换肤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7150554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com