我有一个 StackPanel
在我想用作标签/值对( TextBlock
和 TextBox
)的容器的 WinRT C# Metro 应用程序中,如下所示:
<StackPanel Orientation="Horizontal" Width="400">
<TextBlock Text="Label" Width="150" />
<TextBox Text="Value" />
</StackPanel>
现在我想要的是让 TextBox 自动填充 StackPanel 的剩余水平空间。这有可能吗?
HorizontalAlignment
/HorizontalContentAlignment
不工作。我知道另一种方法是定义
Grid
为了那个原因。问题是我多次使用此构造并希望在 Style
中使用它。定义。我不想用 x 次的行和列来定义 Grid 的定义......也许另一种选择是定义一个自定义用户控件,但我希望很容易获得
TextBox
拉伸(stretch)。
最佳答案
不幸的是,Metro 没有替代方案(DockPanel)。您可以尝试 WrapGrid,但我不知道它是否能解决您的问题(我从未使用过它)。
这样做的唯一真正方法是使用您所描述的 Grid :
<Grid Width="400">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Text="Label" Width="150" />
<TextBox Text="Value" Grid.Column="1" />
</Grid>
关于xaml - 让 TextBox 拉伸(stretch)以填充 StackPanel 中的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11137884/