获取Textblock中的跨度值

时间:2014-01-14 15:56:17

标签: c# wpf textblock

将SVG转换为XAML后,我得到了很多类似的文本块:

<TextBlock xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" FontSize="10"  Foreground="#FF000000"Name="text324947"><Span  FontSize="10">79</Span></TextBlock>

现在的问题是:如何访问跨度内的文本?我的TextBlock的Text属性为Empty。

谢谢

2 个答案:

答案 0 :(得分:1)

使用Inlines property(请参阅链接)。

鉴于您的XAML,您可以这样做:

TextBlock tb = this.txt
Span span = (Span) tb.Inlines.FirstInline;
Run run = (Run) span.Inlines.FirstInline;
string text = run.Text;

答案 1 :(得分:0)

Span用于将其他内联流内容元素组合在一起,因此不会直接暴露文本或内容等属性

这里是如何在span内联元素

中获取文本的
<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <TextBlock Name="txtBlock">  <Span Name="span">test</Span> </TextBlock>
    </Grid>
</Window>

    public MainWindow()
    {
        InitializeComponent();
         string s= (span.Inlines.ToArray()[0] as Run).Text;
       // or just try this 
         string s2= ((txtBlock.Inlines.FirstInline as Span).Inlines.FirstInline as Run).Text;  
    }