c# xamarin怎么样 Xamarin形成相对布局-获得一个中心内部的堆栈布局



xamarin怎么样 (1)

您可以使用请求值。 检查宽度/高度是否为-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))
        );

我有一个Xamarin表单应用程序,我使用相对布局来获取一些非常特定的元素。 我想在相对布局的中间有一个堆栈布局。 我使用这个代码:

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

    );

当表单加载时,我没有得到正确的结果。 堆栈布局是一路向一边。 但是,如果我旋转屏幕,然后再回来,它看起来很完美。 所以我得知,当渲染布局时,堆栈布局的高度和宽度还没有完全计算,但旋转时,这些值是已知的,所以它正确渲染。

我怎样才能得到完美的中心初始表单加载堆栈布局?