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

问题描述 投票:1回答:1

如果未设置高度,则“堆栈面板”的高度将根据其内容动态显示。我的问题是:如果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

出于某种原因,将高度设置为double.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)也不起作用

c# wpf stackpanel
1个回答
1
投票

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

MSDN StackPanel

© www.soinside.com 2019 - 2024. All rights reserved.