【发布时间】:2013-10-28 16:19:17
【问题描述】:
我有一个 WPF 应用程序,我正在寻找一种方法来对齐一些 Label 和 TextBox 控件,以便 TextBox 控件始终是内联的,但也允许 Label 内容是动态的(应根据需要移动 TextBox) .
这有点难以解释,所以这里有几个屏幕截图应该可以显示我的要求...
之前:
之后:
请注意第一个 TextBox 如何向右移动以便为较长的文本腾出空间,而第二个 TextBox 也移动以与第一个保持内联。 (我想要的行为类似于 HTML 表格,每行有两个单元格)
请记住,我对 WPF 还很陌生(所以我可能完全走错了路),我使用了几个 StackPanel 来满足动态大小的标签。但是,问题当然是两个 StackPanel 互不了解。
这是我当前的代码:
<StackPanel Orientation="Horizontal">
<Label Content="Label 1" HorizontalAlignment="Left" VerticalAlignment="Top"/>
<TextBox HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="200"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label Content="Label 2" HorizontalAlignment="Left" VerticalAlignment="Top"/>
<TextBox HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="200"/>
</StackPanel>
有没有办法通过使用 StackPanels 来获得我想要的东西?如果不是,我可以使用哪些其他控件或方法来满足我的要求?
【问题讨论】:
-
@Jonesy 设置
HorizontalAlignment在水平方向的 StackPanel 中是无用的。 @musefan 你可能正在寻找Grid。