在通过CPP项目开放时,为什么C#Winform与DPI 150%不同

Why is a C# winform shown different with DPI 150% while opening through cpp project

本文关键字:C#Winform 为什么 DPI 不同 150% CPP 项目      更新时间:2023-10-16

我在通过dpi 150%的CPP项目打开C#应用程序时面对一个问题。

问题是以其截断的形式进行控制,并且控制大小未显示为。例如,按钮大小为23 px,但显示为14 px。

我在通过4K监视器中的C#项目打开相同的C#应用程序时不会遇到此问题。控件尺寸也适当。

任何人都可以建议您将是什么问题以及如何解决。

谢谢Rajesh。

我猜是您正在使用winforms,这在HIDPI缩放方面存在一些问题。如果您默认情况下仅作为自己的项目启动应用程序,则标记为 dpi nor Aware 。这意味着该应用程序可能以100%以外的其他方式看起来像素化,但是布局还可以。

要创建启用HI DPI的Winform应用程序,不幸的是并不容易。

(https://learn.microsoft.com/en-us/windows/desktop/hidpi/high-dpi-dpi-desktop-application-development-on-windows)

但是,当在系统的另一部分设置DPI模式的较大项目的一部分中使用您的组件时,这可能会导致Layouut问题。

如果其.NET项目,则可以通过添加以下汇编属性来解决此问题:

[assembly: System.Windows.Media.DisableDpiAwareness]

我希望这会有所帮助。