目录
WPF(Windows Presentation Foundation)是一种用于构建Windows应用程序的用户界面框架,由Microsoft于2006年推出。它是.NET Framework 3.0的一部分,为开发人员提供了一种基于XAML(可扩展应用程序标记语言)的声明式编程模型,用于创建丰富、交互式的图形用户界面。
WPF的起源可以追溯到Microsoft对Windows用户界面技术的演进。在之前,Windows应用程序主要使用WinForms(Windows窗体)技术来构建用户界面,但它受到了一些限制,尤其是在创建复杂、高度定制的界面方面。
WPF的出现是为了解决这些问题,并提供更加灵活、强大的界面开发工具。它引入了许多新概念,包括分离界面和逻辑的MVVM(Model-View-ViewModel)模式、强大的样式和模板系统、分辨率无关的布局等。
WPF的起源可以总结为以下几个方面:
XAML的引入: XAML是一种XML(可扩展标记语言),用于定义WPF应用程序的用户界面。它使得开发人员可以将界面和行为分离,从而更好地实现界面设计和开发人员之间的协作。
更强大的图形渲染能力: WPF引入了DirectX技术,使得开发人员可以利用硬件加速的图形渲染功能来创建更加吸引人的用户界面,包括3D图形和动画等。
数据绑定和样式模板: WPF提供了强大的数据绑定机制,使得界面和数据模型可以轻松地进行交互。同时,WPF还引入了样式和模板的概念,使得界面的外观和行为可以轻松地进行自定义和重用。
分辨率无关的布局: WPF采用了一种称为“矢量图形”的方式来定义界面,使得界面可以根据不同的分辨率和大小进行自动缩放和调整,从而实现了分辨率无关的布局。
总的来说,WPF的起源可以追溯到对传统Windows应用程序开发模型的改进和完善,它为开发人员提供了更加灵活、强大的工具和技术,使得他们可以更加轻松地创建出色的用户界面。
Qt (C++):
WPF (C#):
总的来说,Qt和WPF各有其适用场景。Qt适用于对性能要求较高,需要跨平台支持,并且愿意为开发效率付出一些代价的场景。而WPF适用于在Windows平台上进行开发,并且对开发效率有一定要求的场景。
c#有两种方式写桌面应用程序:WPF、winform。我们来看看它们有什么不同。
技术架构:
控件属性设置:
控件修改复杂性:
入门难易程度:
所以winform有点过时了,咱们要无脑冲WPF。
正所谓“工善其事 必先利其器”,接下来我们来安装一下c#的开发工具。
Visual Studio 2022是微软推出的一款集成开发环境(IDE),用于开发各种类型的应用程序,包括桌面应用、Web应用、移动应用、云服务等。它是Visual Studio系列的最新版本,提供了一系列新功能和改进,旨在提高开发人员的生产力和体验。
下载VS2022的官方网址:Visual Studio 2022 IDE - 适用于软件开发人员的编程工具
目前VS2022提供了3个版本,分别是:
仅学习使用的话,Community社区版就足够了。
第一步,点击上方链接,选择合适的版本,下载VisualStudioSetup.exe并运行。
第二步,接下来,勾选下图的选项,等待Visual Studio Installer 为我们下载安装程序。

第三步,安装完后,无脑操作就OK了
在学习一门新语言时,我们以一个HelloWorld程序来创建第一个WPF应用程序
第一步,启动VS2022软件后,点击创建新项目。

第二步,在搜索框搜索wpf,然选择第一个wpf应用程序。

第三步,修改项目名称和位置,然后下一步。

第四步, 默认就行,直接创建

第五步,修改MainWindow.xaml代码
- <Window x:Class="WpfApp2.MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:local="clr-namespace:WpfApp2"
- mc:Ignorable="d"
- Title="学习之路" Height="450" Width="800">
- <Grid>
- <Button Content="学习WPF" Margin="0,193,382,0" Click="Button_Click" Height="19" VerticalAlignment="Top" HorizontalAlignment="Right" Width="54"/>
- Grid>
- Window>
第六步,修改MainWindow.xaml.cs代码
- using System.Windows;
-
- namespace WpfApp2
- {
- ///
- /// Interaction logic for MainWindow.xaml
- ///
- public partial class MainWindow : Window
- {
- public MainWindow()
- {
- InitializeComponent();
- }
-
- private void Button_Click(object sender, RoutedEventArgs e)
- {
- MessageBox.Show("Hello, World!");
- }
- }
- }
这两段代码实现了点击按钮后弹出 "Hello, World!" 的功能。
在WPF中,App.xaml和Application类都是用于管理应用程序级别的资源和事件的重要组件,但它们具有不同的功能和作用。
App.xaml:
Application类:
总的来说,App.xaml和Application类都是WPF应用程序中管理应用程序级别资源和事件的重要组件。App.xaml用于定义应用程序级别的资源和样式,而Application类用于管理应用程序的初始化、事件处理和状态
在WPF中,Application类的生命周期包括以下事件和阶段:
这只是Application的生命周期,事实上,由于Application总是会启动一个界面(窗体),而窗体也会有自己的生命周期。
在WPF中,Window窗体的生命周期包括以下主要阶段和事件: