[英]How to remove App.xaml ResourceDictionary at startup?
我在App.xaml
文件中声明了ResourceDictionary
,如下所示:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Skins/DefaultSkin.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
问题是,当我尝试在启动时加载其他外观时(使用App.xaml.cs
构造函数加载上次使用的ResourceDictionary
外观)时,我发现Application.Resources
设置的ResourceDictionary
覆盖了此外观,并还原为DefaultSkin.xaml文件-即使我使用Application.Current.Resources.MergedDictionaries.Clear();
在选择所需的皮肤之前。
当我从Application.Resources
删除ResourceDictionary
时,我的应用程序可以正常运行-但随后所有xaml引用在设计时都会丢失。 我如何在设计时保留此引用,但在运行时将其删除才能覆盖我的外观选择?
覆盖App.xaml.cs
的OnStartup
方法:
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
Resources.MergedDictionaries.Clear();
//...
}
}
如果要清除构造函数中的MergedDictionaries
,则应在调用InitializeComponent()
之后执行此操作:
public App()
{
InitializeComponent();
Resources.MergedDictionaries.Clear();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.