Show / Hide Table of Contents

Практическое руководство. Создание пользовательского элемента панели

Пример

В этом примере показано, как переопределить поведение по умолчанию макет Panel элемент и создать пользовательский макет элементов, которые являются производными от Panel.

В примере определяется простой пользовательский Panel элемент с именем PlotPanel, который размещает дочерние элементы в соответствии с двумя жестко координаты x и y-. В этом примере x и y устанавливается 50; таким образом, все дочерние элементы располагаются в этом расположении на x и y осей.

Чтобы реализовать пользовательскую Panel поведения, в примере используется MeasureOverride и ArrangeOverride методы. Каждый метод возвращает Size данные, необходимые для размещения и отображения дочерних элементов.

public class PlotPanel : Panel
{
    // Default public constructor
    public PlotPanel()
        : base()
    {
    }

    // Override the default Measure method of Panel
    protected override Size MeasureOverride(Size availableSize)
    {
        Size panelDesiredSize = new Size();

        // In our example, we just have one child.
        // Report that our panel requires just the size of its only child.
        foreach (UIElement child in InternalChildren)
        {
            child.Measure(availableSize);
            panelDesiredSize = child.DesiredSize;
        }

        return panelDesiredSize ;
    }
    protected override Size ArrangeOverride(Size finalSize)
    {
        foreach (UIElement child in InternalChildren)
        {
            double x = 50;
            double y = 50;

            child.Arrange(new Rect(new Point(x, y), child.DesiredSize));
        }
        return finalSize; // Returns the final Arranged size
    }
}

См. также

  • Panel
  • Общие сведения о панелях
  • Создание пользовательского содержимого пример
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX