ハロー、
WPFでカスタムスタックパネルを作成したいのですが、パネルの高さに応じて、子のサイズを特定のサイズに自動的に変更します。しかし、パネルの高さは親まで伸びるので動的です。高さを取得したい場合(すべての可能性を試しました。コードを参照)、ビルドソリューションでは間違いなく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);
}
}