C# 如何在水平方向的堆栈面板中拉伸第二个元素?
我需要拉伸整个宽度水平方向stackpanel上的第二个元素(textblock必须在左侧,textBox应该获得所有剩余空间)。我读了很多关于这个话题的书,但仍然找不到答案。属性水平对齐水平内容对齐当然不合适。据我所知,我必须使用StackPanel以外的其他工具,因为它取决于内容大小。我尝试使用网格行列和其他变体,但仍然无法获得所需的内容。请帮助我:)代码示例和屏幕截图C# 如何在水平方向的堆栈面板中拉伸第二个元素?,c#,controls,win-universal-app,stretch,C#,Controls,Win Universal App,Stretch,我需要拉伸整个宽度水平方向stackpanel上的第二个元素(textblock必须在左侧,textBox应该获得所有剩余空间)。我读了很多关于这个话题的书,但仍然找不到答案。属性水平对齐水平内容对齐当然不合适。据我所知,我必须使用StackPanel以外的其他工具,因为它取决于内容大小。我尝试使用网格行列和其他变体,但仍然无法获得所需的内容。请帮助我:)代码示例和屏幕截图 <Grid> <StackPanel> <S
<Grid>
<StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
<TextBlock Text="Login"></TextBlock>
<TextBox PlaceholderText="login" HorizontalAlignment="Stretch"/>
</StackPanel>
...
more StackPanels
...
</StackPanel>
</Grid>
...
更多堆叠面板
...
使用网格列定义对我来说似乎是最简单的方法。 此示例代码应有助于:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.2*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Login" Background="Red" />
<TextBox Grid.Column="1" Background="Blue"/>
</Grid>
它将在左侧显示一个红色背景的文本块(使用20%的可用空间),在右侧显示一个蓝色背景的文本框(延伸到剩余空间)
您可以通过更改第一列定义的宽度来调整文本块的宽度
希望能有帮助。是的,很有效。只是有点不寻常:)谢谢!例如,通过添加两个
行定义
,还可以避免使用两个单独的网格。