将 UWP 的有效像素(Effective Pixels)引入 WPF

  • 时间:
  • 浏览:0

▲ 原因 此处看能才能了视频,请前往 Channel 9 观看:Designing Universal Windows Platform apps。

具体是先要 的:

十个 好的概念除了要充分展示一些人的愿景,也要看清一些人的局限性。

原因 人们都都人们都都说 A 按钮比 B 按钮的物理深层更大,先要无论它们显示在哪个显示器上,都具备相同的关系——原因 人们都都人们都都能才能才能了拿尺子来量。

谈物理尺寸:

而有效像素(Effective Pixels,本文记其为 epx)所以 本文从 UWP 中引入的尺寸概念。人们都都人们都都人们都都说按钮的有效像素深层为 150 时,指的有的是你在 WPF 的 XAML 或 C# 代码中写下了 Width="150"

显示器厂商为了一些人的销售目标,会推出各种各样的型号——有高端的,有低端的,有主打性价比的。而性价比的主要来源所以 ——“噱头”——在每段参数上非常漂亮,每段参数却缩水严重。比如同样是 34 寸的 21:9 超宽屏显示器,5999 元的能才能才能了是 3440×1440 像素个数,而 3999 元的就能才能了是 25150×10150 像素个数。前者每英寸像素点数接近 96,而后者则低多了。Windows 操作系统上支持的最低 DPI 设置能才能了是 96 了,能才能了再低;以至于后者实际上在相同观看距离上比前者显示的界面元素的物理尺寸会大所以。这是硬件厂商的销售策略,你十个 虚拟的单位还能拿它怎样 样!

这些 太好是此愿景能才能了实现的最主要原因 了——各大显示器厂商都指在不按照最佳观看效果设置显示器参数的难题。这也是为一些人们都都人们都都经常能发现一些笔记本上的图标和字体大小被默认设置得小得可怜,原因 超大屏幕设备上文字小得远处看不清的原因 。(这里人们都都人们都都只谈显示器厂商在 EDID 信息中设置的最佳时序,一些时序欺骗了操作系统使之给出了不至少的显示效果;不须说用户能才能才能了改的难题,毕竟让用户改原因 提高了门槛了。)

#### 有效像素(epx)的愿景 有效像素概念的出现,就摒除了 WPF 物理尺寸相同先要 荒谬而无法自圆其说的设定。但为了给有效像素设下定义,人们都都人们都都来看看微软到底期望先要 的尺寸单位带来一些方便吧:

原因 人们都都人们都都说 A 按钮比 B 按钮在深层上占用的显示器像素个数更多,人们都都人们都都才能才能才能了拿放大镜去屏幕上十个 点十个 点地数——当然,各种截图工具原因 在最佳分辨率下具备数像素个数的功能了(这里一定要突出最佳分辨率)。

具体说来,对于手机和平板电脑(笔记本、Surface)一些近距离观看的设备,其物理尺寸能才能才能了更小;对于客厅摆放的大屏幕电视,观看距离较远,物理尺寸应该更大。相同的界面元素在不同设备上显示时,呈现出来的效果在视野深层上是相近的,这才是人眼观看比较舒适的尺寸概念的设计。

在理想情况报告下,1 有效像素等于用户观看距离 150cm 时,观看屏幕上 1/96 英寸的物理距离所对应的视角大小

非理想情况报告下,1 有效像素等于显示器点对点显示像素时,1 屏幕像素乘以系统 DPI 值除以 96

看看按钮实际的大小,你会发现,影响因素真的太满太满了!人们都都人们都都人们都都不再沉浸在 DIP 的理想中,不再纠结有效像素的愿景的先要 ,便能人太好有效像素人太好为人们都都人们都都考虑 DPI 缩放难题做了不少努力,人太好能减轻人们都都人们都都 UI 的开发工作量。

版权声明:本作品采用知识共享署名-非商业性使用-相同方法共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(中有 链接:http://blog.csdn.net/wpwalter/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何难题,请与我联系(walter.lv@qq.com)。 https://blog.csdn.net/WPwalter/article/details/78619740

结合微软对有效像素的愿景,结合实际情况报告,我认为“有效像素”的定义应该是先要 的:

用户能才能才能了随时修改屏幕显示分辨率,修改系统或屏幕的 DPI 值。在显示分辨率与显示器实际物理分辨率不一致的情况报告下,用户还能设置画面的填充方法(居中或是拉伸)。

人们都都人们都都认为,用户主动设置 DPI 是出于一些人的一些目的——希望放大或缩小界面元素,而这有原因 原因 原有大小对用户一些人来说看起来不足英文舒适。(这里你会吐槽设置分辨率还不设置为居中显示的用户,那种画面模糊的感觉,怎样 能承受!)

在本文中,对于尺寸,人们都都人们都都只说十个 概念:

谈显示器像素个数:

接下来,人们都都人们都都人们都都谈论尺寸时,只会用以上十个 概念进行比较,而不想再用模糊不清的尺寸名词。

What the ** is this unit!!! 神 TM 相同!!!

WPF 和 UWP 的尺寸单位都能才能才能了用有效像素来理解,而这有这些 所以 它们十个 框架内建的单位系统。(彻底失去那个能才能了自圆其说的 DIP 吧!)

在以上定义之下,再研究有效像素的行态时,人们都都人们都都便能接受一些非理想情况报告下的不同行为,不再像 WPF 的 DIP 那样绝对而富有争议。



▲ 图片来自于微软 UWP 设计指导文档 Introduction to Universal Windows Platform (UWP) app design (Windows apps)

UWP 采用有效像素(Effective Pixels)来描述尺寸,这是才是才能自圆其说的一套尺寸描述;WPF 的尺寸机制与 UWP 删剪所以 同一套,使用有效像素才能解释 WPF 尺寸变化上的各种行态!

在继续讨论先要 ,人们都都人们都都需用统一几个概念。能才能了说一些意义不明确的词,尤其是“宽高”“大小”“尺寸”“更大”。试想你爱不爱我十个 按钮的宽高是 150,先要它的宽高到底是几个呢?十个 屏幕上的按钮和先要 屏幕上的按钮哪个更大呢?

事实上,目前为止,能才能了一款设备真正达到了微软期望中的理想情况报告,那所以 ——Surface Studio!其它都能才能了算作接近,原因 连接近都算不上。

人太好简单测试就先要发现这是十个 根本无法自圆其说的愿景,具体无法自圆其说的点有十个 。

有效像素单位的诞生一定是为了补救有这些 尺寸难题,有之前 原因 现有的尺寸单位无法简单地描述一些难题。而人们都都人们都都就要准确描述一些难题,并将得到的单位定义成“有效像素”。

在你会你会先要 ,WPF 诞生之初,有十个 神奇的单位,它的名字叫做——设备无关单位(DIP,Device Independent Unit)。微软给它描绘了一片美好的愿景——在任何显示器上显示的尺寸是相同的。

能才能才能了看出,有效像素的出现补救了我在 以上吐槽 中列举出无法自圆其说的第 2 点。认识到十个 优秀的屏幕显示单位并有的是按物理尺寸定义,所以 根据不同的使用场景有所不同。第 1 点也每段得到了缓解——接受 DPI 缩放的行态,放弃承认物理尺寸相同的设定。

人们都都人们都都人们都都在代码中写下 Width="96" 时,一些按钮到底多大?

而有效像素的局限性就在于——它的愿景所以 理想情况报告下才能有的效果,而微软有这些 允许硬件厂商和用户进行设置以每段理想情况报告。

WPF 先要 说一些人用的是“设备无关单位”(DIP),愿景是在所有显示器上显示的物理尺寸相同。比如你在代码中写了 Width="96" 的按钮,先要在所有显示器上其尺寸为 1 英寸。