如何在动态添加视图后获得StackLayout的高度?

时间:2017-03-01 15:20:52

标签: xamarin xamarin.forms

我有一个StackLayout(垂直选项是Start)。我需要添加一个视图,然后获取StackLayout的高度。我怎样才能做到这一点? 现在在后面的代码中向StackLayout添加一个视图后,我得到Height属性等于0。

2 个答案:

答案 0 :(得分:3)

您尝试获取大小的代码的哪个部分?如果在构造函数中检查它或在添加视图后立即检查它将无法工作。你可以在构造函数中做什么:

        layout.SizeChanged += Layout_SizeChanged;

然后你会得到正确的尺寸

private void Layout_SizeChanged(object sender, EventArgs e)
{
    var h = layout.Height;
}

答案 1 :(得分:1)

我在这里添加了一个关于stacklayout的视图

StackLayout currentColumn = columns.ElementAt(currentColumnIndex);

currentColumn.Children.Add(orderCard);

想获得currentColumn.Height,但它是0。

相反,我使用了Measure并且提供了正确的Height

SizeRequest columnSizeRequest = currentColumn.Measure(OrdersContainer.Width / 5, OrdersContainer.Height);