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

时间:2014-09-17 11:31:02

标签: c# xaml windows-phone-8

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

内容看起来像,

美利坚合众国v / s英国

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

v / s - 文本块内容

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

我需要对整个字符串进行文本处理"美国v / s英国"好像它是单个控件的内容。

这可能吗?请帮忙。

2 个答案:

答案 0 :(得分:0)

您可以尝试将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>

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

答案 1 :(得分:-1)

您可以使用stackpanel,如下所示:

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

注意:“宽度”取决于您。