如何在StackPanel中包装一组TextBlocks?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在StackPanel中包装一组TextBlocks?相关的知识,希望对你有一定的参考价值。
这是我的代码。
<StackPanel Orientation="Horizontal">
<TextBlock Name="Link1" Text="this is link1"></TextBlock>
<TextBlock Name="Text1" Text=" some text "></TextBlock>
<TextBlock Name="Link2" Text="this is link2"></TextBlock>
<TextBlock Name="Text2" Text=" some other text "></TextBlock>
<TextBlock Name="Link3" Text="this is link3></TextBlock>
</StackPanel>
现在这个StackPanel将离开屏幕。我想把它的内容包装到屏幕末端的下一行。
我没有使用TextBlock的<Run>
属性来定义所有这些,因为我想在上面的代码中为textBlocks注册Tap
事件定义为Links
。在这里也不需要使用Button
s和Hyperlink
s。使用按钮我也会遇到包装内容的相同问题。
答案
我在这里看到三个选项:
- 使用
RichTextBox
- 从Windows Phone Toolkit中提升
WrapPanel
- 写你自己的
Panel
我认为#1应该是首选方法,假设您可以使其符合要求。 RichTextBox可以包含与Hyperlinks
内联的纯文本 - 后者不公开Tap
事件,但它确实有Click
,这可能就足够了。
如果做不到这一点,#2也应该相当简单,如果你可以使用WrapPanel将TextBlocks视为原子的限制(即,它不会包装文本块内文本),这可能就足够了。
方法#3在理论上允许更多的灵活性,但实施需要一些努力和专业知识。当您可能需要根据新的或不可预见的要求调整自定义面板时,您可能还会面临一些麻烦。
以上是关于如何在StackPanel中包装一组TextBlocks?的主要内容,如果未能解决你的问题,请参考以下文章