【问题标题】:How To Determine How Many Effective Pixels Is Half The Screen?如何确定有多少有效像素是屏幕的一半?
【发布时间】:2015-10-20 22:53:10
【问题描述】:

如果没有某种我们可以求和的最大界限(例如 Bootstrap/语义 UI 列),我在理解有效像素的概念时会遇到一些麻烦。

假设我总是想让我的应用程序在窗口宽度为显示分辨率的一半时执行某些操作,并且我有两台设备,一台是 1920x1080,另一台是 2160x1440(Surface Pro 3 分辨率)。有效像素告诉我我可以为一个设备设计一些东西,它应该为另一个设备相应地缩放。鉴于此信息以及任何其他类型的设备分辨率,我使用多少有效像素来始终触发所述半屏分辨率事件?

Microsoft 告诉我台式机的“断点宽度”是 1024 有效像素,但如果我将事件设置为在 512 有效像素处发生,我不会得到我的目标行为。参考https://msdn.microsoft.com/en-us/library/windows/apps/dn958435.aspx

TL;DR: 更具体地说,我正在尝试在窗口是屏幕分辨率长度的一半时触发自适应触发器,但我不知道要使用多少有效像素,或者我是否可以使用百分比来代替。

【问题讨论】:

    标签: windows xaml windows-10 pixels win-universal-app


    【解决方案1】:

    没有办法做到这一点;您不知道屏幕有多大(以任何度量单位),因此您无法知道屏幕的一半有多大。

    一些注意事项:

    • 如果您的应用是全屏的,显然您确实知道大小,但通常您不知道
    • 在最新的 Windows 10 内部版本中,您可以获取屏幕大小并进行一些数学运算

    我的问题是,为什么您希望触发器位于屏幕的一半?这是一个巨大的尺寸范围,从小型平板电脑的几英寸/几百有效像素到大屏幕的超过一英尺/几千像素。

    【讨论】:

    • 好的,对于我的情况,使用屏幕分辨率不是一个可行的解决方案,我同意。但是假设我有两个并排的按钮来控制它下面的内容(如果你愿意的话,一个枢轴)。这些按钮一起占据了整个屏幕宽度。现在假设我想做一个从一个按钮到下一个按钮的翻译动画,当另一个按钮被选中时。如果我不知道按钮的宽度并且它们在网格中,这怎么可能?我不能使用有效像素让每个按钮占据窗口的一半,可以吗?然后按该值翻译-x?
    • 要将按钮拆分为 50/50,请使用带有两列的 Grid,每列都有“*”大小。然后可以获取ButtonActualWidth属性来获取大小。
    • 但动画不可能做到这一点,对吧?因为使用动画绑定不起作用,因为它不是线程安全的。
    • 如果我使用在 Viewbox 中具有 Grid 的 DataTemplate,它似乎可以工作。网格包含两个按钮,并具有指定数量的宽度有效像素。然后在根网格中,我将 DataTemplate 放在第一行,告诉它拉伸水平对齐并在行高上自动拉伸。不知何故,它占据了屏幕的整个宽度,我可以根据我使用的网格宽度在按钮上转换 X。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 2012-11-28
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多