WPF不使用Windows(pl。)用于控件的含义是什么?

时间:2013-04-27 18:16:17

标签: wpf windows winapi visual-c++ hwnd

would appear在经典的Windows tm 应用程序中,显示的每个控件(Button,ListBox,Menu,...)都有自己的Window(如{{1}中所示) })。

此外,使用Windows窗体(WinForms),虽然控件不再使用经典的窗口类,但每个控件仍然有自己的窗口(HWND)。

但是,通过WPF创建的Windows(复数)不会使用单独的Windows(pl。)作为其控件。 WPF对话框上的按钮单独的窗口(HWND)。

问题

这对于我们(作为开发人员)可以做什么或不用WPF窗口加上它的控件与“经典”对话框窗口有什么影响,其中不仅每个控件都有自己的HWND,但即使是Window Classes也是众所周知的(HWNDButton,...)?

1 个答案:

答案 0 :(得分:6)

这不是新的。在ActiveX的时代,无窗口控件很受欢迎,VB6很重要。浏览器使用它们。 Winforms也有它们,ToolStripItem类是无窗口的。像Telerik这样的组件供应商专注于它们。明显的优势是能够呈现更快,回填缺失的功能,更好地支持自定义样式和平台独立性。

后果显而易见。 UI倾向于更快地老化,因为它不适应不断变化的操作系统外观。通常被引用为优势。自定义用户界面的行为与原生用户界面不同,往往会出现轻微的故障。 WPF确实有一些。 UI自动化更加困难,尽管WPF中包含System.Windows.Automation名称空间。