文本框的背景颜色部分

Background color part of textbox

我一直在尝试为文本块的一部分设置背景颜色。由于 TextBlock 本身没有此功能,我想我应该添加内联。

然而,内联对象(运行、Span,例如)有一个从父 TextBlock 获取值的私有背景字段。

我想我会尝试使用 InlineUIContainer。这是我使用的代码:

Grid grid = new Grid();
grid.Background = new SolidColorBrush(Colors.Red);
TextBlock block = new TextBlock();
block.Text = temp2;
grid.Children.Add(block);

InlineUIContainer iuic= new InlineUIContainer();
iuic.Child = grid;

Parent_TextBlock.Inlines.Add(iuic);

最后一行给出了一个 ArgumentException。有没有办法改变 TextBlocks 背景颜色的一部分?如果是这样,我走对了吗?

可能以下选项可以帮助到您。

您可以使用 RitchTextBox,因为在 WindowsPhone 中 RitchTextBox 是只读的(作为 TextBlock)。 我的快速示例 :) :

        <RichTextBox>
            <Paragraph>
                Some textSome textSome textSome textSome
                <Span Foreground="#FF0E0E0E">textSome textSome textSome</Span>
                textSome textSome textSome textSome textSome textSome textSome textSome textSome 
                textSome textSome textSome textSome textSome textSome textSome textSome textSome
                <InlineUIContainer> <!-- Look this -->
                    <Border Background="Blue">
                        <TextBlock Text="textSome textSome textSome textSome textSome textSome textSome textSome textSome textSome text"/>
                    </Border>
                </InlineUIContainer>
                textSome textSome textSome textSome textSome textSome textSome textSome textSome 
                textSome textSome textSome textSome textSome textSome textSome textSome textSome
            </Paragraph>
        </RichTextBox>

UPD #1 不要忘记内联文本块的 TextWrapping