title author date CreateTime categories
WPF 使用 VisualStudio 2017 项目文件
lindexi
2018-08-10 19:16:53 +0800
2018-05-31 18:56:11 +0800
VisualStudio WPF

本文告诉大家如何在 WPF 访问解决方案的文件

在 WPF 如果需要访问项目的文件,如在项目文件放一张图片,需要在 xaml 或后台代码读取,这个就是需要用到本文的技术。

假如在 项目文件 放一张图片,首先新建一个项目,然后随意找一张图片,放在项目上

注意需要查看图片的属性,如果图片的生成不是 Resources 那么在使用下面的代码还是找不到

最简单在 xaml 获取项目文件的方式是直接写相对 xaml 的路径,下面的代码写在主界面

        <Image Source="22f0c4ae0afad5e2fd91a6dcff052f2b.jpg"></Image>

如果放在另一个文件夹的 xaml 相对于图片是下一级,就需要使用下面代码

        <Image Source="../22f0c4ae0afad5e2fd91a6dcff052f2b.jpg"></Image>

因为很容易移动 xaml 文件所在的文件夹,如果移动了文件夹,那么刚才的路径就需要修改,所以建议写绝对路径。

绝对路径的写法是 pack://application:,,,/ 后面添加解决方案的路径。

如在上图,解决方案里的 22f0c4ae0afad5e2fd91a6dcff052f2b.jpg 相对于解决方案是在根目录,所以可以这样写

        <Image Source="pack://application:,,,/22f0c4ae0afad5e2fd91a6dcff052f2b.jpg"></Image>

如果需要跨程序集访问,如我再创建一个项目B,让刚才 A 项目引用 B 项目,在 B 项目放一张图片,然后在 A 项目引用B项目的图片 NearzooRasterCairralJeajismowwir.jpg 就需要在路径写上程序集

现在需要访问 B 项目的 NearzooRasterCairralJeajismowwir.jpg 就需要使用pack://application:,,,/B;component/NearzooRasterCairralJeajismowwir.jpg,格式就是pack://application:,,,/程序集;component/相对B项目的文件,需要注意右击看文件是不是 Resources 如果不是还是无法找到

        <Image Source="pack://application:,,,/B;component/NearzooRasterCairralJeajismowwir.jpg"></Image>

需要知道,程序集和项目的名字是可以不相同的,如刚才的 B 项目,实际上程序集和项目名字不相同,请看下图

所以发现自己找不到资源,可能是项目名字和程序集不相同,需要右击查看程序集

        <Image Source="pack://application:,,,/lindexi;component/NearzooRasterCairralJeajismowwir.jpg"></Image>

如果引用了相同程序集的不同版本,就需要在路径写上版本,格式是pack://application:,,,/程序集;版本;component/文件相对根目录,具体代码请看下面

       <Image Source="pack://application:,,,/lindexi;v1.0.0.0;component/NearzooRasterCairralJeajismowwir.jpg"></Image>

在后台访问解决方案的文件和在 xaml 访问的方法差不多,也是需要用到路径,只是调用的方法不相同

            var resourceStream = Application.GetResourceStream(new Uri("pack://application:,,,/lindexi;component/NearzooRasterCairralJeajismowwir.jpg"));

            if (resourceStream != null)
{
var stream = resourceStream.Stream;
}

参见:Pack URIs in WPF

win10 uwp 访问解决方案文件

2018-8-10-WPF-使用-VisualStudio-2017-项目文件的更多相关文章

  1. 申请Office 365一年免费的开发者账号攻略(2018年10月份版本)

    要进行Office 365开发,当然需要有完整的Office 365环境才可以.为了便于广大开发人员快速地启动这项工作,微软官方给所有开发人员提供了免费的一年开发者账号   那么如何申请Office ...

  2. IntelliJ IDEA 最新激活码(截止到2018年10月14日)

    IntelliJ IDEA 注册码: EB101IWSWD-eyJsaWNlbnNlSWQiOiJFQjEwMUlXU1dEIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYX ...

  3. 新手C#SQL Server使用记录2018.08.10

    主键(PrimaryKey):主键就是每个数据行(记录)的唯一标识,不会有重复值的列(字段)才能当做主键.一个表可以没有主键,但是这样会很难处理表,因此一般情况表都要设置主键. 主键有两张选用策略,分 ...

  4. 01 mybatis框架整体概况(2018.7.10)-

    01 mybatis框架整体概况(2018.7.10)- F:\廖雪峰 JavaEE 企业级分布式高级架构师课程\廖雪峰JavaEE一期\第一课(2018.7.10) maven用的是3.39的版本 ...

  5. 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H)

    目录 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛链接 竞赛题目 总结 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛 ...

  6. 富士康的盈利秒杀99%的A股公司:3星|《三联生活周刊》2018年10期

    三联生活周刊·最美的数学:天才为何成群到来(2018年10期) 本期专题是数学和成都,我都跳过去没看.其他内容也还有点意思. 总体评价3星. 以下是本期一些内容的摘抄,#号后面是kindle电子版中的 ...

  7. Burn Down Chart(2018.6.4~2018.6.10)

    Burn Down Chart (2018.6.4~2018.6.10) 娄雨禛[前端部分] 曾子轩[后端部分+燃尽图] 前端 1. 娄雨禛+李鑫 1)在总工程中完成跳转,实现图片显示,并发布到Git ...

  8. Java分布式互联网架构/微服务/高性能/springboot/springcloud 2018年10月17日直播内容

    2018年10月17日直播内容 大规模并发必备的消息中间件技术ActiveMq 网盘链接: https://pan.baidu.com/s/1GlxsZ2JnrvX- YN16-S7lQw 提取码: ...

  9. 关于 iOS 10 中 ATS / HTTPS /2017 问题

    本文于 2016 年 11 月 28 日按照 Apple 最新的文档和 Xcode 8 中的表现进行了部分更新. WWDC 15 提出的 ATS (App Transport Security) 是 ...

  10. 【福州活动】| "福州首届.NET开源社区线下技术交流会"(2018.11.10)

    活动介绍 微软爱开源,已是尽人皆知的事实.自从收购全球最大的开源社区 GitHub 之后,微软依旧使 GitHub 保持独立运营,并且通过此项举措,微软本身已经成为最大的社区服务者. .NET Cor ...

随机推荐

  1. 洛谷P1052 过河

    P1052 过河 题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上. 由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青 ...

  2. 二维vector基本使用

    变量声明 vector<vector<int> > 变量名: 添加行 vector<vector<int> > v2d; for(int i=0;i&l ...

  3. 快速排序的一种实现(Mark Allen 数据结构与算法 c语言版)

    之前关于快速排序一直比较模糊,网上有几种常见写法: 方法一: void quickSort(int s[], int l, int r) { if (l< r) { int i = l, j = ...

  4. AutoDesk产品,Maya 2018 安装,Microsoft Visual C++ 2012 安装失败,结果 = -2147024546,安装Microsoft Visual C++ 2012 Redistributable 错误0x80070005 等等

    今日老弟装Maya 2018出现问题,我帮忙解决了一下问题,过程颇为曲折,记录一下,看能否帮到有类似困惑的朋友. 我和老弟的电脑牌子一样,就现在自己电脑上装了,竟然开始和他的错误是一样的!都是Micr ...

  5. php各种字符串截取

    各种字符串截取.php <?php /** * 字符串截取,支持中文和其他编码 * @param [string] $str [字符串] * @param integer $start [起始位 ...

  6. PHP队列类

    /** * Created by PhpStorm. * User: LAMP-Q哥 * Date: 2017/8/3 * Time: 12:58 */ class Queue { private $ ...

  7. LDAP Authentication Handler

    Including the Handler In the pom.xml file for your CAS Maven2 WAR Overlay, add the following depende ...

  8. List.Sort 排序用法收集

    使用Lambda表达式,实现代码如下: private static void SortByLambda()        {            List<Article> list ...

  9. 【JZOJ4811】【NOIP2016提高A组五校联考1】排队

    题目描述 输入 输出 样例输入 5 4 1 2 1 3 3 4 3 5 1 4 2 4 1 2 2 5 样例输出 3 1 1 2 数据范围 样例解释 解法 可推知原树可以转换为一个序列,即优先序列: ...

  10. MSSQL → 02:数据库结构

    一.数据库的组成 在SQL Server 2008中,用户如何访问及使用数据库,就需要正确了解数据库中所有对象及其设置.数据库就像一个容器,它里面除了存放着数据的表之外,还有视图.存储过程.触发器.约 ...