.NET MAUI实战 FilePicker

1.概要

最近在迁移 GeneralUpdate.Tool的时候需要用到文件选择,在MAUI中可以使用FilePicker进行选择。

ref1: https://gitee.com/Juster-zhu/GeneralUpdate

ref2:https://docs.microsoft.com/zh-cn/dotnet/maui/platform-integration/storage/file-picker?tabs=windows

7282e211fd06de7b3b06cbab5852627c.png

2.详细内容

提供的默认文件类型包括 FilePickerFileType.ImagesFilePickerFileType.PngFilePickerFilerType.Videos。可以通过创建类的 FilePickerFileType 实例,为每个平台指定自定义文件类型。此类的构造函数采用由类型键键标识平台的 DevicePlatform 字典。字典键的值是表示文件类型的字符串集合。例如,下面介绍如何指定特定的漫画文件类型:

var customFileType = new FilePickerFileType(new Dictionary<DevicePlatform, IEnumerable<string>>{{ DevicePlatform.iOS, new[] { "public.my.comic.extension" } }, // or general UTType values{ DevicePlatform.Android, new[] { "application/comics" } },{ DevicePlatform.WinUI, new[] { ".cbr", ".cbz" } },{ DevicePlatform.Tizen, new[] { "*/*" } },{ DevicePlatform.macOS, new[] { "cbr", "cbz" } }, // or general UTType values});PickOptions options = new()
{PickerTitle = "Please select a comic file",FileTypes = customFileType,
};

该方法 PickAsync 提示用户从设备选取文件。使用 PickOptions 类型指定选取器允许的标题和文件类型。以下示例演示如何打开选取器并处理所选图像:

public async Task<FileResult> PickAndShow(PickOptions options)
{try{var result = await FilePicker.Default.PickAsync(options);if (result != null){if (result.FileName.EndsWith("jpg", StringComparison.OrdinalIgnoreCase) ||result.FileName.EndsWith("png", StringComparison.OrdinalIgnoreCase)){using var stream = await result.OpenReadAsync();var image = ImageSource.FromStream(() => stream);}}return result;}catch (Exception ex){// The user canceled or something went wrong}return null;
}

如果希望用户选取多个文件,请调用该方法 FilePicker.PickMultipleAsync 。此方法还采用参数 PickOptions 来指定其他信息。结果与返回的类型相同 PickAsync,但不 FileResult 返回类型, IEnumerable<FileResult> 而是使用所有选定文件返回类型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282735.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server中,with as使用介绍

一&#xff0e;WITH AS的含义 WITH AS短语&#xff0c;也叫做子查询部分&#xff08;subquery factoring&#xff09;&#xff0c;可以让你做很多事情&#xff0c;定义一个SQL片断&#xff0c;该SQL片断会被整个SQL语句所用到。有的时候&#xff0c;是为了让SQL语句的可读…

从新手机到老股票 闲鱼为何会沦为骗子与营销的新平台?

国内电商一直空缺一个有规模的综合二手交易平台。闲鱼的出现&#xff0c;有一定程度上满足了喜欢淘二手、喜欢“捡漏”的用户需求。虽加入了担保和第三方支付等环节&#xff0c;但这种随机的二手交易行为不可避免地会出现上当、受骗的情况出现。本质上来说&#xff0c;闲鱼仍然…

网上书店模板asp与html,一个简单的网上书城的例子(三)_asp实例

buy.asp:显示商品和用户购物&#xff01;DbPath SERVER.MapPath("ShopBag.mdb")Set conn Server.CreateObject("ADODB.Connection")conn.open "driver{Microsoft Access Driver (*.mdb)};dbq" & DbPathCategoryIDRequest("CategoryID…

使用C#编写一个.NET分析器(一)

译者注这是在Datadog公司任职的Kevin Gosse大佬使用C#编写.NET分析器的系列文章之一&#xff0c;在国内只有很少很少的人了解和研究.NET分析器&#xff0c;它常被用于APM&#xff08;应用性能诊断&#xff09;、IDE、诊断工具中&#xff0c;比如Datadog的APM&#xff0c;Visual…

内置数据类型

Java语言提供了八种基本类型。六种数字类型&#xff08;四个整数型&#xff0c;两个浮点型&#xff09;&#xff0c;一种字符类型&#xff0c;还有一种布尔型。 byte&#xff1a; byte 数据类型是8位、有符号的&#xff0c;以二进制补码表示的整数&#xff1b; 最小值是 -128&…

算法学习之循环结构程序设计

for循环 打印1,2,3&#xff0c;...&#xff0c;n每个占一行。 #include <conio.h> #include<stdio.h> int main(){int i,n;scanf("%d",&n);for(i1;i<n;i){printf("%d\n",i);}getch();return 0; } 分支结合循环&#xff0c;威力很强大 输…

Linux常用命令 (分门别类)

一、系统安全: su: 用于切换当前用户身份到其他用户身份&#xff0c;变更时须输入所要变更的用户帐号与密码 sudo: 用来以其他身份来执行命令&#xff0c;预设的身份为root lastlog: 用于显示系统中所有用户最近一次登录信息 lastb: 用于显示用户错误的登录列表&#x…

hibernate自定义校验器使用(字段在in范围之内)

2019独角兽企业重金招聘Python工程师标准>>> 1.自定义注解类DigitsMustIn Constraint(validatedBy DigitsMustInValidator.class) //具体的实现 Target({java.lang.annotation.ElementType.METHOD,java.lang.annotation.ElementType.FIELD}) Retention(java.lang.a…

sql将html转成excel,使用SQL*PLUS,构建完美excel或html输出

通过SQL*PLUS我们可以构建友好的输出&#xff0c;满足多样化用户需求。本例通过简单示例&#xff0c;介绍通过sql*plus输出xls&#xff0c;html两种格式文件.首先创建两个脚本:1.main.sql用以设置环境&#xff0c;调用具体功能脚本2.功能脚本-get_tables.sql为实现具体功能之脚…

[cogs347]地震

COGS&#xff1a;地震&#xff08;平衡树&#xff09; COGS上一道题。。。文件名是equake 还是又打了一遍板子。。。 加个lazy标记就行了。。。 注意查询时先下传标记&#xff08;lazy&#xff09; // It is made by XZZ #include<cstdio> #include<algorithm> #de…

第八课-第二讲 08_02_bash脚本编程之七 case语句及脚本选项进阶

第八课-第二讲 08_02_bash脚本编程之七 case语句及脚本选项进阶 一. 面向过程控制结构顺序结构选择结构循环结构选择结构if语句 单分支&#xff0c;双分支&#xff0c;多分支case 语句 case语句:选择结构 case SWITCH invalue1)---此处的value是当做字符来比较的statement....…

html表单提交按钮怎么居中,与表单框一致,居中提交按钮_html_开发99编程知识库...

我嘗試將提交按鈕與表單的一個條目對齊失敗。 我只是希望提交按鈕稍微定位到窗體框的右側和中心。 現在是右邊&#xff0c;但在盒子的底部。我試圖回答相似的查詢&#xff0c;對於提交按鈕( 浮點&#xff0c;margin 等等 )&#xff0c;但是我不能找到正確的選擇。我的HTML如下所…

一个简单的WebService服务

现在&#xff0c;网上提供的免费的webservice服务的网站&#xff1a; http://www.webxml.com.cn/从扩展名上看&#xff0c;是 .net构建的网站。看看功能的实现效果&#xff1a;需求&#xff1a;我们要远程调用手机号归属地的查询&#xff1a;开发步骤&#xff1a; 1&#xff0e…

Linux中的vi和vim

一、vi与vim的概念和区别 概念: 它们都是多模式编辑器&#xff0c;不同的是vim 是vi的升级版本&#xff0c;它不仅兼容vi的所有指令&#xff0c;而且还有一些新的特性在里面。 vim优势主要体现在一下几方面: 1、多级撤消 我们知道在vi里&#xff0c;按 u只能撤消上次命令&a…

[工具分享]备份SSAS模型TMSL脚本元数据工具,多给自己一点后悔药可吃。

笔者在2019年分享过自己写的一个小工具&#xff0c;用于备份Sqlserver数据库的元数据。近期在一个PowerBI项目中&#xff0c;发现很有必要也备份下SSAS分析模型的元数据&#xff0c;防止不小心服务器坏了或使用Tabular Editor连接数据库方式开发过程中&#xff0c;不小心覆盖了…

UVA - 11181 数学

UVA - 11181 题意&#xff1a; n个人去买东西&#xff0c;其中第i个人买东西的概率是p[i],最后只有r个人买了东西&#xff0c;求每个人实际买了东西的概率 代码&#xff1a; //在r个人买东西的概率下每个人买了东西的概率&#xff0c;这是条件概率&#xff0c;因为最多20个人可…

js时间戳转成日期格式

//第一种2 function getLocalTime(nS) { 3 return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/, ); 4 } 5 alert(getLocalTime(1293072805));6 //结果是2010年12月23日 10:537 //第二种 8 function getLocalTime(nS) { 9 r…

计算机桌面去方格子,win7桌面office图标变成白色方格图标的原因和解法

win7系统开机发现桌面上所有office图标变成白色方格图标&#xff0c;其他程序图标都正常显示&#xff0c;是怎么回事呢&#xff1f;出现这样的情况&#xff0c;一般是由于文件图标缓存错误或者丢失导致&#xff0c;找打原因后该如何解决问题&#xff1f;可以通过记事本来解决此…

JS获取元素的offsetTop,offsetLeft等相关属性

1. obj.clientWidth //获取元素的宽度 obj.clientHeight //元素的高度 obj.offsetLeft //元素相对于父元素的left obj.offsetTop //元素相对于父元素的top obj.offsetWidth //元素的宽度 obj.offsetHeight //元素的高度 区别&#xff1a; clientWidth width padding clientHe…

vi/vim 三种模式及命令 (简单粗暴,轻松搞懂)

//一般模式(默认模式) 一般模式&#xff1a; 移动光标 h 或 向左方向键 光标向左移动一个字符 j 或 向下方向键 光标向下移动一个字符 k 或 向上方向键 光标向上移动一个字符 l 或 向右方向键 光标向右移动一个字符 [Ctrl] [f] 屏幕『向前』移动一页&#xff08;常用) [Ct…