49彩票集团首页-49彩票集团官网|官网首页

49彩票集团让大家拥有最好的账号使用功能,49彩票集团是为大家带来更加方便的使用途径,是因为在49彩票集团娱乐的玩家们越来越多,发展成为最受欢迎的网上体育娱乐公司。

直接设置Image控件的深浅是一个无可反驳的方案,

2020-03-27 作者:计算机网络   |   浏览(55)

时间: 2019-12-09阅读: 8标签: 图片

本文为个人博客备份文章,原文地址:

转载自

WPF 框架设计为与 DPI 无关,但你依然可能遇到 DPI 问题。尤其是Image控件显示的图片会根据图片 EXIF 中的 DPI 信息和屏幕 DPI 自动缩放图片。对于 UI 用图来说这是好事,但对于软件用户随便插入的图片来说就不是了——用户传入的图片可能是各种各样不统一的 DPI。因此这种 DPI 我们应该忽略。

WPF从发布之日起,一直将“分辨率无关(resolution independence)”作为其亮点,声称使用WPF制作的用户界面在轻巧的Ultra-Mobile PC的屏幕上和在50英寸的电视机上都能很好地显示。微软之所以称WPF具备“分辨率无关”这一特性,主要是因为WPF的坐标单位设计成为以1/96英寸为一个逻辑像素单位,而不是与设备相关的像素单位。

解决方法

本文旨在解释物理像素与设备独立像素(DIPs, device independent pixels)之间的区别,以及 Win2D 如何处理 DPI (dots per inch/每英寸点数)。

但是微软本身对WPF“分辨率无关”这一特性没有作更多的具体解释,导致用户会产生很多误解。

直接设置Image控件的大小是一个不错的方案,这在允许设置Image控件大小的场合下是可以使用的。如果你能设置,那么直接设置,这是最好的方法了。

Win2D 被设计为可以自行感知设备环境,以便在各种高低不同 DPI 的设备上呈现正确的视觉表现,故多数应用可以忽略 DIPs 和 DPI 之间的区别。如果你的应用有更多特定需求,或者你希望自行定制默认的感知行为,可以继续阅读下文详述……

误解之一

改变显示器的分辨率设置,同一个WPF的用户界面和绘制的图形尺寸不会变化。

这个可以用一个非常简单的实验证明该结论是错误的。新建一个WPF应用程序窗口,其中高度为400DIUs(DIU:Device independent unit,设备无关单位),宽度为600DIUs,让这个窗口分别在分辨率设置为1280 * 1024和800*600的环境下运行,如下图所示,两个窗口的尺寸是明显不一样的。

   49彩票集团 1 49彩票集团 2

图 1 左图为1280 * 1024分辨率,右图为800*600分辨率

 

除此之外,我们还可能可以尝试这些方法:

什么是 DPI?

49彩票集团,DPI 代表“每英寸点数”,该数值可以粗略度量计算机显示器或手机屏幕等显示输出设备上呈现的像素密度。DPI 越大,显示输出呈现的点数量越多、尺寸越小。

由于并非所有显示硬件都能准确报告显示数据,故 DPI 只是一个粗略的度量值。某些计算机显示器完全不向操作系统报告 DPI 数值,而用户也有可能自行配置一个与实际硬件不符的 DPI 让系统进行渲染(比如更改 UI 文字元素的大小)。应用可以参考 DPI 决定大型对象如何被绘制,但不应将其当作显示设备大小的精准物理度量进行计算。

DPI 的推荐默认值是96。

误解之二

 

改变显示的DPI设置,同一个WPF的用户界面和绘制的图形尺寸不会变化。

显示的DPI设置,在XP系统下是通过右键——属性——设置选项卡——高级,可以调用出来,如下图所示:

 49彩票集团 3

图 2 显示属性DPI设置

这个也可以用同样的方法进行证明该结论是错误的。仍然是高度为400DIUs[1],宽度为600DIUs的窗口分别运行在96DPI和192DPI两种设置环境下。从下图也可以明显看出窗口的尺寸是不一样的。

     49彩票集团 4     49彩票集团 5

图 3 左图为96DPI,右图为192DPI

 

本文由49彩票集团发布于计算机网络,转载请注明出处:直接设置Image控件的深浅是一个无可反驳的方案,

关键词: