你好,
我想在WPF中创建一个自定义的StackPanel,它可以根据面板的高度自动调整其子元素的大小到一定程度。但是面板的高度是动态的,因为它会伸展到其父级。当我想要获取高度时(我尝试了所有可能性,请参见代码),它总是为0或未定义,尽管在构建解决方案中它绝对不为0。
以下是代码:
XAML:
<my:AutoSizeButtonStackPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
后台代码:
public class AutoSizeButtonStackPanel : StackPanel
{
public void AddChild(Button newButton)
{
double getPanelHeight;
getPanelHeight = this.ActualHeight; //is 0
getPanelHeight = this.ViewportHeight; //is 0
getPanelHeight = this.Height; //is n. def.
getPanelHeight = this.DesiredSize.Height; //is 0
getPanelHeight = this.RenderSize.Height; //is 0
newButton.Height = getPanelHeight / 2;
this.Children.Add(newButton);
}
}