将堆叠面板高度重置为动态

时间:2019-03-14 20:15:37

标签: c# wpf stackpanel

如果未设置高度,则堆叠面板的高度将根据其内容而动态变化。我的问题是:如果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

出于某种原因,将高度设置为两倍。NaN无效...

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 个答案:

答案 0 :(得分:1)

StackPanel首先通过使用其中包含的子元素的大小来测量所需的元素大小。此初始测量值应存储在DesiredSize中。我会尝试使用存储在那里的高度来获取元素的原始尺寸。查看MSDN条目。

MSDN StackPanel