我目前正在重构我的应用程序中的资源结构。 (Windows 桌面 WPF)
到目前为止,我使用单个 Icons.xaml
文件将所有图标存储为 xaml 矢量图。但随着时间的推移,文件变得非常困惑,我现在想将它分成多个文件。每个包含一组图标,将同一图标的变体组合在一起。 (例如:Lock.xaml
包含用于打开 和关闭 锁图标的图标)
在我的 Icons.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Icons/Log.xaml"></ResourceDictionary>
<ResourceDictionary Source="Icons/Disconnect.xaml"></ResourceDictionary>
<ResourceDictionary Source="Icons/Accept.xaml"></ResourceDictionary>
<ResourceDictionary Source="Icons/Lock.xaml"></ResourceDictionary>
(...)
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
我注意到,如果包 URI 只支持源参数中的通配符,它会变得更加简单和清晰。所以我可以用一行将所有 *.xaml
包含在 icons 文件夹中。
可悲的是通过阅读 pack uri docs我还没有读过任何有关通配符或类似内容的内容。
所以现在我想知道是否有其他方法可以让我将特定目录中的所有 *.xaml
文件(每个都只包含一个资源字典)合并到一个资源字典中无需明确指定每个文件。
或者我是否必须接受每次添加新的 Icons/Something.xaml
时都必须手动添加行以合并它?
最佳答案
Or do I just have to accept that each time I add a new Icons/Something.xaml I will have to manually add the line to merge it?
是的。要么是这样,要么是编写一些 C# 代码,在运行时检查特定文件夹中的所有文件,并创建要以编程方式合并的资源字典。
XAML 不支持这样做。这是一种标记语言。
关于c# - 在 WPF 包 URI 中使用通配符的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57058116/