繁体   English   中英

XAML代码段的等效代码

[英]Code equivalent of XAML snippet

我想知道TextBlock内部的代码等效部分:

<TextBlock>
     Hello
     <Run Background="Red">S</Run>
     <Run Background="Blue">O</Run>
</TextBlock>

原因是我有一个返回TextBox内容的转换器,但是我不确定从转换器返回哪种类型。 我尝试了一些集合类型,其中包含字符串和2个Run实例,但无法正常工作。

另外,我注意到以下操作无效:

<TextBlock>
    <TextBlock.Text> <--- Added this
        Hello
        <Run Background="Red">S</Run>
        <Run Background="Blue">O</Run>
    </TextBlock.Text>
</TextBlock>

因此,我的第二个问题是我必须将转换器结果绑定到哪个属性?

首先,您可以通过InLines属性添加Run块,例如

TextBlock txtBlock = new TextBlock();

txtBlock.Inlines.Add(new Run { Text = "S", Background = Brushes.Red });
txtBlock.Inlines.Add(new Run { Text = "O", Background = Brushes.Blue });

其次,您不能通过“ TextBlock.Text”进行添加,因为这是一个字符串,而不是Runs的集合。

尝试这个:

    <Label>
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="Hello"/>
            <TextBlock Background="Red" Text="S"/>
            <TextBlock Background="Blue" Text="O"/>
        </StackPanel>
    </Label>

将转换器添加到每个文本块的绑定中。我认为它比使用Run更灵活

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM