我有一个UserControl,它有几个按钮和一些Textblock。出于某种原因,TextWrap不适用于这个Textblock。
<StackPanel Grid.Column="0" Margin="0 0 0 10">
<TextBlock FontWeight="DemiBold" Text="Account closure" x:Name="Message"
Margin="0 6 0 2"
FontSize="18" />
<StackPanel Orientation="Horizontal" >
<TextBlock Text="A random text here, here, here "
Margin="0 6 0 0"
FontSize="18" />
<TextBlock Text="AZEQSD"
Margin="0 6 0 0"
TextWrapping="Wrap" FontWeight="DemiBold" FontSize="18" />
</StackPanel>
</StackPanel>输出(选定的部分=第二个StackPanel),而鼠标的部分则设置为TextWrapping属性为Wrap的第二个文本块。
看这里

发布于 2018-07-27 17:54:21
DockPanel可以更好地适应这种情况:
<StackPanel Grid.Column="0" Margin="0 0 0 10">
<TextBlock FontWeight="DemiBold" Text="Account closure" x:Name="Message"
Margin="0 6 0 2"
FontSize="18" />
<DockPanel>
<TextBlock DockPanel.Dock="Left" Text="A random text here, here, here "
Margin="0 6 0 0"
FontSize="18" />
<TextBlock Text="AZEQSD"
Margin="0 6 0 0"
TextWrapping="Wrap" FontWeight="DemiBold" FontSize="18" />
</DockPanel>
</StackPanel>编辑:
引用BradleyDotNET的评论:
这是因为
DockPanel将把最后一个子节点限制到剩余的空间,并填充它的容器,即受网格约束的堆栈面板。
Edit2:
您可以使用WrapPanel将te整个第二个文本块换到下一行:
<StackPanel Grid.Column="0" Margin="0 0 0 10">
<TextBlock FontWeight="DemiBold" Text="Account closure" x:Name="Message"
Margin="0 6 0 2"
FontSize="18" />
<WrapPanel>
<TextBlock DockPanel.Dock="Left" Text="A random text here, here, here "
Margin="0 6 0 0"
FontSize="18" />
<TextBlock Text="AZEQSD"
Margin="0 6 0 0"
TextWrapping="Wrap" FontWeight="DemiBold" FontSize="18" />
</WrapPanel>
</StackPanel>发布于 2018-07-27 17:54:54
StackPanel大小,以适应它的内容,除非它实际上给定了一个大小。因此,在“基本”情况下,单词包装不像您所显示的那样有效。
“主”TextBlock中的StackPanel将有包装工作,因为它的宽度受到Grid.Column的限制。嵌套的StackPanel没有这样的限制。最简单的方法是将第二个堆栈面板放在主网格中(第1行,第0列),这样它也会受到约束;尽管还有许多其他的可能性。
https://stackoverflow.com/questions/51563055
复制相似问题