WPF Pack URI中使用通配符的替代方法

4
我目前正在重构我的应用程序(Windows Desktop WPF)中的资源结构。此前,我使用单个 Icons.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>

我注意到,如果pack URIs支持源参数内的通配符,则会使事情变得更加简单和清晰。所以我可以使用一行代码将icons文件夹中的所有*.xaml包含在内。
遗憾的是,在阅读pack uri文档时,我没有看到任何关于通配符或类似内容的信息。
因此,现在我想知道是否有其他方法,可以将特定目录中的所有*.xaml文件(每个文件都只包含一个资源字典)合并为一个单独的资源字典,而无需显式指定每个文件。
或者我只需要接受每次添加新的Icons/Something.xaml时,都必须手动添加合并它的代码这一事实?
1个回答

1

或者我只需要接受每次添加新的Icons/Something.xaml时都必须手动添加合并行吗?

是的。要么这样,要么编写一些C#代码,在运行时检查特定文件夹中的所有文件并创建要合并的资源字典。

XAML不支持此操作。它是一种标记语言。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接