2018-8-10-win10-uwp-关联文件
title | author | date | CreateTime | categories |
---|---|---|---|---|
win10 uwp 关联文件
|
lindexi
|
2018-08-10 19:17:19 +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 应用显示图片。可以看到关联的代码很简单,实际上也是很简单
刚才只是用最简单的方式写了显示的名称,但是一个好看的应用,需要在关联文件加上图片。
加上图片就是在刚才打开的功能可以看到图标,选择一个好看的图片,在用户将打开这个文件的默认应用设置为自己的应用时,就会使用这个应用设置的图标
2018-8-10-win10-uwp-关联文件的更多相关文章
- win10 uwp 关联文件
有时候应用需要打开后缀名为x的文件,那么如何从文件打开应用? 首先,需要打开 Package.appxmanifest 添加一个功能,需要添加最少有名称,文件类型. 上面的图就是我添加jpg 的方法, ...
- win10 UWP读写文件
C# uwp应用的文件读写最常见错误就是没有权限. 而最简单的方法是对已知的文件路径进行访问 已知的文件路径常见的是自身的路径 权限这个和之前不同,UWP读写文件多用StorageFile来读写文件 ...
- win10 uwp 判断文件存在
本文主要翻译http://stackoverflow.com/questions/37119464/uwp-check-if-file-exists/37152526#37152526 我们有多种方法 ...
- win10 uwp 入门
UWP是什么我在这里就不说,本文主要是介绍如何入门UWP,也是合并我写的博客. 关于UWP介绍可以参见:http://lib.csdn.net/article/csharp/32451 首先需要申请一 ...
- win10 uwp smms图床
本文,如何使用smms图床上传图片,用到win10 uwp post文件,因为我是渣渣,如果本文有错的,请和我说,在本文评论,或发给我邮箱lindexi_gd@163.com,请不要发不良言论 找到一 ...
- win10 uwp 如何开始写 uwp 程序
本文告诉大家如何创建一个 UWP 程序. 这是一系列的 uwp 入门博客,所以写的很简单 本文来告诉大家如何创建一个简单的程序 安装 VisualStudio 在开始写 UWP 需要安装 Visual ...
- 【Unity_UWP】Unity 工程发布win10 UWP 时的本地文件读取 (上篇)
Universal Windows Platform(UWP)是微软Windows10专用的通用应用平台,其目的在于在统一操作系统下控制所有智能电子设备. 自从Unity 5.2之后,配合VS 201 ...
- 【Unity_UWP】Unity 工程发布win10 UWP 时的本地文件读取 (下篇)
Universal Windows Platform(UWP)是微软Windows10专用的通用应用平台,其目的在于在统一操作系统下控制所有智能电子设备. 自从Unity 5.2之后,配合VS 201 ...
- win10 uwp 获取指定的文件 AQS
很多时候不需要获取整个文件夹的文件,是需要获取文件夹里指定的文件. 那么 UWP 如何对文件夹里的文件进行过滤,只拿出自己需要的文件? 本文:如何使用通配符或文件匹配方式在uwp获取文件夹中指定的文件 ...
- win10 uwp 使用 Microsoft.Graph 发送邮件
在 2018 年 10 月 13 号参加了 张队长 的 Office 365 训练营 学习如何开发 Office 365 插件和 OAuth 2.0 开发,于是我就使用 UWP 尝试使用 Micros ...
随机推荐
- Hive参数调优
调优 Hive提供三种可以改变环境变量的方法,分别是: (1)修改${HIVE_HOME}/conf/hive-site.xml配置文件: 所有的默认配置都在${HIVE_HOME}/conf/hiv ...
- jQuery 源码解析(二十七) 样式操作模块 坐标详解
样式操作模块可用于管理DOM元素的样式.坐标和尺寸,本节讲解一下坐标这一块. 对于坐标来说,jQuery提供了一个offset方法用于获取第一个匹配元素的坐标或者设置所有匹配元素的坐标,还有offse ...
- 解决 vscode 中 nuget 插件无法获取包版本的问题
解决 vscode 中 nuget 插件无法获取包版本的问题 1.问题描述 大概在今年的7月份左右,我忽然发现 NuGet Package Manager 拓展没法正常使用了,只能查询到包: 选完包之 ...
- RobotFramework不同版本优劣势
一.RIDE 1.5.2.1 1. 安装: pip install robotframework-ride==1.5.2.1 2. 优点: 此版本是RIDE发布以来最为稳定的版本,使用性能上也较为流畅 ...
- 基于STM32F429,Cubemx的SAI音频播放实验
书接上文:https://www.cnblogs.com/feiniaoliangtiangao/p/11060674.html 和 https://www.cnblogs.com/feiniaoli ...
- Java每日一面(Part1:计算机网络)[19/10/13]
作者:晨钟暮鼓c个人微信公众号:程序猿的月光宝盒 1.说说TCP三次握手 1.0 在此之前,什么是TCP? TCP(传输控制协议) 1.面向连接的,可靠的,基于字节流的传输层通信协议 2. ...
- mysql定时任务(event事件)
1.事件简介 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”. 事件和触发器类似,都是在 ...
- GitHub访问速度慢的一种优化方法
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名GitHub. 由于GitHub是一个国外网站,在国内访问速度如何呢? 我们通过浏览器访问下ht ...
- JS&Jquery基础之窗口对象的关系总结
1.top 该变更永远指分割窗口最高层次的浏览器窗口.如果计划从分割窗口的最高层次开始执行命令,就可以用top变量.2.opener opener用于在window.open的页面引用执行该wi ...
- 009.MongoDB分片群集部署
一 前期准备 1.1 组件说明 MongoDB分片群集包含以下组件: shard:每个分片是分片数据的子集.从MongoDB 3.6开始,必须将分片部署为副本集. mongos:mongos充当查询路 ...