Xamarin Studio 教程:从入门到实践
第一部分:前言 - 什么是 Xamarin Studio?
Xamarin Studio 是一个由微软(原Xamarin公司)开发的集成开发环境,专门用于使用 C# 和 .NET 框架构建跨平台移动应用、桌面应用和 Web 应用。

核心特点:
- 跨平台开发:一套代码库,可以同时为 iOS、Android 和 macOS(通过 Xamarin.Mac)构建原生应用。
- C# 和 .NET:利用强大的 C# 语言和成熟的 .NET 生态系统,拥有现代化的语言特性和丰富的类库。
- 原生性能:虽然代码是共享的,但最终会编译成各平台的原生代码(iOS 编译为 AIL,Android 编译为 IL,通过运行时 JIT 编译为机器码),因此性能接近原生开发。
- 原生 UI:使用各平台的原生 UI 控件(如 iOS 的 UIKit 和 Android 的 Android.Views),确保应用的外观和行为与原生应用无异。
- 原生 API 访问:可以无缝调用 iOS 和 Android 的所有原生 API,实现平台特定的功能。
第二部分:环境搭建
在开始之前,你需要准备好开发环境。
系统要求:
- Windows: Windows 10 (64-bit)
- macOS: macOS 10.14 (Mojave) 或更高版本
安装步骤:

-
下载 Visual Studio for Mac:
- Xamarin Studio 已经完全集成到了 Visual Studio for Mac 中,你需要下载的是 Visual Studio for Mac。
- 访问官方下载页面:https://visualstudio.microsoft.com/vs/mac/
- 下载 Community 版本,对于个人开发者和小型团队来说,它完全免费。
-
安装 Visual Studio for Mac:
- 运行下载的安装包。
- 在安装向导中,务必勾选以下工作负载:
- .NET Multi-platform App UI development:这是开发跨平台应用的核心,包含了 Xamarin SDK 和 .NET MA SDK。
- .NET Desktop development (可选):如果你也想开发桌面应用。
- ASP.NET and web development (可选):如果你也想开发 Web 应用。
- 选择安装位置,然后等待安装完成,安装过程可能需要一些时间,因为它会下载大量 SDK 和工具。
-
验证安装:
- 安装完成后,启动 Visual Studio for Mac。
- 在欢迎界面,你可以看到 "Create a new project" (新建项目) 的选项。
- 如果你能成功创建一个 Xamarin 项目,说明环境已经搭建好了。
第三部分:创建你的第一个 Xamarin.Forms 应用
我们将创建一个经典的 "Hello, World!" 应用,但使用更现代的 Xamarin.Forms 框架,Xamarin.Forms 允许你用一套 XAML/C# 代码来定义 UI,然后自动渲染成各平台的原生 UI。

创建新项目
- 启动 Visual Studio for Mac。
- 选择 "File" -> "New Solution" (文件 -> 新建解决方案)。
- 在模板选择窗口中,选择:
- Multi-platform -> App
- 在右侧选择 Xamarin.Forms,然后选择 Blank Form (空白表单)。
- 点击 "Next"。
配置项目
- Project Name: 给你的项目起个名字,
HelloWorldApp。 - Organization Identifier: 通常使用反向域名格式,
com.yourcompany。 - Location: 选择项目保存的位置。
- 确保勾选了 .NET 6.0 (Long Term Support) 或更高版本。
- 点击 "Next"。
选择目标平台
- 在下一个窗口中,你可以选择要支持的平台,对于初学者,可以只勾选 iOS 和 Android。
- 点击 "Create"。
Visual Studio for Mac 会为你创建一个包含多个项目的解决方案:
HelloWorldApp: 共享的 .NET 6.0 类库项目,包含你的 UI 逻辑和代码。HelloWorldApp.Android: Android 平台特定的项目。HelloWorldApp.iOS: iOS 平台特定的项目。
了解项目结构
- MainPage.xaml: 这是你的应用主界面的 XAML 文件,XAML 是一种声明式语言,用于设计 UI。
- MainPage.xaml.cs: 这是 C# 代码后置文件,用于处理 MainPage 的逻辑。
- App.xaml/App.xaml.cs: 应用的入口点,负责启动和导航。
编写和运行代码
-
打开
MainPage.xaml文件,你会看到默认的 XAML 代码:<ContentPage xmlns="http://xamarin.com/schemas/2025/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="HelloWorldApp.MainPage"> <StackLayout> <Label Text="Welcome to Xamarin.Forms!" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand" /> </StackLayout> </ContentPage> -
修改 Label 文本:将
Text属性的值改为 "Hello, Xamarin Studio!"。<Label Text="Hello, Xamarin Studio!" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand" /> -
运行应用:
- 在 Visual Studio for Mac 顶部,选择你想要运行的目标平台(一个 Android 模拟器或一个 iOS 模拟器)。
- 点击绿色的 "Run" 按钮(一个三角形图标)。
- Visual Studio 会编译代码,并在你选择的模拟器中启动应用。
恭喜! 你已经成功运行了你的第一个 Xamarin.Forms 应用,你应该能在模拟器屏幕中央看到 "Hello, Xamarin Studio!" 的文字。
第四部分:核心概念与常用控件
Xamarin.Forms 的核心思想是 MVVM (Model-View-ViewModel) 架构模式,但初学者可以先从直接操作 UI 开始。
常用布局
- StackLayout: 将子控件水平或垂直地堆叠起来,最常用的布局。
Orientation="Vertical"(默认) 或Horizontal。
- Grid: 类似于 HTML 的表格,可以将控件放置在行和列中。
- AbsoluteLayout: 使用精确的坐标来放置子控件。
- RelativeLayout: 根据相对于其他控件或父容器的位置来放置子控件。
常用控件
- Label: 显示只读文本。
- Button: 可点击的按钮。
- Entry: 单行文本输入框。
- Editor: 多行文本输入框。
- Image: 显示图片。
- ListView: 用于显示一个可滚动的项目列表。
事件处理 - 示例:点击按钮改变文本
-
在
MainPage.xaml中,添加一个Entry和一个Button。<ContentPage ...> <StackLayout Padding="20, 40, 20, 20"> <Entry x:Name="nameEntry" Placeholder="请输入你的名字" /> <Button x:Name="helloButton" Text="点击问候" Clicked="OnHelloButtonClicked" Margin="0, 20, 0, 0" /> <Label x:Name="resultLabel" Text="" FontSize="Large" HorizontalOptions="Center" VerticalOptions="CenterAndExpand" /> </StackLayout> </ContentPage>x:Name="nameEntry":给控件命名,方便在 C# 代码中引用。Placeholder:输入框内的提示文本。Clicked="OnHelloButtonClicked":当按钮被点击时,调用OnHelloButtonClicked这个 C# 方法。
-
切换到
MainPage.xaml.cs文件,添加事件处理方法:using System; using Xamarin.Forms; namespace HelloWorldApp { public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); } private void OnHelloButtonClicked(object sender, EventArgs e) { string name = nameEntry.Text; if (!string.IsNullOrEmpty(name)) { resultLabel.Text = $"你好, {name}! 欢迎来到 Xamarin 世界!"; } else { resultLabel.Text = "请先输入你的名字。"; } } } } -
运行应用,在输入框中输入名字,然后点击按钮,你会看到标签上的文字发生了变化。
第五部分:高级主题与资源
当你熟悉了基础后,可以探索更高级的主题:
- MVVM 架构:学习如何使用
INotifyPropertyChanged接口、Command类以及MVVM Light、MvvmCross等第三方库来分离 UI 和业务逻辑,使代码更易于测试和维护。 - 依赖服务:当你需要调用平台特定的 API(iOS 的 HealthKit 或 Android 的指纹识别)时,可以使用依赖服务,你定义一个接口,然后在每个平台项目中实现该接口。
- 页面导航:学习如何在不同的页面之间进行导航,
Navigation.PushAsync(new SecondPage())。 - 数据绑定:这是 MVVM 的核心,学习如何将 UI 控件的属性(如
Label.Text)与 ViewModel 的属性(如UserName)进行绑定,实现数据的自动同步。 - 自定义渲染器:如果你需要完全控制某个特定控件的外观或行为,可以创建自定义渲染器,这需要你深入到原生代码(iOS 的 Swift/Objective-C 或 Android 的 Java/Kotlin)。
推荐资源:
- 官方文档:Microsoft Learn - Xamarin - 最权威、最全面的学习资料。
- Microsoft Build 演讲:在 YouTube 上搜索 "Microsoft Xamarin",可以找到大量高质量的技术分享。
- 社区:Stack Overflow、GitHub、Xamarin 开发者论坛。
第六部分:总结与未来
Xamarin Studio (现为 Visual Studio for Mac) 是一个功能强大且成熟的跨平台开发工具,它让 .NET 开发者能够利用自己的 C# 技能,高效地构建高质量的跨平台移动应用。
重要提示:.NET MAUI
微软正在推出新一代的跨平台框架 .NET MAUI (Multi-platform App UI),它整合了 Xamarin.Forms 和 Xamarin.Essentials,并进行了大量优化,是 Xamarin 的直接继承者。
- 现状:Xamarin 仍受支持,但所有新功能都将集中在 .NET MAUI 上。
- 建议:对于新项目,强烈建议直接学习并使用 .NET MAUI,其 API 与 Xamarin.Forms 非常相似,迁移成本不高,本教程中的许多概念(如 XAML, MVVM, 常用控件)在 .NET MAUI 中同样适用。
希望这份教程能帮助你顺利开启 Xamarin 之旅!祝你编码愉快!
