在通过CPP项目开放时,为什么C#Winform与DPI 150%不同
Why is a C# winform shown different with DPI 150% while opening through cpp project
我在通过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]
我希望这会有所帮助。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 为什么在全局范围内使用"extern int a"似乎不行?
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 为什么会发生堆损坏
- 为什么使用 "this" 指针调用派生成员函数?
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 为什么比较运算符如此快速
- 为什么 Serial.println(<char[]>);返回随机字符?
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 为什么不;名字在地图上是按顺序排列的吗
- 我的字符计数代码计算错误.为什么
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 为什么在C++中使用私有复制构造函数与删除复制构造函数
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- 为什么 std::unique 不调用 std::sort?
- 既然存在危险,为什么项目要使用-I include开关
- 在通过CPP项目开放时,为什么C#Winform与DPI 150%不同