WPF-资源-二进制资源
二进制资源可以用3种不同的的方式进行打包:
- 嵌入程序集。
- 在编译时应用程序已知的松散文件。
- 在编译时应用程序不知道的松散文件。
定义二进制资源
设定文件的生成操作
- Resource
将资源放入程序集中。
- Content
将资源作为一个松散文件,但向程序集种添加一个定制特性,该程序集将记录文件是否存在及其相对位置。
注意:
不要使用嵌入式资源(Embedded Resource)
XAML引用资源只支持Resource和Content。不支持嵌入式资源
访问二进制资源
通过统一资源标识符(URI)从代码或者XAML访问这些资源文件。
<StackPanel> <Button ToolTip="ContentResource"> <Image Height="20" Width="20" Source="./Resource/Content.png"></Image> </Button> <Button ToolTip="Resource"> <Image Height="20" Width="20" Source="./Resource/new.jpg"></Image> </Button> </StackPanel>
注意:已编译的Xaml不能通过简单的文件名引用当前目录下的二进制资源,除非把这个资源加到项目中。
如果资源没有在项目中。项目中的XAML文件不能引用到这些文件。
使用特殊语法访问不在项目中的文件。把文件直接靠别到Debug文件夹下,调试程序可以引用到这个不在项目中的文件。
<Button ToolTip="Resource"> <Image Height="20" Width="20" Source="pack://siteOfOrigin:,,,/Content.png"></Image> </Button>
特殊语法的含义是:在程序部署的位置访问资源。
常见资源URI
/log.jpg | Resource或Content |
/b/log.jpg | |
/c:/log.jpg | 松散文件,绝对路径 |
file://c:/log.jpg | 松散文件,绝对路径 |
\\pc1\log.jpg | 共享路径 |
http://aaa.net/log.jpg | 网址文件 |
/Dll;Component/log.jpg | 另一个程序集,Resource生成 |
/Dll;Component/b/log.jpg | 同上 |
pack://siteOfOrigin:,,,/log.jpg | 松散文件,部署位置找文件 |
表中所有的引用都隐式使用了“pack://application;,,,”;不在项目中的文件要使用“siteOfOrigin”
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】