学更好的别人,

做更好的自己。

——《微卡智享》

本文长度为2426,预计阅读7分钟

前言

微软的Visual Studio 2022在11月8号已发布,除了.Net6,改为64位的应用程序,将不再局限于主进程 devenv.exe 的 4Gb 内存限制,还有就是微软的跨平台框架MAUI来了。由于工作中出差,也是在抽空的时间赶紧下载体验了一下。

MAUI框架

微卡智享

.NET MAUI全称为.NET Multi-platform App UI,是Xamarin.Forms的演进,对于Xamarin.Forms的客户,您可以把MAUI当成您现在所了解的Xamarin.Forms下一个主要版本。VS2022中.Net 6将Xamarin SDK统一到.NET中了。

.NET MAUI在.NET 6中涵括了Android,iOS,macOS和Windows。除此之外,也正在和Blazor团队一起合作,.NET 6中囊括Blazor 桌面开发。

VS2022下载地址

Visual Studio 2022 IDE - 面向软件开发人员的编程工具 (microsoft.com)

下载过程

由于自己下的是社区版,也是因为2022刚出,所以VS2019就一直还保留着,直接就跨版本升级项目需要慢慢验证,当时做为宇宙第一IDE,占用的硬盘空间也是够大的,于是就出现了我的C盘已经变红的情况了。

200G的C盘也只剩下17G

安装好后准备创建第一个MAUI的项目,结果在搜索栏输入后发现并没有,后来才知道,在Preview版本中才有MAUI的东西,于是就用Visual Studio Installer将VS2022改为17.1.0 Preview 1.0版本。

安装时还有将MAUI的相关组件都打上勾

01

创建MAUI新项目

打开VS2022后,创建新项目,在搜索栏中输入MAUI

选择.Net MAUI App(Preview),取的项目名称为MauiHelloWorld

新建好的MAUI项目中解决方案下是这些相关目录,其中Platforms是不同平台的配置,Resources是资源,MauiProgram是程序启动项,App是全局的加载,MainPage是Demo中的主页显示相关,将这些项展开可以看到如下:

.xaml是布局设置,而下面的.cs是C#的代码实现。

02

修改布局

上面说了,MainPage是整个Demo程序的显示页面,我们在它原来的基础上做个简单的修改,加入一个新的Label行,

首先是Grid中的RowDefinitions里面多加一个Auto,然后下面Padding也多一个30

<Grid RowSpacing="25" RowDefinitions="Auto,Auto,Auto,Auto,Auto,*"Padding="{OnPlatform iOS='30,60,30,30,30', Default='30'}">

加入了一个新的Label标签,从它位置下别的组件的Grid.Row都数字加上1,

接下来在MainPage.xaml.cs的OnCounterClicked事件中加入刚才新加了Label,设置的数字再加10的显示。

using System;
using Microsoft.Maui.Controls;
using Microsoft.Maui.Essentials;namespace MauiHelloWorld
{public partial class MainPage : ContentPage{int count = 0;public MainPage(){InitializeComponent();}private void OnCounterClicked(object sender, EventArgs e){count++;CounterLabel.Text = $"Current count: {count}";VaccaeLabel.Text = $"Vaccae HaHa: {count + 10}";SemanticScreenReader.Announce(CounterLabel.Text);}}
}

在上面运行地方框架设置为.net6.0 windows,并且运行打勾项中设置Windows Machine

实现效果

Windows平台下的演示效果

Android平台

将框架改为.net6 - android,点击Android Emulator选择Android模拟器

由于我本身也有Android Studio,也创建过模拟器,所以界面中有显示两个,只不过默认都写着错误,点击错误进来后

显示的主要就是没有快照的存放路径,这里修改存放路径后再保存,就进入它原本的下载,解压的过程,等结束后即可启动

然后我就看了一下硬盘空间,无语的是C盘又给我用去了6个G,竟然不是和Android Studio共用模拟器吗?

紧张的C盘空间

将Android的模拟器启动起来后,运行的位置就变为模拟器的名字了,这个和Android Studio倒挺像

实现效果

总结

刚才就是Maui框架的Hello World使用,Window平台效果要比Winform好很多,不过在Android下运行,一是启动界面那个.Net的页面加载时间感觉有点长,然后虚拟的返回按钮不起作用,看来需要写事件捕获。对于我个人来说,由于自己也是做Android的,所以Android下还是用原生的比较方便。

扫描二维码

获取更多精彩

微卡智享

「 往期文章 」

Android BaseQuickAdapter3.0.4版本二级列表的使用及遇到的问题

Android Room数据库版本迁移的实战

关于Android录屏程序在Android10下的修改

VS2022 MAUI Hello World——Windows平台及Android平台效果相关推荐

  1. 开发者应如何看待iOS平台和Android平台

    随着智能手机和应用的发展,通过开发App变成百万富翁的新闻已经屡见不鲜,那么对于还没有加入进来的开发者或创业者,应如何看待iOS平台和Android平台呢?Dan Frommer给出了以下建议: 1. ...

  2. Unity的Windows游戏转Android平台的114514个坑

    打算把我的小破游从Windows转移到安卓平台,结果发现,到处是坑. Unity转安卓平台需要3个依赖,JDK.SDK\和NDK. 我的Unity版本是2021.1,首先我考虑的是升级到2021.2, ...

  3. 基于android的校园服务平台,基于android平台的校园助手软件的设计

    近些年来,随着互联网及其相关技术的不断发展,学校信息化建设已逐渐成为人们关注的焦点.教务管理是整个学校管理工作的核心,学校管理者需要科学地运用高效的管理手段管理其他工作人员的工作,从而使得学校的教务管 ...

  4. 设置IOS平台和Android平台APP的URL Scheme

    URL Scheme的作用 APP可以向手机操作系统注册一个 URL scheme,该 scheme 用于从浏览器或其他应用中启动本应用. 设置IOS平台的URL Scheme IOS应用在info. ...

  5. android社交软件。平台,基于Android平台的社交软件设计及实现.pdf

    24 7 计算机技术与发展 Vol. 24 No. 7 第 卷 第 期 2014 7 July 2014 年 月 COMPUTER TECHNOLOGY AND DEVELOPMENT 基于Andro ...

  6. anki ios android 同步,让记忆更轻松的Anki,支持Windows,Linux,iOS,Android平台

    Anki介绍 Anki是一个记忆辅助软件,它可以让记忆过程变得更加轻松容易.因为,相比传统方法他更加高效更加智能,利用它你可以大大降低你的学习时间,或者你可以在同样长的时间内学习更多的内容. 任何人如 ...

  7. EasyPlayer播放器全线开放:EasyPlayer RTSP版、RTMP版、Pro版、Windows平台、Android平台、iOS平台、H5版本

    从2012年EasyDarwin社区创立至今的很多年里,我们的团队.研发,比较依赖于SDK技术服务的方式,养活团队进行更加纵向和横向产品的研发,这也是一直以来EasyDarwin被经常诟病的地方,开源 ...

  8. Cocos2d-x3.1中使用万普平台实现Android平台广告添加

    http://www.2cto.com/kf/201409/339508.html 本文使用万普广告平台往Cocos2d-x3.1项目中添加广告.万普的SDK for Cocos2d-x功能挺全的,只 ...

  9. 用Kotlin开发android平台语音识别语义理解应用

    用Kotlin开发android平台语音识别,语义理解应用(olamisdk) 转载请注明CSDN博文地址:http://blog.csdn.net/ls0609/article/details/75 ...

最新文章

  1. php mysql两个表合并_php操作mysql两个数据库中表的数据同步
  2. 我眼中的Linux设备树(三 属性)
  3. Domino+Qucikplace+Sametime构建企业办公平台图文攻略(四)
  4. Linux下C编程实战
  5. ospf-cost-FR选路实验
  6. 前端学习(1521):vue-cli工具介绍
  7. PostgreSQL 空间处理函数
  8. 段选择符和段描述符的关系
  9. Java 代理访问http
  10. eclipse不能自动编译工程的解决方法
  11. 会议室预定模拟登陆网站
  12. 华泰证券高薪诚聘 技术大牛/运维平台架构师
  13. 《我是一只IT小小鸟》阅读笔记
  14. 【计算机组成与设计:硬件/软件接口】第三章:计算机的算术运算
  15. Java工作流引擎:jBPM、Activiti以及SWF
  16. 全球与中国雷达信标市场深度研究分析报告
  17. 北京航空航天大学计算机学院保研,北京航空航天大学计算机学院(专业学位)计算机技术保研...
  18. 优雅的落地个人所得税的计算
  19. OpenCV每日函数 结构分析和形状描述符(8) fitLine函数 拟合直线
  20. 阿里云服务器1核1G内存1M带宽能放几个网站及多少流量

热门文章

  1. Java中com.jcraft.jsch.JSch讲解
  2. 【C#】求最大公约数
  3. 小孩子初次办身份证需携带什么资料?年龄有要求吗?
  4. MySQL由身份证衍生出的统计数据
  5. Linux文件目录操作命令-more命令
  6. 一文解析FPGA在数字电源控制器的应用思路
  7. Dubbox框架使用手册
  8. C#图片加载与内存释放
  9. 8b10b编码源码 matlab,8b/10b编码技术系列(一):Serdes、CDR、K码
  10. BGP------BGP工作原理、BGP属性及选路原则