Xamarin入门笔记(Xamarin已经被MAUI取代)

06-01 1526阅读

 初级代码游戏的专栏介绍与文章目录-CSDN博客

Xamarin入门

  1. 概述

    1. 环境

Android开发环境比较简单,自带模拟器,实体机打开开发者模式即可。

iOS开发环境比较复杂,必须搭配Mac电脑,Windows连接Mac开发可能有问题(比如发现选取文件功能无法返回),建议直接使用Mac,项目文件是兼容的。

iOS开发必须有付费开发者账号,免费的只能用免费预配,非常困难,微软都不建议使用。模拟器测试不需要付费开发者账号,但是不能实体机安装意义不大。

Mac上必须安装XCode和XCode命令行工具,不需要额外配置。如果使用Windows开发,Windows可以是虚拟机,但是反应会比较迟缓(即使非VS操作很流畅),微软不建议这样做,16G内存的MBP实测确实如此。

本文是学习微软教程的笔记(Xamarin 入门 - Xamarin | Microsoft Docs)。

本文基于Visual Studio Community 2019 for Mac。

    1. Xamarin基本功能

Xamarin开发使用C#,支持Android、iOS、Windows平台(下一代技术MAUI已经由VS2022preview提供,支持mac应用,开始写作此文时仅可在Windows上开发。MAUI代码大体上兼容Xamarin。)。

支持调用OC、java、C、C++功能。

跨平台代码平均占90%。

Xamarin. Essentials,本机设备功能

Xamarin. Forms,UI框架

  1. 项目基本结构

    1. 目录结构

目录结构为:

解决方案

   项目(共享项目)

   项目.iOS

   项目.平台

解决方案下分多个项目,无后缀的是共享部分,其余为每个平台的项目。

每个xaml文件都有一个对应的xaml.cs文件,VS将xaml.cs藏在xaml下面,但文件目录里是并列的。Xaml文件描述界面,xaml.cs则是对应的代码。

    1. 项目.iOS

      1. main.cs和AppDelegate.cs

程序从main.cs入口,关键语句:

UIApplication.Main(args, null, typeof(AppDelegate))

    此句引用到AppDelegate.cs里定义的类AppDelegate,关键代码:

    在FinishedLaunching()里调用

LoadApplication(new App())

此句引用共享项目里定义的App类。

    1. 共享项目

      1. AssemblyInfo.cs

装配信息,程序集级别的项目属性。

      1. App.xaml

应用程序类,处理应用程序生命周期事件。

关键代码:

MainPage = new AppShell()

此句引入AppShell。

      1. AppShell.xaml

控制视觉层次。

Xamarin入门笔记(Xamarin已经被MAUI取代)    这里定义了TabBar,包含两个视图页面,cs代码里没有实质内容。NotesPage和AboutPage是自定义的视图页面。

      1. 自定义的视图页面

自定义的视图页面包含了主要的功能。

  1. 示例代码

    1. 下载示例

从微软教程的“下载示例”链接入手,打开链接找到“Browse code”,点击后进入github页面,这是这个子项目的页面,点击左边第一个tab页“code”,注意这里跳转到了整个教程示例的根目录,再点右侧按钮“code”克隆或下载zip包,得到所有示例代码。

    1. 示例代码目录结构

入门教程位于GetStarted目录:

FirstApp,首个应用

Notes,快速入门

Tutorials目录,教程的每个项目

Xamarin入门笔记(Xamarin已经被MAUI取代)

其余目录:

XamlSamples,XAML的综合示例,演示了各种效果,对应《XMAL基础》章节

FormsGallery,控件示例,对应《XAML控件》章节。注意,这个示例似乎有些问题,修改了代码却没有效果。

  1. 布局

    1. StackLayout堆积布局

Margin,间距,与相邻元素之间的距离

Padding,填充,与子元素的距离,体现为内部的四边空白

  1. 界面元素

    1. Label标签

VerticalOptions:纵向布局

复杂的多格式文本:

   

       

           

           

           

       

   

FormattedText 属性是 FormattedString 类型,包含一个或多个 Span 实例。

    1. Button按钮

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码