V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liuser666
V2EX  ›  C#

WPF、WinUI、UWP、WinForm 在项目中到底是怎么区别的?

  •  
  •   liuser666 · 2021-11-12 14:46:19 +08:00 · 2529 次点击
    这是一个创建于 1136 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近在用 WinUI 开发嘛,终于想到了如何组织这个问题,


    按理说 UWP 和 WPF 是互斥的,那么是怎样一个互斥法呢,这种互斥是由于引用的包不一样吗?
    System.Windows;是 WPF 启动 APP 的包
    Windows.UI.Xaml;是 UWP 启动 APP 的包
    Microsoft.UI.Xaml;是 WinUI 启动 APP 的包
    然后我再看 winform 就更牛了,
    只用了 System.Windows.Forms;这一个包,所以 winform 的开发方式岂不是更简单吗?


    那么是否意味着我只要把这个包换一下(以及对应的 xaml 的包),我的应用就变成另一种类型了?那么 UWP 限制调用 win32 的 api 是怎么限制的呢?按照现在的条件,我只要单独写个类引个其他的 nuget 包就能间接调用 win32 的 api 了呀。


    最后,WinUI 说的支持 Win32 程序是什么意思呢?说到这里我对 Win32 程序又迷惑了,现在说的 win32 究竟指的是什么呀?是 winform 开发的程序还是特指 C++开发的,还是指调用 Win32api 的还是啥?
    2 条回复    2021-11-12 22:01:13 +08:00
    maggch
        1
    maggch  
       2021-11-12 17:31:00 +08:00   ❤️ 1
    是 Project 的属性指定的,不是你换依赖包就能解决的。对应的是一整套从编译到打包的流程。
    forgottencoast
        2
    forgottencoast  
       2021-11-12 22:01:13 +08:00
    UWP 和 WPF 的运行时都不一样,UWP 限制调用 Win32 api 很多要不就是没有实现,要不就是运行时不支持。
    Win32 程序应该是指使用 Win32 API 开发的程序。
    引用几个包并不是特别重要啊,反正只引用一次就行了,谁会天天引用。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1204 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 23:52 · PVG 07:52 · LAX 15:52 · JFK 18:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.