xaml - 让 TextBox 拉伸(stretch)以填充 StackPanel 中的宽度

标签 xaml textbox windows-runtime microsoft-metro stackpanel

我有一个 StackPanel在我想用作标签/值对( TextBlockTextBox )的容器的 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/

相关文章:

c# - 文本框的两种方式绑定(bind)

c# - 我可以在 WinRT 中更改主磁贴的背景颜色吗?

c# - 设置数据绑定(bind)后如何向列表框添加内容?

c# - WPF 数据绑定(bind)不填充选项卡?

c# - Universal Windows Store App 关闭时如何执行代码?

silverlight-4.0 - Silverlight 4 TextBox 中的字符大小写

c# - WPF 弹出控件 - 查找 X、Y 坐标

wpf - 如何跟踪 WPF 的 TextBox 中删除了哪个字符?

c# - 具有关系的简单 ORM

c++ - 如何使用 WinRT 在 Windows 8 Metro 应用程序中播放声音文件?