首页 > 其他分享 >WPF与WinForm的对比

WPF与WinForm的对比

时间:2024-01-18 16:58:10浏览次数:26  
标签:控件 xaml 绑定 UI WPF 对比 WinForm

WPF与WinForm的对比

创建新项目

在vs2022中,这两者分别叫做WPF应用Windows窗体应用

渲染引擎和设计

WPF使用DirectX作为渲染引擎,支持更复杂和动态的UI,包括2D和3D图形、动画和丰富的样式和模板。

WinForms使用GDI+作为渲染引擎,主要支持传统的2D图形。它的界面元素(控件)更简单,功能相对有限。

设计过程

WinForm中,直接使用CSharp来描述页面,比如按钮就是System.Windows.Forms.Button,其有一些属性比如大小、位置、文字、对齐方式。

可以直接拖拽控件实现添加控件(也推荐这样做)


而在WPF中,使用一种标记语言xaml(读作匝某)来表示界面

比如按钮的话就是<Button Content="我的WPF按钮"></Button>

也可以使用工具箱中拖拽控件(但是重点不是学习拖,而是学习xaml语言)

WPF入门就是主要是学习xaml,以及xaml如何和CSharp代码交互

特性

数据绑定

WPF的控件属性可以绑定到CSharp代码的一些变量中,支持数据绑定和MVVM(Model-View-ViewModel)设计模式,使得UI和业务逻辑分离,易于管理和维护。

WinForm数据绑定能力较弱,必须每次修改就进行一次赋值操作,需要手动管理UI和数据之间的交互和更新。

自定义效果

实现自定义的效果来说,WPF更加的简单。WinForm可能涉及重绘的操作,比较麻烦,需要重新造轮子。

比如添加按钮圆角效果,WinForm可能需要新创建一个用户控件,重新绘制UI来实现。而WPF要实现圆角只需要修改Button的一个自带属性就好。

总结

学习WinForm可能更加的快速,上手简单。其在实现简单的界面上性能也更好

WPF的渲染是基于硬件加速的,对于复杂的UI和动画来说性能较好

选择WPF还是WinForms取决于具体的需求。如果需要高度动态的、富媒体的、高度定制化的现代UI,WPF可能是更好。如果是简单的、基于表单的应用,且开发时间有限,WinForms可能更为适合。

标签:控件,xaml,绑定,UI,WPF,对比,WinForm
From: https://www.cnblogs.com/Vanilla-chan/p/17972855/WPF-vs-WinForm

相关文章

  • chatglmLlama模型架构对比
    ChatGPTvs.LlamaModelArchitectureComparisonInrecentyears,languagemodelshavemadesignificantprogressinthefieldofnaturallanguageprocessing.Twoprominentmodels,ChatGPTandLlama,havegainedattentionduetotheirimpressiveperformance......
  • winform Application.OpenForms 判断打开的窗体数量
    List<string>openFrom=newList<string>();if(Application.OpenForms.Count>2){stringresult=string.Empty;for(inti=0;i<Application.OpenForms.Count;i++){......
  • 【.NET 5.0】WPF使用弹窗选择文件和文件夹
    一开始使用下面方法调起文件夹窗,始终提示System.Windows.Forms这个命名空间无法引入.//选择文件夹System.Windows.Forms.FolderBrowserDialogFolderBrowserDialog=newSystem.Windows.Forms.FolderBrowserDialog();if(FolderBrowserDialog.ShowDialog()==System.Win......
  • Linux中数据传输工具速率对比
    速率对比当前主流数据传输工具:cp、rsync、dd测试流程准备两个相同大小的目录和文件,这是因为dd主要用来拷贝文件、分区和磁盘,一般不用来拷贝目录。安装可视化工具:##centos扩展包yum-yinstallepel-releaseyuminstall-ypv##ubuntuaptinstallpv-y##cp同步命......
  • wpf第五个画面
    主要使用的控件:Grid控件、TabControl控件、TextBlock控件、Button控件、Border控件  公共属性 HorizontalAlignment:水平显示位置 VerticalAlignment:垂直显示位置 Weight:宽度 Height:高度  Grid控件ColumnDefinitions和RowDefinitions,分别表示列的数量集合......
  • 论文写作中不同模型输出对比
    需要自己提供,输入图像、以及对应mask还有不同模型的预测结果。#可视化图像、mask、不同模型的输出importmatplotlib.pyplotaspltimportcv2frompathlibimportPathimportosfromskimageimportio,measureimportnumpyasnp#network_name=["CPFNet","Deep......
  • Python 异步编程原理篇之新旧协程实现对比
    协程的发展流程再来回顾一下协程的发展流程:python2.5为生成器引用.send()、.throw()、.close()方法python3.3为引入yieldfrom,可以接收返回值,可以使用yieldfrom定义协程Python3.4加入了asyncio模块Python3.5增加async、await关键字,在语法层面的提供支持python3.7使用......
  • 在wpf项目中实现基于Grpc.AspNetCore.Server库的grpc server功能
     前言1.Grpc.Core库的维护到2024.10,之后应该是不再维护了,后续推荐使用Grpc.Net.Client和Grpc.AspNetCore.Server这两个库代替。相关声明信息可以在此处看到,https://grpc.io/blog/grpc-csharp-future/2.当前工作的项目需求是在同一个局域网的多个wpf,通过grpc进行通讯,一个wpf作......
  • Python 3各版本的新特性对比
    Python3各版本的新特性对比作者:HankZheng2024-01-1500:30:04开发前端Python3系列的各个版本都带来了许多重要的新特性和改进,从语法到标准库的增强,都为开发者提供了更好的编程体验和更高效的开发方式。Python是一种简单易学、功能强大的编程语言,广泛应用于各个领域。Py......
  • WPF 禁止重复启动程序
    1.VS中右键App.xaml,【生成操作】选择为【Page】2.修改App.xaml.cs文件如下:usingSystem;usingMicrosoft.Extensions.DependencyInjection;usingSystem.Threading;usingSystem.Windows;namespaceWpfDemo{///<summary>///App.xaml的交互逻辑///</su......