wpf - 为什么文本框不在 stackpanel WPF 中拉伸?
问题描述
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25*" />
<ColumnDefinition Width="49*" />
<ColumnDefinition Width="25*" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="1" Margin="30" VerticalAlignment="Center">
<StackPanel Orientation="Horizontal">
<TextBlock Margin="0,0,5,0" Text="Username:" />
<TextBox HorizontalAlignment="Stretch"/>
</StackPanel>
</StackPanel>
我试图做到这一点,以便文本框将填充当前 StackPanel 内的其余空间。但是“拉伸”属性似乎不起作用 - 为什么会这样?
有没有不同的方法或者我做错了什么?
解决方案
AStackPanel
总是试图实现最小可能的高度/宽度,具体取决于方向;因此,Stretch
没有效果。您可能想要使用 aDockPanel
来代替,它允许孩子们伸展:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25*" />
<ColumnDefinition Width="49*" />
<ColumnDefinition Width="25*" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="1"
Margin="30"
VerticalAlignment="Center">
<DockPanel>
<TextBlock DockPanel.Dock="Left" Margin="0,0,5,0"
Text="Username:" />
<TextBox HorizontalAlignment="Stretch"/>
</DockPanel>
</StackPanel>
</Grid>
推荐阅读
- html - 嵌入 html 图片 tkinter
- c++ - QWidget中的QLayout
- google-cloud-platform - 使用 Google Spanner 导出/导入工具
- angular - 如何在 Angular 5 中创建通配符指令?
- javascript - JSCONSOLE 已启动并运行但由于错误 404 而无法正常工作?
- c# - 使用 OpenHardwareMonitor NuGet 包获取 VRAM Total
- java - 使用具有多个 $project 的 MongoDB java 驱动程序进行聚合
- python - 将数据框列标题和值拆分为多列
- java - 级联在JPA中插入一对子子关系
- mysql - LOAD DATA FROM S3 命令因时间戳而失败