如何在StackPanel中包装一组textblock



这是我的代码。

<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>属性来定义所有这些,因为我想在上面的代码中为定义为Links的TextBlocks注册Tap事件。这里也不希望使用Button s和Hyperlink s。同样,对于按钮,我将有同样的问题来包装内容。

我看到这里有三个选项:

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

我认为#1应该是首选的方法,假设你能使它符合要求。RichTextBox可以包含与Hyperlinks内联的纯文本——后者不暴露Tap事件,但它有Click可能足够了。

如果失败,#2也应该相当直接,如果你能与WrapPanel将把textblock作为原子(即,它不会包装内部textblock文本)的限制工作可能就足够了。

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

最新更新