Чтобы изменить размер и упорядочить пользовательский элемент управления в соответствии с размером его подэлементов, необходимо переопределить MeasureOverride и ArrangeOverride .
Для получения подробной информации см. Ссылки, но в двух словах ваш элемент управления должен (в MeasureOverride):
- вызовите
UIElement.Measure
на всех дочерних элементах (включая ваши ярлыки), которые вернут размер, который каждый из ваших хотел бы иметь ,
- рассчитайте свой желаемый размер и
- возвращает этот размер в каркас (используя его в качестве возвращаемого значения
MeasureOverride
).
После этого в ArrangeOverride вы получаете размер, выделенный вашему элементу управления платформой в качестве параметра, и вы
- определяет, сколько места вы хотите выделить для каждого из ваших дочерних элементов, и
- вызов
UIElement.Arrange
для каждого дочернего элемента.