Как рассчитать ограничивающую рамку для Expander? - PullRequest
0 голосов
/ 05 июля 2010

У меня есть элемент управления Expander, и мне нужно рассчитать его границы без невидимых элементов и полей.Обычно это можно сделать с помощью VisualTreeHelper.GetDescendantsBounds.Но кажется, что прямоугольник вычисляется VisualTreeHelper не зависит от состояния расширителя.Например:

http://i.piccy.info/i5/58/39/273958/collapsed.jpg

(я не могу публиковать изображения. Извините)

Тот же результат, что и в расширенном состоянии (светло-зеленый прямоугольник на изображении)Кто-нибудь знает, как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 06 июля 2010

Это пример приложения . Стиль применяется здесь к элементу управления TreeView и его элементам. Но проблема не зависит от стиля.

0 голосов
/ 05 июля 2010

Элемент управления Expander установит видимость своего содержимого на Collapsed, что означает, что он не будет учитываться при макете и не будет включен в GetDescendantBounds.Однако Expander может быть вынужден иметь больший размер механизмом компоновки, и собственный размер Expander включен в GetDescendantBounds.

Попробуйте установить VerticalAlignment="Top" на расширителе.По умолчанию это Stretch, что позволит увеличить его, если у родителя будет больше свободного места.Также убедитесь, что вы явно не устанавливаете свойство Height.

...