是否可以为 .NET 6.0 应用程序同时启用 Winforms 和 WPF?
Is it OK to enable both Winforms and WPF for a .NET 6.0 application?
如图所示here and here(均在同一 Microsoft 页面上).NET 6.0 应用程序可以面向 Winforms 和 WPF。但这会在某个时候引起冲突吗?不清楚的是两者是否可以在同一个项目中作为目标。
那么,可以将两者同时定位还是 alters the MSBuild pipeline to correctly process a Windows Forms project
会与 alters the MSBuild pipeline to correctly process a WPF project
冲突?
项目属性选项卡中 Visual Studio 的外观如下:
我问的原因是因为我想在 WPF 应用程序中使用某些来自 Winforms 的 类。
是的,没关系,在某些有效的情况下您可能想要添加这两个框架。 documentations 中已经提到了,如果需要,您可以同时添加:
- Add a UI framework property (or both, if necessary):
- Set UseWPF
to true to import and use WPF.
- Set
UseWindowsForms
to true to import and use WinForms.
例子也一样:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<UseWPF>true</UseWPF>
<!-- and/or -->
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
</Project>
是的,这很好用。您可以让应用程序同时使用 WinForms 和 WPF,甚至混合使用。甚至还有用于在 Winforms window 中托管 WPF 控件和在 WPF window 中托管 WinForms 控件的控件(参见 here)。
广泛执行此操作时存在一些限制(WPF 托管 WinForms 控件、托管 WPF 控件主机...等可能无法正常工作)但我一直在开发一个将所有内容混合在一起的 GUI(出于遗留原因)它通常运行良好。
如图所示here and here(均在同一 Microsoft 页面上).NET 6.0 应用程序可以面向 Winforms 和 WPF。但这会在某个时候引起冲突吗?不清楚的是两者是否可以在同一个项目中作为目标。
那么,可以将两者同时定位还是 alters the MSBuild pipeline to correctly process a Windows Forms project
会与 alters the MSBuild pipeline to correctly process a WPF project
冲突?
项目属性选项卡中 Visual Studio 的外观如下:
我问的原因是因为我想在 WPF 应用程序中使用某些来自 Winforms 的 类。
是的,没关系,在某些有效的情况下您可能想要添加这两个框架。 documentations 中已经提到了,如果需要,您可以同时添加:
- Add a UI framework property (or both, if necessary):
- Set UseWPF to true to import and use WPF.
- Set UseWindowsForms to true to import and use WinForms.
例子也一样:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<UseWPF>true</UseWPF>
<!-- and/or -->
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
</Project>
是的,这很好用。您可以让应用程序同时使用 WinForms 和 WPF,甚至混合使用。甚至还有用于在 Winforms window 中托管 WPF 控件和在 WPF window 中托管 WinForms 控件的控件(参见 here)。
广泛执行此操作时存在一些限制(WPF 托管 WinForms 控件、托管 WPF 控件主机...等可能无法正常工作)但我一直在开发一个将所有内容混合在一起的 GUI(出于遗留原因)它通常运行良好。