我希望两个texbox填充面板中的可用空间。但两者都必须包含相同的宽度。所以DockPanel
lastchildfill在这里不起作用。
我有一个你可以看到的图像,我只创建了2个没有任何宽度的文本框。空白空间应该由两个文本框填充,如上所述(上面是手动宽度=" xxx"但我不想'想像这样硬核。
我希望它像Grid.Column width =" *"
我是否必须为每个面板创建Grid
? (会有更多的文本框)
我的XAML很简单,因为我不知道如何实现我的想法:
<DockPanel LastChildFill="False">
<TextBox DockPanel.Dock="Left" x:Name="nachname_textbox"/>
<TextBox DockPanel.Dock="Right" x:Name="vorname_textbox"/>
</DockPanel>
答案 0 :(得分:2)
UniformGrid
控制可能适合您的需要:它会自动将所有控件放置在单元格中,每个控件都具有相同的宽度和高度。您可以定义所需的行数和列数。
<UniformGrid Columns=2>
<TextBox />
<TextBox/>
</UniformGrid>
答案 1 :(得分:-1)
如果您希望两个元素填充au run
每个可用宽度的50%,则应在每个Panel
中添加Grid
两个ColumnDefinitions
,即只需将Panel
替换为DockPanel
:
Grid
如果您想减少XAML的数量,可以创建自己的自定义<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBox />
<TextBox Grid.Column="1" />
</Grid>
类:
Grid
...并使用这个:
public class My2x2Grid : Grid
{
public My2x2Grid()
{
ColumnDefinitions.Add(new ColumnDefinition());
ColumnDefinitions.Add(new ColumnDefinition());
}
}