如何在StackPanel中包装一组TextBlocks?

问题描述 投票:1回答:1

这是我的代码。

<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。在这里也不需要使用Buttons和Hyperlinks。使用按钮我也会遇到包装内容的相同问题。

windows-phone-8 windows-phone stackpanel
1个回答
1
投票

我在这里看到三个选项:

  1. 使用RichTextBox
  2. 从Windows Phone Toolkit中提升WrapPanel
  3. 写你自己的Panel

我认为#1应该是首选方法,假设您可以使其符合要求。 RichTextBox可以包含与Hyperlinks内联的纯文本 - 后者不公开Tap事件,但它确实有Click,这可能就足够了。

如果做不到这一点,#2也应该相当简单,如果你可以使用WrapPanel将TextBlocks视为原子的限制(即,它不会包装文本块内文本),这可能就足够了。

方法#3在理论上允许更多的灵活性,但实施需要一些努力和专业知识。当您可能需要根据新的或不可预见的要求调整自定义面板时,您可能还会面临一些麻烦。

© www.soinside.com 2019 - 2024. All rights reserved.