c# - WPF 中的屏幕分辨率问题?

标签 c# .net wpf screen resolution

我将在 WPF 中使用以下代码检测分辨率:

double height = System.Windows.SystemParameters.PrimaryScreenHeight;
double width = System.Windows.SystemParameters.PrimaryScreenWidth;

我的屏幕当前分辨率是 1920*1200,但是 <strong>height</strong>是 960.0 和 <strong>width</strong>是 1536.0!!!

这是怎么回事?
提前致谢。

最佳答案

请记住,所有 WPF 位置和大小都是以 1/96 英寸为单位的 float 。不是像素。这使您的窗口设计分辨率独立。计算一下:高度 = 960/96 = 10 英寸。将视频适配器设置为 120 DPI (120/96 = 125%):10 * 120 = 1200 像素。宽度相同:1536/96 * 120 = 1920 像素。

System.Windows.Forms 以像素为单位工作。您得到的高度小于 1050,因为它减去了任务栏的高度。但对于 WPF,您总是希望使用 1/96",而不是像素。

关于c# - WPF 中的屏幕分辨率问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2236173/

相关文章:

c# - 将区域文件夹中的页面设置为asp.net core 2.2 MVC中的默认页面

c# - 如果存在验证错误,也要更新 ViewModel 中的属性

c# - 将数据表导出到 Excel

c# - 无法在 LINQ to SQL 中将类型 'string' 隐式转换为 'System.Data.Linq.Binary

.net - .NET 中的 "Computer is not a member of My"错误

.net - 添加我自己的 WPF TriggerAction

wpf - 将事件从ViewModel发送到调用应用程序

c# - 存储连接字符串

c# - 使用 StackExchange.Redis 库时对 Redis 的超时和缓慢请求

c# - 使用 openXML 2.0 保存 Excel 文档时文件已损坏且无法打开