【发布时间】:2013-10-02 09:40:01
【问题描述】:
我的 xaml 在 stackPanel 中遇到了一个奇怪的问题。
我的 stackPanel 包含一个文本框和一个按钮。
这应该在同一行(如果可能,取决于文本宽度)。 问题是:
如果 stackPanel 有Orientation="Vertical",按钮将转到文本下面的行。
如果 stackPanel 有 Orientation="Horizontal" ,则该行不会做任何断行,因此所有行都会超出我的网格。
<StackPanel Name="spRemplir"
Grid.Row="2"
Grid.ColumnSpan="6"
Width="560"
Margin="5,5,5,5"
Orientation="Horizontal"
VerticalAlignment="Center">
<TextBlock FontWeight="Bold"
Text={Binding Text}
TextWrapping="Wrap"/>
<Button Name="btRemplir"
Margin="5,0,0,0"
Width="150"
Content="Remplir"/>
</StackPanel>
我如何获得一个 stackPanel,它会在必要时换行,并且在同一行上有一个文本和一个按钮?
感谢 Eli Arbel 更新 Wrapanel:
<toolkit:WrapPanel Name="spRemplir"
Grid.Row="2"
Grid.ColumnSpan="6"
Margin="5,5,5,5"
Width="560"
Orientation="Horizontal">
<TextBlock FontWeight="Bold"
Text={Binding Text}
TextWrapping="Wrap"/>
<Button Name="btRemplir"
Content="Remplir"/>
</toolkit:WrapPanel>
但是,按钮仍然在下一行,而在同一行的文本之后有足够的空间。
尝试删除面板上的 Width,但是,没有更多的包装......
我不明白。即使同一个 Grid 上有 stackPanel,它们也不应该干扰 wrap 面板吧?
谢谢。
【问题讨论】:
-
WPF?银光?视窗电话?视窗 8?更新你的标签。
-
也许问题是硬编码宽度 od StackPanel (Width="560")。如果它在网格中,则应该没有必要,它可能会导致您所描述的结果。
-
@EliArbel 你的权利。添加银光标签。布力:如果我去掉宽度,我就不会换行了。
标签: silverlight xaml silverlight-4.0 stackpanel