文号
t79456
阅读
7895
回复
3
收藏
1
列举一下界面开发框架的DPI支持情况
2016/04/02
IP:四川
【不支持高DPI的框架】

这些框架大多基于GDI或者GDI+这些基于像素的图形库。
大多数框架使用子窗口(HWND)来创建控件,少数直接绘制控件。

------- C/C++ -------
Win32 CreateWindowEx
MFC 经典框架
ATL/WTL
DUILIB

------- .NET -------
Windows 8/8.1 Apps

------- Java -------
Java AWT
Java Swing

【仅支持布局缩放的框架】

这些框架有针对控件的布局缩放机制,但是并没有针对图形的缩放机制。
它们在绘制图形方面,使用的仍然是GDI或GDI+等基于像素的图形库。

------- C/C++ -------
Win32 DialogBox / CreateDialog
wxWidgets wxMSW
MFC 10.0 增强框架

------- .NET -------
Windows Forms

【完整支持高DPI的框架】

这些框架使用基于矢量的图形库(OpenGL、Cairo、DirectX等),完整支持DPI缩放。

------- C/C++ -------
Qt —— 基于OpenGL
GTK+ —— 基于OpenGL

------- .NET -------
Windows Presentation Foundation —— 基于DirectX
Windows 10 Apps (Universal Windows Platform) —— 基于DirectX

------- Java -------
JavaFX —— 基于OpenGL
[ 修改于10年8个月前 - 2016/04/03 11:52:33 ]
acmilan作者
10年8个月前IP:四川
814781
1楼
WPF死了吗?没有!而且WPF开发组博客仍在持续更新,新功能在持续加入,所以你可以安心地使用WPF。

目前,微软在Build2016开发者大会上宣布开始了Project Centennial项目的公测,Win32和.NET程序可以通过一种特殊的方式进驻Windows应用商店,这表明WPF的前途不是问题。

至于为什么国内不火,我认为主要原因是国内Windows XP过于流行的原因。截至目前国内Windows XP装机量约为25%,而国外已下降到了10%左右。Windows XP并不包含任何的.NET框架。所以说,Windows XP又称为.NET杀手。

至于QQ、迅雷等流行软件,由于Windows XP用户群很大,又不能要求用户装这么大的运行库,用的是自己编写的基于C++的DirectUI库,并且现在随着高分屏用户的增多,自己进行了大量优化。所以现在想入门QQ、迅雷那样的界面,成本是相当高的,不建议真的去入门。
引用
评论
acmilan作者
10年8个月前修改于 10年8个月前IP:四川
814796
2楼
WPF目前是Windows客户端的最佳选择。虽然不跨平台,但是易学易用,并且运行库Windows自带,所以潜力巨大。

JavaFX目前在跨平台客户端开发上还是比较好的选择。当然Java程序的性能上会有很多问题。

Qt目前是C++跨平台客户端的最佳选择。如果对性能要求比较高,对跨平台也有需求的话,Qt是必选的。

GTK+目前主要在Linux和Mac平台应用比较广泛。由于它基于UTF-8而不是UTF-16,在Windows平台使用麻烦重重。

UWP是Windows 10 Apps的底层架构,虽然现在应用范围受限,但是将来的发展方向,如果有精力的话可以学习一下。
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的