介绍

Xamarin.Forms是一个开源UI框架,Xamarin.Forms允许开发人员从单个共享代码库构建Android,iOS和Windows应用程序

Xamarin.Forms允许开发人员使用XAML和C#后台代码创建用户界面,这些界面在每个平台上均被渲染为高性能的本机控件

1、Xamarin.Forms适用于谁:
Xamarin.Forms适用于具有以下目标的开发人员:

  • 跨平台共享UI布局和设计。
  • 跨平台共享代码,测试和业务逻辑。
  • 使用Visual Studio在C#中编写跨平台应用程序。

2、Xamarin.Forms如何工作

Xamarin.Forms提供了一个一致的API,用于跨平台创建UI元素,该API可以用XAML或C#实现,并且支持诸如Model-View-ViewModel(MVVM)之类的模式的数据绑定。

在运行时,Xamarin.Forms利用平台渲染器将跨平台的UI元素转换为Android,iOS和UWP上的本机控件,允许开发人员获得本机的外观,感觉和性能,同时实现跨平台共享代码的好处。

Xamarin.Forms应用程序通常包含一个共享的.NET Standard库和各个平台项目。 共享库包含XAML或C#视图以及任何业务逻辑,例如服务,模型或其他代码。 平台项目包含应用程序需要的任何特定于平台的逻辑或程序包。

Xamarin.Forms使用Xamarin在各个平台上本地运行.NET应用程序。

3、其他工具
Xamarin.Forms具有庞大的NuGet软件包生态系统,可以为应用程序添加各种功能。 本节介绍了一些常用的NuGet软件包。

3.1 Xamarin.Essentials

Xamarin.Essentials是一个为本地设备功能提供跨平台API的库,像Xamarin本身一样,Xamarin.Essentials是一种抽象,它简化了访问本机实用程序的过程。 Xamarin.Essentials提供的一些实用工具示例包括:

  • Device info
  • File system
  • Accelerometer
  • Phone dialer
  • Text-to-speech
  • Screen lock

3.2 Shell
Xamarin.Forms Shell通过提供大多数应用程序所需的基本功能来降低移动应用程序开发的复杂性。 Shell提供的功能的一些示例包括:

  • Common navigation experience
  • URI-based navigation scheme
  • Integrated search handler

3.3 Platform-specifics

Xamarin.Forms提供了一个通用API,可跨平台呈现本机控件,但是特定平台可能具有其他平台上不存在的功能。 例如,Android平台具有用于ListView中的快速滚动的本机功能,但iOS没有。 Xamarin.Forms特定于平台的功能使您可以利用仅在特定平台上可用的功能,而无需创建自定义渲染器或效果。

Xamarin.Forms包括针对各种平台特定功能的预构建解决方案。 有关更多信息,请参见:

3.4 Material Visual

Xamarin.Forms Material Visual用于将Material Design规则应用于Xamarin.Forms应用程序。 Xamarin.Forms Material Visual利用Visual属性将自定义渲染器有选择地应用于UI,从而使应用程序在iOS和Android上具有一致的外观。

Xamarin.Forms 入门的更多相关文章

  1. Xamarin.Forms入门学习路线

    Xamarin 介绍 Xamarin是一套跨平台解决方案,目的是使用C#语言创造原生的iOS,Android,Mac和Windows应用. Xamarin的三个优势: Xamarin App拥有原生A ...

  2. Xamarin.Forms入门-使用 Xamarin.Forms 来创建跨平台的用户界面

    Xamarin.Forms 是一个跨平台的.基于原生控件的UI工具包,开发人员可以轻松的创建适用于 Android,iOS 以及 Windows Phone的用户界面.Xamarin.Forms 通过 ...

  3. C#使用Xamarin开发可移植移动应用(1.入门与Xamarin.Forms页面),附源码

    前言 什么是Xamarin? Xamarin始创于2011年,旨在使移动开发变得难以置信地迅捷和简单. Xamarin的产品简化了针对多种平台的应用开发,包括iOS.Android.Windows P ...

  4. 使用Xamarin.Forms跨平台开发入门 Hello,Xamarin.Forms 第一部分 快速入门

    本文介绍了如何使用VisualStudio开发Xamarin.Forms 应用程序和使用Xamarin.Forms开发应用的基础知识,包括了构建和发布Xamarin.Forms应用的工具,概念和步骤. ...

  5. Xamarin.Forms跨平台开发入门-第二部分:深入解析

    英文原文: https://developer.xamarin.com/guides/xamarin-forms/getting-started/hello-xamarin-forms/deepdiv ...

  6. Xamarin.Forms快速入门-深入探讨

    官网链接 项目介绍 以Notes项目为例,The Notes application consists of one solution containing four projects, as sho ...

  7. Xamarin.forms 自定义tabview控件

    一 问题描述 forms本身ui代码是翻译为平台原生代码,forms按照xaml技术进行对android和ios两种ui模型进行公共抽象出了几种page和view,在空杯博客已经有详细介绍 http: ...

  8. 使用MvvmCross框架实现Xamarin.Forms的汉堡菜单布局

    注:本文是英文写的,偷懒自动翻译过来了,原文地址:Implementing MasterDetail layout in Xamarin.Forms by MvvmCross 欢迎大家关注我的公众号: ...

  9. 菜鸟的Xamarin.Forms前行之路——绪言

    作者入门时间不是很久,差不多一年,期间自学的东西比较杂乱,到目前为止,编程方面的知识比较薄弱.之所以做这个系列,也只是因为做了两个月的Xamarin.Forms方面的东西,由于资料和自身实力的原因,过 ...

随机推荐

  1. 查询abap 程式应用到系统表table

    *&---------------------------------------------------------------------* *& Report ZMM_TEXT ...

  2. qt5信息提示框QMessageBox用法(很全)

    information QMessageBox::information(NULL, "Title", "Content", QMessageBox::Yes ...

  3. 【题解】Luogu P5300 [GXOI/GZOI2019]与或和

    原题传送门 我们珂以拆位,拆成一个个0/1矩阵 贡献珂以用全0,全1的子矩阵的个数来计算 全0,全1的子矩阵的个数珂以用悬线法/单调栈解决 #include <bits/stdc++.h> ...

  4. 解决fiddler不能抓取firefox浏览器包的问题(转)

    转自:https://blog.csdn.net/jimmyandrushking/article/details/80819103

  5. C#月份和日期转大写和C#集合分组

    //日转化为大写 private static string DaytoUpper(int day, string type) { if (day < 20) { return MonthtoU ...

  6. (转)微服务_创建一个简单的Eureka注册中心

    原文地址:https://www.cnblogs.com/lplshermie/p/9105329.html 微服务和分布式已经成了一种极其普遍的技术,为了跟上时代的步伐,最近开始着手学习Spring ...

  7. sdcard不可执行.

    Possibly you placed it on your sdcard -- which is mounted with the noexec flag. You either need to m ...

  8. Dockerfile 基本命令

    1. 前言 Dockerfile 是用来构建自定义 Docker 镜像的文本文档.我们通过docker build 命令用于从Dockerfile 文件构建镜像.如果你要构建自定义镜像,Dockerf ...

  9. 【android,eclipse解决】eclipse insert "}" to complete ClassBodyR.java

    Android开发:eclipse搭建后,如果出现 eclipse insert "}" to complete ClassBodyR.java/appcompat_v7/gen/ ...

  10. testNG 注释实例

    1. 单个测试用例文件 新建TestDBConnection.java文件 import org.testng.annotations.*; public class TestDBConnection ...