wpf中包含三种文件类型

  • 资源文件:编译到可执行或库 WPF 程序集中的数据文件。

  • 内容文件:与可执行 WPF 程序集具有显式关联的独立数据文件。

  • 源站点文件:与可执行 WPF 程序集没有关联的独立数据文件。

这三种类型的文件之间的一个重要区别是:资源文件和内容文件在生成时是已知的;程序集明确地知道它们的存在。但是对于源站点文件,程序集可能完全不知道它们,或者通过
pack 统一资源标识符 (URI) 引用知道它们的存在;在后一种情况下,不能保证被引用的源站点文件实际存在。

说说资源文件的使用

如果应用程序数据文件必须始终可供某个应用程序使用,那么保证可用性的唯一方法是将其编译到应用程序的主可执行程序集中,或者它所引用的程序集中。这种类型的应用程序数据文件称为“资源文件”。

应在以下情况下使用资源文件:

步骤:
1.选择一个文件当中资源文件,随便的txt,xml,图片都可以的
2.添加到vs项目中。点击右键可以看到其中的action(生成操作)选项要是“resources”
3.然后写一个方法来读取内容
//我是添加了一个sn.txt文件当中资源文件,然后就是读取其中内容而言,比较简单
  
Uri uri = new Uri("/sn.txt", UriKind.Relative);//这个就是所以的pack uri。
           
StreamResourceInfo info = Application.GetResourceStream(uri);
           
Stream s = info.Stream;
            byte[] buffer = new
byte[2014];
            s.Read(buffer, 0,100);
            string x =
Encoding.GetEncoding("gb2312").GetString(buffer);
           
MessageBox.Show(x);

4编译以后。生成文件就是一个exe文件。可以把exe文件放到随便的一个地方。。都可以正常读取sn.txt文件。因为sn.txt文件已经被内置到exe中了

2.内容文件的使用

内容文件是作为松散文件与可执行程序集一起分发的。虽然它们不编译到程序集中,但编译程序集时所使用的元数据建立了与每个内容文件的关联。

如果应用程序需要一组特定的应用程序数据文件,并且您希望能够更新这些文件,而无需重新编译使用它们的程序集,则应该使用内容文件。

操作步骤和资源文件很类似。也是添加一个文件到vs中

但是要将“生成操作”设置为“内容”,还要将“复制到输出目录”设置为“始终复制”或者更新复制

代码也很一样

参考上面的资源文件列子

StreamResourceInfo info =
Application.GetContentStream(url);//GetResourceStream(uri);

第三源站点文件

资源文件与同其一起分发的程序集有显式关系,这一关系由
AssemblyAssociatedContentFileAttribute
定义。但是,有些情况下可能需要在程序集和应用程序数据文件之间建立隐式关系或不存在的关系,这些情况包括:

使用传统的 URI 方案可以加载这些类型的文件,如 file:/// 和 http://
方案。

<Image Source="file:///C:/DataFile.bmp"
/>
<Image Source="http://www.datafilewebsite.com/DataFile.bmp"
/>

源站点文件的操作前面的类似

添加到vs中文件的“生成操作”设置为“none”或无读取方法使用GetRemoteStream

wpf中内置资源文件的更多相关文章

  1. 浏览WPF中内置颜色名对应的颜色

  2. Android 打造自己的个性化应用(二):应用程序内置资源实现换肤功能

    通过应用程序内置资源实现换肤,典型的应用为QQ空间中换肤的实现. 应用场景为: 应用一般不大,且页面较少,风格相对简单,一般只用实现部分资源或者只用实现背景的更换. 此种换肤方式实现的思路: 1. 把 ...

  3. js中内置有对象

    statpot:使用mongo+bootstrap+highcharts做统计报表 最近做了一个统计项目,这个统计项目大致的需求是统计接口的访问速度.客户端会调用一个接口来记录接口的访问情况,我的需求 ...

  4. ABP官方文档翻译 6.5 内嵌资源文件

    内嵌资源文件 介绍 创建内嵌文件 xproj/project.json形式 csproj形式 添加内嵌资源管理器 使用内嵌视图 使用内嵌资源 ASP.NET Core 配置 忽略文件 重写内嵌文件 介 ...

  5. WPF中引入外部资源

    有时候需要在WPF中引入外部资源,比如图片.音频.视频等,所以这个常见的技能还是需要GET到. 第一步:在VS中创建一个WPF窗口程序 第二步:从外部引入资源,这里以引入图片资源为例 1)新建Reso ...

  6. CorelDRAW中内置的视频教程在哪里?

    CorelDRAW中内置了很多教学内容和视频教程,可以帮助用户快速学习和掌握CorelDRAW的使用方法,创作出个性化的作品.很多小伙伴表示找不到软件自带学习视频,现在小编就来告诉你. 用户可以通过两 ...

  7. 【转】WebResource实现在自定义控件中内嵌JS文件

    在类库中的资源  其他项目中要使用 需要嵌入才行 参考文献:WebResource实现在自定义控件中内嵌JS文件 1. WebResource简介 ASP.NET(1.0/1.1)给我们提供了一个开发 ...

  8. Eclipse spket插件 内置js文件

    这一篇将怎么在spket内置js文件,而不用用户自己去添加.    1. 在开发的Eclipse的 运行配置将下面几个插件勾选上.     2. 在org.eclipse.ui.startup拓展里执 ...

  9. QT笔记之VS2010 Qt中导入qrc资源文件

    转载1:http://qimo601.iteye.com/blog/1404693 转载2:http://blog.sina.com.cn/s/blog_92cde3060101lobm.html 转 ...

随机推荐

  1. Android学习记录:线程

    在Java中,线程的建立方法如下. 新建一个类,接口Runnable,重载 run方法 import javax.swing.JTextField; public class test impleme ...

  2. React——组件

    一.创建组件 在React中有两种创建组件的方式,分别是函数形式的组件和类形式的组件 //函数形式: function Welcome(props){ return <p>this is ...

  3. 团队作业8——Beta 阶段冲刺5th day

    一.当天站立式会议 二.每个人的工作 (1)昨天已完成的工作(具体在表格中) 支付功能测试 (2)今天计划完成的工作(具体如下) 完善订单功能 (3)工作中遇到的困难(在表格中) 成员 昨天已完成的工 ...

  4. 个人作业2-英语学习案例app分析

    第一部分 调研, 评测 (软件的bug,功能评测,黑箱测试, 第8章 用户调研, 12 章 软件的用户体验) 下载并使用,描述最简单直观的个人第一次上手体验. ①个人感觉还不错,词典的首页页面挺好看的 ...

  5. 团队作业4---第一次项目冲刺(ALpha)版本 第六天

    一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 a.完成所有基础功能 b.正在进行测试调试 四.困难与问题 1.测试前没有理清业务逻辑,导致前期测试深度不够: 2.在验证过去 ...

  6. 《Java程序设计》第1周学习总结

    1.本周本章学习总结 感觉装环境和基础语言也没什么好总结的,就谈谈我对java的认识. 接触的语言也不多,c语言,python.去年科研立项立了个安卓开发的项.也有去学了一阶段java.由于种种原因没 ...

  7. LaTeX排版指南

    V0.0.1 工具链 CTeX:http://www.ctex.org/HomePage ,CTeX是一个中文套装,但也同时发布一个独立的ctex宏包 TeXLive:https://tug.org/ ...

  8. 201521123080《Java程序设计》第6周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...

  9. 201521123065 《Java程序设计》第4周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容 类设计:属性设计类型为priate并初始化. 文档注释:以/*开始,以*/结束. 继承:存在的 ...

  10. 201521123057 《Java程序设计》第2周学习总结

    1. 本章学习总结 本周Java教学主要围绕Java的基本语法展开.在本周的学习中,我了解到了: -Integer的取值范围 -if...else条件式,switch条件式,while循环,break ...