Windows Phone 平台已于 2025 年正式停止支持,微软也已不再提供官方更新和开发工具。 从商业和职业发展的角度来看,学习 Windows Phone 开发已不具备实际意义。

出于怀旧、学习历史技术或维护旧项目的目的,了解 Windows Phone 开发仍然是一件有趣的事情,这份教程将主要基于其最主流和成熟的开发技术——Windows Phone 8.1 (XAML/C#)。
第一部分:背景与概念
在开始之前,我们先了解一些基本概念。
Windows Phone 的发展历程
- Windows Phone 7 (WP7): 第一个现代版本的 Windows Phone,使用了全新的“Metro”设计语言(后更名为“Microsoft Design Language”),开发技术主要是 Silverlight 和 XNA。
- Windows Phone 8 (WP8): 架构上从 Windows CE 升级到 Windows NT 内核,与 Windows 8 共享部分核心,开发技术以 XAML/C# 为主,性能和功能大幅提升。
- Windows Phone 8.1 (WP8.1): 这是最重要、功能最全的版本,它引入了“通用 Windows应用”(Universal Windows App, UWP)的雏形,允许开发者用同一套代码库为 Windows Phone 和 Windows 8.1/10 PC 开发应用,我们本教程将重点介绍这个版本。
- Windows 10 Mobile (W10M): Windows 10 的移动端版本,完全基于 UWP 平台,它试图统一所有 Windows 设备,但由于市场原因,最终未能成功。
核心开发技术栈
对于 Windows Phone 8.1,主要有两种开发方式:
- XAML + C# (推荐): 这是微软主推的方式,类似于开发桌面应用,使用 XAML (eXtensible Application Markup Language) 进行界面布局,用 C# 编写业务逻辑,这是最成熟、资源最丰富的技术。
- HTML + JavaScript: 允许开发者使用 Web 技术来构建原生应用,类似于早期的 Windows 8 Store App。
本教程将专注于 XAML + C#。

第二部分:开发环境搭建
由于官方工具已停止下载,您需要寻找历史版本的安装包。
所需软件
-
Visual Studio 2025 Update 3 (VS2025):
- 这是支持 Windows Phone 8.1 开发的最后一个稳定版本的 Visual Studio。
- 下载地址: 您可以在互联网上搜索 "Visual Studio 2025 Update 3 ISO" 找到历史镜像,请确保来源可靠。
-
Windows Phone 8.1 SDK:
- 这个 SDK 包含了 Windows Phone 模拟器、设备 SDK 和必要的工具链。
- 注意: 在安装 VS2025 时,请务必在“安装程序”中选择“自定义”安装,然后勾选 “Windows Phone SDK 8.1” 或类似的组件,如果忘记安装,也可以单独下载这个 SDK 并进行安装。
-
Windows Phone 8.1 模拟器:
- SDK 会自动包含模拟器,它会在您的 PC 上创建一个虚拟的 Windows Phone 设备,方便您调试应用。注意: 运行模拟器需要您的 CPU 支持 SLAT (Second Level Address Translation) 技术且在 BIOS 中已开启虚拟化技术。
安装步骤
- 以管理员身份运行
vs_ultimate.exe(或您下载的 VS 安装包)。 - 选择“自定义”安装。
- 在组件列表中,展开“Visual C#”和“Cross Platform Mobile Development”,确保勾选了以下内容:
- Windows and Web Development (包含一些基础工具)
- Windows Phone 8.1 SDK
- Windows Phone Emulator
- 选择安装路径,然后点击“安装”,这个过程可能需要较长时间。
第三部分:创建第一个 "Hello World" 应用
安装好环境后,我们来创建一个简单的项目。
步骤 1: 创建新项目
- 打开 Visual Studio 2025。
- 选择“文件” -> “新建” -> “项目”。
- 在“新建项目”对话框中,选择“模板” -> “Visual C#” -> “Windows Phone”。
- 选择“Windows Phone 空白应用 (Windows Phone 8.1)”模板。
- 为项目命名(
HelloWP),选择一个位置,然后点击“确定”。
步骤 2: 理解项目结构
创建项目后,您会看到几个关键文件:
MainPage.xaml: 这是您应用的主界面文件,使用 XAML 语言编写。MainPage.xaml.cs: 这是与MainPage.xaml关联的 C# 代码文件,用于处理逻辑。App.xaml: 应用的全局资源和启动配置。Package.appxmanifest: 应用的清单文件,定义了应用的名称、图标、 capabilities(如访问网络、相机等)和启动页面等信息。
步骤 3: 修改界面
- 在“解决方案资源管理器”中双击
MainPage.xaml打开它。 - 默认情况下,您会看到一个包含
Grid布局的面板。 - 在
<Grid>标签内,添加一个TextBlock控件,用于显示 "Hello, Windows Phone!"。
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<TextBlock Text="Hello, Windows Phone!"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="36"
Foreground="White"/>
</Grid>
Text: 显示的文本内容。HorizontalAlignment和VerticalAlignment: 设置文本在水平和垂直方向上的对齐方式为“居中”。FontSize: 字体大小。Foreground: 文本颜色。
步骤 4: 运行和调试
- 在 Visual Studio 顶部,确保目标设备选择为“模拟器”(
Windows Phone 8.1 Emulator ( WVGA 4 inch ))。 - 按下
F5键或点击“开始调试”按钮(绿色三角形)。 - Windows Phone 模拟器将会启动,并自动部署和运行您的应用。
- 您将在模拟器屏幕上看到居中显示的白色文字 "Hello, Windows Phone!"。
恭喜!您已经成功创建了第一个 Windows Phone 应用。
第四部分:核心概念与进阶
要开发一个真正的应用,您需要了解更多概念。
布局
XAML 提供了多种布局容器,用于组织和排列控件:
Grid: 网格布局,最常用,可以将页面划分为行和列,非常适合构建复杂的界面。StackPanel: 栈式布局,将子元素按垂直或水平方向一个接一个地堆叠。RelativePanel: 相对布局,允许子元素相对于彼此或面板边缘进行定位(在 WP8.1 中引入,非常强大)。ScrollViewer: 滚动视图,当内容超出可视区域时,允许用户滚动查看。
页面导航
Windows Phone 应用通常由多个页面组成,页面导航通过 Frame 和 Page 控件实现。
Frame: 容纳Page控件,负责管理导航历史栈(可以理解为浏览器的“前进”和“后退”)。Page: 一个独立的屏幕,比如主页、设置页、详情页等。
如何进行页面跳转?
假设您要从 MainPage.xaml 跳转到 SecondPage.xaml。
-
在项目中添加一个新页面:右键项目 -> “添加” -> “新建项” -> “Windows Phone 空白页”。
-
在
MainPage.xaml中添加一个按钮:<Button Content="Go to Second Page" Click="Button_Click" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,100,0,0"/> -
在
MainPage.xaml.cs中编写按钮的点击事件处理程序:using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; // ... 在 MainPage 类中 private void Button_Click(object sender, RoutedEventArgs e) { // 创建 SecondPage 的实例 SecondPage secondPage = new SecondPage(); // 使用 Frame 进行导航 this.Frame.Navigate(typeof(SecondPage)); }
数据绑定
数据绑定是 XAML 的核心,它允许您将 UI 控件与后台数据源连接起来,实现数据和 UI 的自动同步。
DataContext: 每个控件都有一个DataContext,它是数据绑定的源头,一个页面的DataContext会被设置为一个包含数据的 C# 类(称为 ViewModel)。{Binding}: XAML 中的标记扩展,用于绑定到DataContext的属性。
简单示例:
-
在
MainPage.xaml.cs中设置数据上下文:public sealed partial class MainPage : Page { public string WelcomeMessage { get; set; } = "Welcome to my app!"; public MainPage() { this.InitializeComponent(); // 将页面的 DataContext 设置为自身,这样 XAML 就能访问 WelcomeMessage 属性 this.DataContext = this; } } -
在
MainPage.xaml中使用绑定:<TextBlock Text="{Binding WelcomeMessage}" FontSize="24" HorizontalAlignment="Center" VerticalAlignment="Center"/>当
WelcomeMessage属性的值改变时,TextBlock的文本会自动更新。
通用 Windows 应用
这是 Windows Phone 8.1 的一个重要特性,通过创建一个“共享项目”(Shared Project),您可以将代码(如 ViewModel、数据模型、工具类)同时用于 Windows Phone 和 Windows 应用商店应用,而只对 UI(XAML 文件)进行少量差异化处理。
第五部分:学习资源与总结
由于平台已停止,资源相对有限,但一些社区和文档仍然可用。
官方文档存档
- Windows Phone 开发中心 (归档): https://docs.microsoft.com/en-us/previous-versions/windows/apps/dn642093(v=vs.105) - 这是微软官方文档的存档,包含了最权威的 API 参考、教程和指南。
社区与教程
- MSDN 论坛 (归档): https://social.msdn.microsoft.com/Forums/windowsapps/en-US/home?forum=wpdevelop - 可以在这里搜索历史问题和答案。
- Stack Overflow: 搜索
windows-phone-8.1标签,有大量开发者提出和解答过的问题。 - GitHub: 搜索
windows-phone-8.1-sample或wp8.1,可以找到一些开源的示例项目。
Windows Phone 开发是一个充满历史意义的领域,它的“一次开发,多端运行”(UWP 的前身)理念和对设计语言的追求,深刻影响了后来的移动和桌面应用开发。
虽然今天学习它无法用于商业项目,但通过它,您可以:
- 学习 XAML 这种强大的声明式 UI 技术。
- 理解 MVVM (Model-View-ViewModel) 设计模式在移动端的应用。
- 了解微软在移动平台上的技术演进历程。
希望这份教程能帮助您开启 Windows Phone 开发的怀旧之旅!
