我想在 WPF 中实现 ASP.Net 类型的主题。用户可以选择各种预定义的主题,并可以切换到另一个主题。
为了实现这一点,我尝试为每个主题创建不同的资源字典并使用键存储所需的样式。所有主题的键集合都是相同的,但每个主题的定义不同。
我正在使用以下代码在点击时切换主题:
var theme = Application.LoadComponent(uri) as ResourceDictionary;
Application.Current.Resources.MergedDictionaries.Clear();
Application.Current.Resources.MergedDictionaries.Add(theme);
在所有页面/用户控件/窗口中,我设置了 StaticResource 并应用了适当的键。当我切换到另一个主题时,它仅在 UI 上的下一个事件之后应用。
如果我将更改 StaticResource 设置为 DynamicResource 然后它会立即应用。
请分享您使用 StaticResource 实现这一目标的想法?