c# - 在 WPF 包 URI 中使用通配符的替代方法
问题描述
我目前正在重构我的应用程序中的资源结构。(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
用一行将所有内容都包含在图标文件夹中。
可悲的是,通过阅读pack uri 文档,我没有阅读任何有关通配符或类似内容的信息。
所以现在我想知道是否有其他方法可以让我将*.xaml
特定目录中的所有文件(每个都只包括一个资源字典)合并到一个资源字典中,而无需明确指定每个文件。
还是我只需要接受每次添加新Icons/Something.xaml
内容时都必须手动添加行来合并它?
解决方案
还是我只需要接受每次添加新的 Icons/Something.xaml 时我都必须手动添加行来合并它?
是的。要么就是这样,要么编写一些 C# 代码,在运行时检查特定文件夹中的所有文件,并创建要以编程方式合并的资源字典。
XAML 不支持这样做。它是一种标记语言。
推荐阅读
- javascript - 将第一个字符输入输入时,getPostDelimiter() 中的 Cleave.js 错误
- html - 如何在html模板中使用for循环
- reactjs - React TypeScript - 为什么在尝试使用 && 运算符有条件地渲染时,Boolean() 的行为与 double NOT (!!) 运算符不同?
- yaml - GitHub Actions - 您的 YAML 语法有错误
- javascript - DOM 问题:JS FOR 循环是无止境的且无功能的
- javascript - 通过 URL 访问和更新内存中的数据
- html - 如何在引导轮播中设置内部 div (img) 的高度
- python - 将变量添加到 ! jupyter中的命令
- javascript - 将日期范围打包到时间线行中 Javascript
- sql - 使用 DateDiff 从字符串转换日期和/或时间时转换失败