gpt4 book ai didi

c# - StackPanel.ActualHeight 始终为零

转载 作者:行者123 更新时间:2023-11-30 17:00:26 25 4
gpt4 key购买 nike

我在运行时创建了一个 StackPanel,我想像这样测量 StackPanelHeight:

StackPanel panel = new StackPanel();
panel.Children.Add(new Button() { Width = 75, Height = 25 });
Title = panel.ActualHeight.ToString();

但是 ActualHeight 始终为零。如何测量 StackPanel高度

最佳答案

如果您想在不加载 UI 内容的情况下测量尺寸,则必须在包含面板上调用MeasureArrange 来复制 GUI场景。

被告知 WPF 布局系统是如何工作的,面板首先调用 Measure(),其中面板告诉它的 child 有多少空间可用,每个 child 告诉它的 parent 它想要多少空间。然后调用 Arrange(),每个控件根据可用空间排列其内容或子项。

我建议在这里阅读更多相关信息 - WPF Layout System .


话虽如此,这就是您手动执行的方式:

StackPanel panel = new StackPanel();
panel.Children.Add(new Button() { Width = 75, Height = 25 });
panel.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
panel.Arrange(new Rect(0, 0, panel.DesiredSize.Width, panel.DesiredSize.Height));
Title = panel.ActualHeight.ToString();

关于c# - StackPanel.ActualHeight 始终为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22282207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com