我在项目中有一个名为Templates的文件夹,里面存放着已编译的XAML ResourceDictionaries。
在UserControl中,我想要将所有模板加载到ResourceDictionary中。我可以使用以下代码:
public MyView()
{
InitializeComponent();
foreach (var resourceUri in new GetResourceUrisFromTemplatesFolder())
Resources.MergedDictionaries.Add(
new ResourceDictionary
{ Source = new Uri(resourceUri, UriKind.Relative) });
}
我需要写的是
GetResourceUrisFromTemplatesFolder
方法。我需要它来发现该文件夹中的所有资源。URI 可以采用以下形式:
/MyAssembly;component/MyNS/Templates/Template12345.xaml
或 ../../Templates/Template12345.xaml
这可行吗?我是否需要手动转换来自程序集编译资源(
MyAssembly.g.resources
)的名称?