Skip to content
0

WinForms

UI框架

UIWinFormsWinUI3WPFUWP.NET MAUI
跨平台××××
开发语言C#、VBC#、C++C#、VBC#、C++、VBC#
UI语言代码XAMLXAMLXAMLXAML/代码
UI设计器××
适用场景传统桌面现代化桌面复杂企业级应用跨设备跨平台移动和桌面
  • WinForms:最早的桌面应用开发框架,易于学习和使用,设计风格较为传统,缺乏现代化 UI 元素和动画效果。
  • WinUI3:微软最新推出的 UI 框架,基于 UWP 和 Win32,使用 Fluent Design System ,致力于为 Win10 和 Win11 应用程序提供现代化的用户界面。
  • WPF:支持数据绑定、MVVM模式,提供强大的图形处理能力,包括2D和3D图形、动画、模板等,适用于复杂桌面应用。
  • UWP:微软的通用 Windows 平台,适用于 Windows 10/11、Xbox、HoloLens 等设备。
  • .NET MAUI:现代化跨平台的 UI 框架。

布局

注意

.Net Framework 4.8 以及之前的版本在高分辨率(比如4K)且进行缩放的显示器下,设计的布局和运行时的布局可能会有差异,尤其是带有固定值的布局,如 SplitContainer 中的 SplitterDistance 属性。

如果是新项目,最好选择 .Net >= 6.0 的版本开发。

参考文档

边界布局

  • Anchor属性:定义某个控件绑定到容器的边界。当控件锚定到某个容器的边缘时,控件边缘与容器边缘之间的距离将保持不变。注意:Anchor 属性只能锚定直接父容器,不能锚定其它控件。
  • Dock 属性:一般配合 Panel 使用。
Dock可选值位置设计时行为
Top靠上宽度自适应,高度可手动调整
Bottom靠下宽度自适应,高度可手动调整
Fill填充整个区域宽度和高度均自适应,无法手动调整
Left靠左高度自适应,宽度可手动调整
Right靠右高度自适应,宽度可手动调整

流式布局

FlowLayoutPanel容器,类似 CSS 中的 flexbox 布局。属性 FlowDirection 可调整方向。

网格布局

TableLayoutPanel容器,类似 CSS 中的 grid 布局。行列均可按百分比、或绝对值、或自动调整来设置宽高。

分割布局

SplitContainer容器,将容器按水平或垂直方向分割成两个容器,中间会有分割线,运行时也可移动分割线调整容器的大小。

标签页布局

TabControl容器,将容器按标签页的方式进行布局,标签页可自定义。

分组布局

GroupBox容器,将容器按分组的方式进行布局,可自定义分组标题。

面板布局

Panel容器