我需要在运行时从一些程序集中加载我的ResourceDictionary 。
首先,我将ResourceDictionary 的BuildAction设置为Page,并使用代码来构建 uri。
var uri = new Uri(string.Format(@"/{0};component\Resources\MyResource.xaml",
assemblyName), UriKind.RelativeOrAbsolute);
那行得通,但后来我意识到,在将 uri 设置为我的 ResourceDictionary 之前,我需要检查程序集。因为,如果 ResourceDictionary 不在程序集中,则会引发异常。
var rd = new ResourceDictionary
{
Source = uri
};
因此,我将 ResourceDictionary 的 BuildAction 设置为EmbeddedResource,以便使用以下代码查看程序集中的 ResourceDictionary:
var hasResource = assembly.GetManifestResourceNames().
Any(resourceName => resourceName.EndsWith("MyResource.xaml"));
但是现在,我无法使用 uri 加载 ResourceDictionary。我已经尽我所能,但没有成功。
任何想法?谢谢!