gpt4 book ai didi

c# - Xamarin Forms 相对布局 - 获取内部居中的堆栈布局

转载 作者:太空狗 更新时间:2023-10-29 18:26:50 26 4
gpt4 key购买 nike

我有一个 Xamarin 表单应用程序,我在其中使用相对布局来非常具体地定位一些元素。我希望堆栈布局位于相对布局的中间。我使用这段代码:

_relativeLayout.Children.Add (
_stackLayout,
Constraint.RelativeToParent(p => (p.Width / 2) - (_stackLayout.Width / 2) ),
Constraint.RelativeToParent(p => (p.Height/ 2) - (_stackLayout.Height / 2) )

);

加载表单时,我没有得到正确的结果。堆栈布局偏向一侧。但是,如果我将屏幕旋转一个方向然后再旋转回来,它看起来很完美。所以我收集到,当渲染布局时,堆栈布局的高度和宽度尚未完全计算,但在旋转时这些值是已知的,因此它可以正确渲染。

如何使堆栈布局完美地居中于初始表单加载?

最佳答案

您可以使用请求值。检查宽度/高度是否为 -1,在这种情况下它尚未初始化,您应该使用请求值。如果它已被初始化,则使用它。

        this._relativeLayout.Children.Add(
this._stackLayout,
Constraint.RelativeToParent(p => (p.Width / 2) -
((this._stackLayout.Width == -1 ? this._stackLayout.WidthRequest : this._stackLayout.Width) / 2)),
Constraint.RelativeToParent(p => (p.Height / 2) -
((this._stackLayout.Height == -1 ? this._stackLayout.HeightRequest : this._stackLayout.Height) / 2))
);

关于c# - Xamarin Forms 相对布局 - 获取内部居中的堆栈布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25468128/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com