Xamarin Forms - AbsoluteLayout - 工作位置如何

Emi*_*m23 10 absolutelayout xamarin.forms

我正在使用AbsoluteLayout的Xamarin.Forms,但是,我不确定如何处理元素的位置.

我正在使用比例值,所以如果我AbsoluteLayout.LayoutBounds="1, 0.05, 0.15, 0.1"在每个值都是比例的位置放置一个元素(所以标志是"全部" AbsoluteLayout.LayoutFlags="All")

它将放置在屏幕的顶部/右侧.然而,它不会占据一席之地.那意味着什么呢?如果外面的每个元素都重新定位到屏幕上?

在此输入图像描述

但是现在,当你放置一个元素时,另一个问题是基于X/Y位置?是中心还是其他方面?

在此输入图像描述

在这个例子中,我尝试使用0.15,但渲染有点奇怪,所以我把0然后渲染匹配我想要的.

你可以说"测试它,你会看到."然而,对于设计师和我来说,定位每个元素是浪费时间,因为我们不确定它是如何工作的.因此,我们努力尝试使用debuging ..

我们还在搜索是否存在一个软件来生成有关设计师设计的位置.我们指的是元素的位置X/Y百分比.

预先感谢 !

Fra*_*ois 22

使用AbsoluteLayoutFlag.All,Rectangle bounds参数具有以下含义:

  • x表示应该在控件左侧的剩余空间百分比(即父宽度 - 控制宽度)
  • y表示应该在控件顶部的剩余空间百分比(即父高 - 控制高度)
  • width是控件的宽度,以父宽度的百分比表示
  • height是控件的高度,以父高度的百分比表示

宽度和高度是人们通常所期望的.然而,x和y不是因为人们更习惯于"左"和"顶".所以你可以编写一个转换器来将左边的百分比转换为x,将最高百分比转换成y:

x =左/(1 - 宽度)
y =顶部/(1 - 高度)


Yeh*_*kyi 7

<AbsoluteLayout BackgroundColor="Yellow">
<BoxView
    Color="Red"
    AbsoluteLayout.LayoutBounds="1.0, 1.0, 0.5, 0.5"
    AbsoluteLayout.LayoutFlags="All" />

<BoxView
    Color="Green"
    WidthRequest="50"
    HeightRequest="50"
    AbsoluteLayout.LayoutBounds="0.1, 0.1, AutoSize, AutoSize"
    AbsoluteLayout.LayoutFlags="PositionProportional" />

<BoxView
    Color="Blue"
    AbsoluteLayout.LayoutBounds="0.25, 0.25, 0.5, 0.5"
    AbsoluteLayout.LayoutFlags="All" />
</AbsoluteLayout>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

当我研究时,AbsoluteLayout我创建了这个样本

测试它,你会看到

我已经从我的调查决定: XY是左上角的坐标View.这是相对的立场.正如您所看到的那样,红色矩形1.0, 1.0是中心位置,因此,据我所知,屏幕的宽度为100%2.0(高度相同).内部的所有视图都AbsoluteLayout取决于父级的值AbsoluteLayout.

编辑:

X并且Y是中心坐标View,而不是左上角.100%Width1.0.