自定义面板WPF

时间:2017-07-11 16:50:15

标签: c# wpf custom-controls

我创建了一个类并从类面板继承它并向其添加内容,但由于某种原因,窗口不计入内容,窗口的高度和宽度设置为零。 窗口的大小是自动设置的。

  adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItemMultipleChoice, observacao);
            lv.Adapter = adapter;
            lv.ChoiceMode = ChoiceMode.Multiple;

如果你采用一个简单的网格,那么一切都很好。 这是我的班级

SizeToContent = "WidthAndHeight"

请帮助!

1 个答案:

答案 0 :(得分:0)

为了支持SizeToContent,您的MeasureOverride方法应该在布局后返回Panel的最终所需大小。在您的示例中,这只是其子项的最大宽度和高度:

protected override Size MeasureOverride(Size availableSize)
{
    var measuredSize = new Size();

    foreach (UIElement element in InternalChildren)
    {
        element.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

        var elementSize = element.DesiredSize;

        measuredSize.Width = Math.Max(measuredSize.Width, elementSize.Width);
        measuredSize.Height = Math.Max(measuredSize.Height, elementSize.Height);
    }

    return measuredSize;
}