当我将一个TextBlock放置在水平对齐的StackPanel内时,它不会换行。我意识到这是因为StackPanel的可用宽度为PositiveInfinity,但是有没有解决方法?TextBlock TextWrapping不包装
我的布局比这个示例复杂得多,所以我不能删除StackPanel或者水平方向的 。我只是试图重现表现行为的最简单的例子。
<StackPanel Orientation="Horizontal">
<Rectangle Width="50" Height="50" Fill="Blue" VerticalAlignment="Top" />
<Rectangle Width="50" Height="50" Fill="Red" VerticalAlignment="Top" />
<TextBlock TextWrapping="Wrap"
Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus leo lectus, viverra ut lobortis vel, mollis eget lectus. Suspendisse laoreet consequat ultrices. Curabitur ultricies, tortor feugiat porttitor faucibus, lorem eros pretium nisl, eu ullamcorper mauris tortor sit amet augue." />
</StackPanel>
更新: TextBlock的宽度必须是动态的。我需要它随着窗口的大小而流动。
更新2:向StackPanel添加了另一个元素,因为我需要水平布置的子项。
更新3(解决方案):用DockPanel替换StackPanel。
<DockPanel>
<DockPanel DockPanel.Dock="Top">
<Rectangle Width="50" Height="50" Fill="Blue" VerticalAlignment="Top" DockPanel.Dock="Left" />
<Rectangle Width="50" Height="50" Fill="Red" VerticalAlignment="Top" DockPanel.Dock="Left" />
<TextBlock TextWrapping="Wrap"
Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus leo lectus, viverra ut lobortis vel, mollis eget lectus. Suspendisse laoreet consequat ultrices. Curabitur ultricies, tortor feugiat porttitor faucibus, lorem eros pretium nisl, eu ullamcorper mauris tortor sit amet augue." />
</DockPanel>
</DockPanel>
我会更新示例。有时会显示消息左侧的图像。它的可视性由转换器打开或关闭。 –
如果只是这个图像,你会通过使用另一个DockPanel而不是你的StackPanel来获得更好的结果。 DockPanel总是限制其内容的大小,而StackPanel不会。 –
实际上有两个图像,但我会尝试使用DockPanel,并将它们对接到左侧。谢谢! –