首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StackPanel.ActualHeight总是零

StackPanel.ActualHeight总是零
EN

Stack Overflow用户
提问于 2014-03-09 12:33:00
回答 4查看 1.5K关注 0票数 3

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

代码语言:javascript
复制
StackPanel panel = new StackPanel();
panel.Children.Add(new Button() { Width = 75, Height = 25 });
Title = panel.ActualHeight.ToString();

ActualHeight也是零。如何测量HeightStackPanel

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-03-09 13:21:22

如果您想在不加载UI内容的情况下度量大小,您必须在包含面板Arrange调用和来复制GUI场景。

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

我建议在这里多读一些-- WPF布局系统

话虽如此,这就是你用手做的:

代码语言:javascript
复制
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();
票数 3
EN

Stack Overflow用户

发布于 2014-03-09 12:35:43

我不完全确定你想要做什么,但这段代码有效:

代码语言:javascript
复制
this.SetBinding(Window.TitleProperty, 
                new Binding()
                     {
                         Source = panel,
                         Path = new PropertyPath("ActualHeight")
                     });

通常,在布局和呈现之前,您将无法访问堆栈面板的大小。这发生在面板的Loaded事件之前,因此您可以处理该事件并处理它。

票数 0
EN

Stack Overflow用户

发布于 2014-03-09 12:57:29

尝试在ActualHeight事件中获取Loaded

代码语言:javascript
复制
private void Button_Click(object sender, RoutedEventArgs e)
{
    var panel = new StackPanel();
    var button = new Button();

    button.Width = 75;
    button.Height = 25;

    panel.Children.Add(button);
    panel.Loaded += new RoutedEventHandler(panel_Loaded);

    MainGrid.Children.Add(panel);
}

private void panel_Loaded(object sender, RoutedEventArgs e)
{
    Panel panel = sender as Panel;
    Title = panel.ActualHeight.ToString();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22282207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档