弹出CommonFileDialog时 DPI自动变成100%

虾条哥 2019-08-21 09:33:04
如题,程序中通过引用WindowsAPICodePack 调用了CommonFileDialog

在低分辨率电脑上正常

但在高分辨电脑上,只要一弹出CommonFileDialog,软件窗口界面马上变成 100%DIP了,弹出的对话框反倒没影响,按正常显示比例

求大神解答
...全文
227 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
虾条哥 2019-09-09
  • 打赏
  • 举报
回复
引用 12 楼 蒋晟 的回复:
Windows 10 1607上可以用新的DPI API,比如SetThreadDpiAwarenessContext 参考 https://blogs.windows.com/windowsdeveloper/2016/10/24/high-dpi-scaling-improvements-for-desktop-applications-and-mixed-mode-dpi-scaling-in-the-windows-10-anniversary-update/#pyM55BL1LeX32pV2.97
仅支持win10的话,客户那边通不过,真是郁闷了
蒋晟 2019-09-03
  • 打赏
  • 举报
回复
Windows 10 1607上可以用新的DPI API,比如SetThreadDpiAwarenessContext 参考 https://blogs.windows.com/windowsdeveloper/2016/10/24/high-dpi-scaling-improvements-for-desktop-applications-and-mixed-mode-dpi-scaling-in-the-windows-10-anniversary-update/#pyM55BL1LeX32pV2.97
虾条哥 2019-09-03
  • 打赏
  • 举报
回复
引用 10 楼 datafansbj 的回复:
应该是三方类库 WindowsAPICodePack 捣鬼。能不能改成不用这个库。打开文件夹这个功能,.net有现成可用的。
.net 的组件试过了,不符合客户的要求,客户要求能同时选中多个文件夹。 .net自带的组件,要么是只支持选多个文件而不支持选多个文件夹,要么是只支持选单个文件夹。 网上找了很久,才找到WindowsAPICodePack的CommonFileDialog支持同时选中多个文件夹。 另外,WindowsAPICodePack也是微软自己的东西,只是没有集成到.net framework 中
datafansbj 2019-09-03
  • 打赏
  • 举报
回复
应该是三方类库 WindowsAPICodePack 捣鬼。能不能改成不用这个库。打开文件夹这个功能,.net有现成可用的。
ManBOyyy 2019-08-30
  • 打赏
  • 举报
回复
引用 8 楼 虾条哥 的回复:
[quote=引用 7 楼 datafansbj 的回复:]
这个窗体的属性 AutoScaleMode 是怎么设置的?系统默认是 Font,即窗体根据系统字体的设置来缩放。
另外 是什么?第三方的库吗?


AutoScaleMode的所有参数都试过了,故障依旧

WindowsAPICodePack 是.net调用CommonFileDialog的支撑库,不引用WindowsAPICodePack,就没法使用CommonFileDialog[/quote]
要不用當前窗體的分辨率來改變软件窗口界面,比如當前分辨率是1024*768 就改變這個界面寬度和高度,要不就強制改變電腦分辨率啊
我有一個程序也是這樣,打開這個軟件就強制改變分辨率,關閉了就恢復分辨率
虾条哥 2019-08-30
  • 打赏
  • 举报
回复
引用 7 楼 datafansbj 的回复:
这个窗体的属性 AutoScaleMode 是怎么设置的?系统默认是 Font,即窗体根据系统字体的设置来缩放。 另外 是什么?第三方的库吗?
AutoScaleMode的所有参数都试过了,故障依旧 WindowsAPICodePack 是.net调用CommonFileDialog的支撑库,不引用WindowsAPICodePack,就没法使用CommonFileDialog
虾条哥 2019-08-27
  • 打赏
  • 举报
回复
没有人遇到过么? 项目快完工了,这个问题必须要解决,求大家帮帮忙!
datafansbj 2019-08-27
  • 打赏
  • 举报
回复
这个窗体的属性 AutoScaleMode 是怎么设置的?系统默认是 Font,即窗体根据系统字体的设置来缩放。 另外 WindowsAPICodePack 是什么?第三方的库吗?
OrdinaryCoder 2019-08-23
  • 打赏
  • 举报
回复
设置Window 的 WindowState="Maximized"
assky124 2019-08-23
  • 打赏
  • 举报
回复
没有遇到过,你试试将你的窗体设置成不缩放呢
虾条哥 2019-08-23
  • 打赏
  • 举报
回复
没有人知道么? 求大神帮一下忙
虾条哥 2019-08-23
  • 打赏
  • 举报
回复
引用 3 楼 assky124 的回复:
没有遇到过,你试试将你的窗体设置成不缩放呢
不缩放的话,高分辨率下面,窗口就太小了
虾条哥 2019-08-21
  • 打赏
  • 举报
回复
见上图,软件窗口明显变小了,只有正常一半大小 注:当前显示比例为200%

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧