WPF使d​​ockpanel中的控件具有相同的高度同时填充所有停靠空间?

时间:2014-09-12 21:56:02

标签: wpf wpf-controls

我的问题很简单,

我有一个停靠面板,我使用此代码以编程方式填充按钮

for(int i = 0 ; i< 5 ; i++)
{

Button btn = new Button();
btn.Content = "test";
btn.Height = Double.NaN;                  
DockPanel.SetDock(btn, Dock.Top);
dock1.Children.Add(btn);

}

填写此停靠栏

<DockPanel x:Name="dock1" Grid.Column="1" Background="LightSkyBlue"    >

如果我将LastChildFill设置为False

这是结果: - enter image description here

如果我将LastChildFill设置为True

这是结果: - enter image description here

我想要的是这些按钮用于填充具有相同高度的停靠栏并完全填充面板区域

像这样: -

enter image description here

1 个答案:

答案 0 :(得分:3)

您可能会将UniformGrid与1列一起使用,这样可以统一分配空间和大小

示例代码

<UniformGrid Columns="1" Margin="10,0">
    <Button Height="25" Content="Motor gas 1:35 %"/>
    <Button Height="25" Content="Motor gas 2:36 %"/>
    <Button Height="25" Content="Motor gas 3:36 %"/>
    <Button Height="25" Content="Motor Air:200 %"/>
</UniformGrid>

结果

result

这是上面示例的代码隐藏方法

XAML

<UniformGrid Columns="1" Margin="10,0" x:Name="uGrid1" Grid.Column="1" />

for(int i = 0 ; i< 5 ; i++)
{
    Button btn = new Button();
    btn.Content = "test";
    btn.Height = 25;
    uGrid1.Children.Add(btn);
}