把winformcore的窗体复制到netframework下 winform里为啥控件都被压扁了
时间: 2023-08-11 15:04:13 浏览: 254
将 WinFormCore 的窗体复制到 .NET Framework 下 WinForm 项目中,可能会导致控件被压扁的情况,这是因为 .NET Core 和 .NET Framework 对 WinForm 控件的默认高 DPI 设置不同所导致的。
.NET Core 3.0 和更高版本是高 DPI 感知的,这意味着它们默认会将 WinForm 应用程序的 DPI 设置为 96 DPI,而 .NET Framework 默认为 120 DPI。因此,当你将 .NET Core 中的窗体复制到 .NET Framework 中时,控件的大小可能会有所不同。
要解决这个问题,可以在应用程序的 `app.config` 文件中添加以下内容:
```xml
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Windows.Forms.UseCompatibleTextRendering=true;Switch.System.Windows.Forms.DisableDpiChangedMessageHandling=true" />
</runtime>
</configuration>
```
这会将 WinForm 应用程序的 DPI 设置为 96 DPI,并禁用 DPI 更改消息处理,这样控件的大小就会与在 .NET Core 中看到的一样了。
相关问题
把winformcore的窗体复制到netframework下 winform里为啥控件样式不对
将 WinFormCore 的窗体复制到 .NET Framework 下 WinForm 项目中,控件样式不对的情况可能是由于两个框架使用了不同的控件样式所导致的。
.NET Core 使用的是 Windows 10 风格的控件样式,而 .NET Framework 使用的是 Windows 7 风格的控件样式。因此,当你将 .NET Core 中的窗体复制到 .NET Framework 中时,控件的样式可能会有所不同。
要解决这个问题,可以使用以下方法之一:
1. 在 .NET Framework 中手动更改控件样式。你可以在 WinForm 中手动更改控件的样式以使其与 .NET Core 中的样式相匹配。例如,你可以更改按钮的颜色、字体、边框等。
2. 使用第三方 UI 库。有许多第三方 UI 库可以在 WinForm 中使用,这些库提供了丰富的控件样式和主题,可以使你的应用程序看起来更加现代化和吸引人。例如,DevExpress、Telerik 和 Syncfusion 都提供了 WinForm 的 UI 库。
总之,将 WinFormCore 的窗体复制到 .NET Framework 下 WinForm 项目中,可能会导致控件样式不对的情况,需要进行相应的调整。
阅读全文