一般情况下,UWP中引用资源字典,只需要在App.xaml中的Application.Resources节点下增加一个ResourceDictionary节点,并将其Source指向对应的资源字典路径即可,如:
<ResourceDictionary x:Key="Dark" Source="Resources/Themes/DarkTheme.xaml"></ResourceDictionary>
但是有些情况下,我们会给资源字典增加后台代码,进行一些事件处理,这时,如果还用这种方式引用,那么事件就不会触发了
一种推荐的做法是,在App.xaml的后台代码中,重写OnLaunched方法,在其中引用,比如:
this.Resources.MergedDictionaries[4].MergedDictionaries.Add(new DataTemplates());
其中,DataTamplates是资源字典对应的后台类
需要注意的是,不要在App的构造函数中调用,会引发灾难性故障,虽然我也不知道到底发生什么灾难了。