【问题标题】:Xamarin.Forms UI Coordinate SystemXamarin.Forms UI 坐标系
【发布时间】:2015-12-13 02:34:27
【问题描述】:

不确定这是否是问这个问题的正确地方。我也不确定我是否只是在互联网上很糟糕,但我无法找到有关 Xamarin 的 UI 坐标系的任何权威文档。我可以说 (0, 0) 在左上角。但是,UI 对象的原点是否位于中心?是在左上角吗?左中?该系统显然不是以像素为单位的。绝对位置分辨率是否独立?

如果有人知道这个文档/能给我详细解释它是如何工作的,我将永远感激不尽。

提前致谢!

【问题讨论】:

    标签: user-interface xamarin cross-platform


    【解决方案1】:

    所有尺寸均从其父级的左上角计算。根父级是 Page。

    事物的定位方式也取决于 LayoutOptions (https://stackoverflow.com/a/25338534/5064986)

    Xamarin.Forms 的理念是使用 尽可能的底层平台。按照这个 哲学,Xamarin.Forms 程序员使用定义的大小 每个特定的平台。程序员遇到的所有尺寸 通过 Xamarin.Forms API 在这些平台特定 独立于设备的单元。

    这将是 iOS 中的“点”和 Android 中的“dpi”。

    有一整本书的章节(免费) https://download.xamarin.com/developer/xamarin-forms-book/BookPreview2-Ch05-Rel0203.pdf

    【讨论】:

    • 当您使用跨平台解决方案时,这是否保持不变?大部分 UI 都在主解决方案中布置一次,而不是在特定于平台的解决方案中布置。部署到 iOS 或 Android 时,它将为每个 UI 对象的边界使用相同的值。因此,如果我将 Grid 列的宽度设置为 50,当我为 iOS 发布时它仍然是 50 点,而当我为 Android 发布时它仍然是 50 dpi?不能保证 1 点 == 1 dpi,但网格列的宽度在两个平台上是相同的。这是如何工作的?
    • 是的,它在任何 Xamarin.Forms 应用程序中的工作方式都相同。不能保证 1 点 == 1 dpi,但大多数时候它的大小非常相似。
    猜你喜欢
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 2014-10-20
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多