Сброс высоты панели стека до динамического - PullRequest
1 голос
/ 14 марта 2019

Если высота не установлена, высота панели стека является динамической в ​​зависимости от ее содержимого. Мой вопрос: если код c # устанавливает высоту, есть ли способ (в c #) стереть эти значения и вернуть динамически изменяемый размер панели стека? Как то так ...

spnTest.Height = 100; //expands height to 100, even if contents don't fill it
spnTest.HeightIsDynamic = true; //allows the height of spnTest to go back to being dynamic and expand/contract based on its contents

По какой-то причине установка высоты в два раза. Нет эффекта ...

stkTest.Height = 117;
Console.WriteLine($"Height = {stkTest.Height}"); //writes "Height = 117"
stkTest.Height = double.NaN;
Console.WriteLine($"Height = {stkTest.Height}"); //writes "Height = 117"

.ClearValue (HeightProperty) также не работает

1 Ответ

1 голос
/ 14 марта 2019

StackPanel первоначально измеряет необходимый размер элемента, используя размеры дочерних элементов, содержащихся в нем. Это начальное измерение должно быть сохранено в DesiredSize. Я бы попробовал использовать высоту, которая там хранится, чтобы получить исходное измерение для элемента. Проверьте запись MSDN.

MSDN StackPanel

...