在win-forms-proj文件中将UseWPF设置为true无法识别ApplicationConfiguration



在以.NET 6为目标的WinForms桌面应用程序中,proj文件中的UseWindowsForms元素设置为True,并从启动文件Program生成和调用引导程序ApplicationConfiguration.Initialize();

现在我想通过将UseWPF设置为True来启用WPF。当我这样做并构建时,我在输出日志中得到以下错误

Program.cs(11,13,11,37(:错误CS0103:名称"ApplicationConfiguration"在当前上下文中不存在。

如果我注释掉那一行,应用程序就会构建,我可以从WinForm打开WPF窗口。但是获胜窗体窗口看起来不同,因为它们没有正确初始化,所以我想保留对ApplicationConfiguration.Initialize();的调用

知道如何将UseWPF设置为True并仍然使用ApplicationConfiguration.Initialize();吗?Thx。

复制

  1. 在VS 2022中创建一个新的Windows窗体项目,目标是.NET 6
  2. 转到项目属性并选中Enable WPF for this project复选框
  3. 将WPF窗口添加到项目中
  4. Build

您现在将获得

Program.cs(11,13,11,37(:错误CS0103:名称"ApplicationConfiguration"在当前上下文中不存在。

在输出日志中。(错误列表混乱,可能没有显示任何内容(

项目文件

按照上述步骤,proj文件如下所示:

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
<UseWPF>True</UseWPF>
</PropertyGroup>
</Project>

我遇到了同样的问题,我做了两件事:

  1. 我在WinForms的GitHub问题上发布了这个问题,它被设置为.NET7里程碑链接->Github WinForm问题
  2. 我在Winforms(NET6(中的EnableWPF的解决方法代码是将Program.CS文件编辑为下面是:

在Program.CS中注释下面的代码-(将来取消注释并检查.NET Fixes或VS IDE Updates是否修复了该问题(

//ApplicationConfiguration.Initialize();

然后在注释下方添加以下代码

Application.SetHighDpiMode(HighDpiMode.SystemAware);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());

最新更新