WPF在dockpanel中以相同高度制作控件,同时填充所有码头空间?

WPF在dockpanel中以相同高度制作控件,同时填充所有码头空间?,wpf,wpf-controls,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); } for(int i=0;i

我的问题很简单

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

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);

}
for(int i=0;i<5;i++)
{
按钮btn=新按钮();
btn.Content=“测试”;
btn.高度=Double.NaN;
DockPanel.SetDock(btn,Dock.Top);
dock1.Children.Add(btn);
}
填满这个码头

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

如果我将LastChildFill设置为
False

结果如下:

如果我将LastChildFill设置为
True

结果是:-

我想要的是这些按钮以相同的高度填充dockpanel,并完全填充面板区域

例如:


您可以使用带有一列的
UniformGrid
,这将帮助您统一分配空间和大小

示例代码

<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>

结果

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

xaml


代码

for(int i=0;i<5;i++)
{
按钮btn=新按钮();
btn.Content=“测试”;
btn.高度=25;
uGrid1.儿童。添加(btn);
}

您需要一个
。使用XAML来定义UI,而不是使用过程代码来创建它。而
DockPanel
并不是合适的容器。使用
StackPanel
并向按钮添加
Margin
s。按钮创建基于DB查询,因此无法预定义@HighCore@xsari3x我从来没有说过它应该是“预定义的”。你需要学会正确使用WPF。开始阅读并跟随链接。
<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);
}