如何对水平对齐的多个控件的内容进行文本换行,使其看起来像一个字符串

本文关键字:看起来 字符串 一个 换行 对齐 水平 控件 文本 | 更新日期: 2023-09-27 18:22:07

我有三个水平对齐的控件,一个ListPicker,一个Textblock和一个ListPixer。

内容看起来像

美利坚合众国诉英国

美利坚合众国-第一个ListPicker的内容(根据所选项目更改值)

v/s-文本块内容

英国-第二个ListPicker的内容(根据所选项目更改值)

我需要用文本包装整个字符串"美利坚合众国诉英国",就好像它是单个控件的内容一样。

这可能吗?请帮忙。

如何对水平对齐的多个控件的内容进行文本换行,使其看起来像一个字符串

您可以尝试将RichTextBox与InlineUIContainers:一起使用

      <RichTextBox>
        <Paragraph>
          <InlineUIContainer>
            <ListBox>
              <ListBoxItem>United states of America</ListBoxItem>
              <ListBoxItem>United states of America</ListBoxItem>
            </ListBox>
          </InlineUIContainer>
          <Run Text="vs" />
          <InlineUIContainer>
            <ListBox>
              <ListBoxItem>United Kingdom</ListBoxItem>
              <ListBoxItem>United Kingdom</ListBoxItem>
            </ListBox>
          </InlineUIContainer>
        </Paragraph>
      </RichTextBox>

但这仍然无法将文本包装在InlineUIContainer中。它将仅包裹相对于彼此的零件。

如果你想能够包装内部文本,你需要改变你的方法。我能想到的唯一解决方案是使用超链接:

      <RichTextBox>
        <Paragraph>
          <Hyperlink Click="Hyperlink1_Click">United states of America</Hyperlink>
          <Run Text=" vs " />
          <Hyperlink Click="Hyperlink2_Click">United states of America</Hyperlink>
        </Paragraph>
      </RichTextBox>

和处理超链接。单击事件,而不是导航,以显示要拾取的项目列表,然后更改超链接的文本以反映新选择的项目。您可能还想尝试重新设计超链接的样式

您可以使用堆叠面板,如下所示:

<StackPanel Orientation="Horizontal" >
                    <toolkit:ListPicker VerticalAlignment="Center" Width="100"/>
                    <TextBlock Text="vs" VerticalAlignment="Center" TextAlignment="Center"/>
                    <toolkit:ListPicker VerticalAlignment="Center" Width="100" />
                </StackPanel>

注意:"宽度"取决于您