原文:2019-11-29-win10-uwp-关联文件

title author date CreateTime categories
win10 uwp 关联文件
lindexi
2019-11-29 10:16:25 +0800
2018-2-13 17:23:3 +0800
Win10 UWP

有时候应用需要打开后缀名为x的文件,那么如何从文件打开应用?

首先,需要打开 Package.appxmanifest 在声明添加文件

添加一个功能,需要写的最少的项是名称,文件类型两个。

上面的图就是我添加 jpg 关联的方法,建议是写多一些。如果是作为测试,想看这个功能是如何使用,就只需要写文件类型。

现在我的应用可以打开 jpg 文件,在一个 jpg 文件右击打开方式,在这个项目部署之后就可以设置是使用这个项目打开。在实际的项目我也有一个应用是需要这个功能,这个就是 UWP图床: https://www.microsoft.com/store/apps/9nblggh562r2 这个软件可以快速将图片上传到图床,图床可以使用默认的也可以自己设置。在写博客时使用这个软件可以快速上传图片创建连接。

添加完,打开 App.xaml.cs 添加一个函数,通过 OnFileActivated 调用就是用户使用这个应用打开关联文件,打开的文件可以从 FileActivatedEventArgs 找到

        protected override void OnFileActivated(FileActivatedEventArgs args)
{
base.OnFileActivated(args);
}

这个函数现在还没代码,需要对他做一点修改

        protected override void OnFileActivated(FileActivatedEventArgs args)
{
var file = args.Files[0];
Frame frame = Window.Current.Content as Frame;
if (frame == null)
{
frame = new Frame();
Window.Current.Content = frame;
}
frame.Navigate(typeof(MainPage), file);
Window.Current.Activate();
}

这里的 file 可能是空,但是上面只是告诉大家一个最简单方法,不考虑可能存在的软件已经打开等。

如果已经打开了软件,通过 frame.Navigate 重新跳转到主页面,页面跳转就是这样,页面传入可以是 StorageFile 但是需要在对应的页面使用对应类型。

现在软件在用户打开对应文件直接显示在 MainPage ,如果需要显示在别的窗口,就可以通过frame.Navigate跳转到其他的页面,对于跳转传参数,建议使用本渣的 MVVM 框架,请看win10 uwp MVVM入门

我没有在博客说如何传参,但是这个对大家也不难。

打开 MainPage.xaml 写一个 Image 在这个 Image 显示打开的图片

            <Image x:Name="Image"></Image>

打开 xaml.cs ,把app启动的file显示在刚才的图片

        protected override async void OnNavigatedTo(NavigationEventArgs e)
{
var file = e.Parameter as StorageFile;
if (file != null)
{
using (var stream = await file.OpenAsync(FileAccessMode.Read))
{
BitmapImage img = new BitmapImage();
await img.SetSourceAsync(stream);
Image.Source = img;
}
}
}

UWP 从文件显示图片很简单,打开放在img就好。

现在尝试运行一下这个项目,然后找到一张 jpg 图片,右击打开方式选择这个项目,这时就可以看到 UWP 应用显示图片。可以看到关联的代码很简单,实际上也是很简单

刚才只是用最简单的方式写了显示的名称,但是一个好看的应用,需要在关联文件加上图片。

加上图片就是在刚才打开的功能可以看到图标,选择一个好看的图片,在用户将打开这个文件的默认应用设置为自己的应用时,就会使用这个应用设置的图标

2019-11-29-win10-uwp-关联文件的更多相关文章

  1. win10 uwp 关联文件

    有时候应用需要打开后缀名为x的文件,那么如何从文件打开应用? 首先,需要打开 Package.appxmanifest 添加一个功能,需要添加最少有名称,文件类型. 上面的图就是我添加jpg 的方法, ...

  2. win10 UWP读写文件

    C# uwp应用的文件读写最常见错误就是没有权限. 而最简单的方法是对已知的文件路径进行访问 已知的文件路径常见的是自身的路径 权限这个和之前不同,UWP读写文件多用StorageFile来读写文件 ...

  3. win10 uwp 判断文件存在

    本文主要翻译http://stackoverflow.com/questions/37119464/uwp-check-if-file-exists/37152526#37152526 我们有多种方法 ...

  4. 2019.11.29 SAP SMTP郵件服務器配置 發送端 QQ郵箱

    今天群裏的小夥伴問了如何配置郵件的問題,隨自己在sap裏面配置了一個 1.    RZ10配置參數 a)       参数配置前,先导入激活版本 执行完毕后返回 b)      输入参数文件DEFAU ...

  5. pycharm+anaconda在Mac上的配置方法 2019.11.29

    内心os: 听人说,写blog是加分项,那他就不是浪费时间的事儿了呗 毕竟自己菜还是留下来东西来自己欣赏吧 Mac小电脑上进行python数据开发环境的配置 首先下载Anaconda,一个超好用的数据 ...

  6. 2019.11.29 Mysql的数据操作

    为名为name的表增加数据(插入所有字段) insert into name values(1,‘张三’,‘男’,20); 为名为name的表增加数据(插入部分字段) insert into name ...

  7. Supervision meeting notes 2019/11/29

    topic 分支:  1. subgraph/subsequence mining Wang Jin, routine behavior/ motif. Philippe Fournier Viger ...

  8. win10 uwp 入门

    UWP是什么我在这里就不说,本文主要是介绍如何入门UWP,也是合并我写的博客. 关于UWP介绍可以参见:http://lib.csdn.net/article/csharp/32451 首先需要申请一 ...

  9. win10 uwp smms图床

    本文,如何使用smms图床上传图片,用到win10 uwp post文件,因为我是渣渣,如果本文有错的,请和我说,在本文评论,或发给我邮箱lindexi_gd@163.com,请不要发不良言论 找到一 ...

  10. win10 uwp 如何开始写 uwp 程序

    本文告诉大家如何创建一个 UWP 程序. 这是一系列的 uwp 入门博客,所以写的很简单 本文来告诉大家如何创建一个简单的程序 安装 VisualStudio 在开始写 UWP 需要安装 Visual ...

随机推荐

  1. Jenkins 打tag回滚

    利用jenkins,从gitlab上拉取代码,然后发布,如果想进行代码回退,其实还是代码发布,拉取的时候,选择合适的标签. 一.利用Git parameter插件选择branch或tag.下面的文本参 ...

  2. rsync 服务端和客户端 简单配置

    环境:Centos 6.9 两台服务器,A(192.168.223.129) 和 B(192.168.223.130).A 作为服务端,B作为客户端从A服务器同步目录.把A的/usr/src 目录下的 ...

  3. Windows局域网共享遇到的问题

    前言 接这篇:Windows 局域网内共享 我们的环境: 共享机:局域网内某台主机 windows 7 x64 客户端:windows 7 /windows 10 (各版本系统都有) 可以使用共享人数 ...

  4. C# 在不同编译下的不同表现

    这是我在2018年的时候发在Unity Forums上的帖子, 至今无人回复, 之前是想用TypedReference做DataTable的相关功能的, 可是结果不正确. tiancaiwrk, Oc ...

  5. VUE注册局部组件

    // 局部组件命名规范 /* 1文件夹名大驼峰 MyLocalBtn.vue 2 使用的时候 将驼峰转化为横杠 <my-local-btn></my-local-btn> */ ...

  6. html 后手

    1.a (1.)超链接 <a href="new.html">点击进入到新网页</a>这里可以直接跳转到一个页面 <a href="http ...

  7. 201871010134-周英杰《面向对象程序设计(java)》第七周学习总结

    201871010134-周英杰<面向对象程序设计(java)>第七周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这 ...

  8. MySQL内连接、左连接、右连接的使用以及区别

    首先先建两个表,student表和score表 select * from student; student表数据如下: select * from score; score表数据如下:    可以看 ...

  9. Spring Cloud微服务安全实战_3-5_API安全之常见问题

    1,数据校验,解决接口层的参数校验,是api安全的前线.可以用JSR303注解进行接口层面的校验 ,参考文章:https://www.ibm.com/developerworks/cn/java/j- ...

  10. workerman docker 运行试用

    看到别人项目使用了workerman 作为webserver ,看了下介绍发现此框架还是挺强大的,比较喜欢使用 docker运行软件,所以基于php 7.3 的基础镜像简单使用下 环境准备 项目使用了 ...