2014-01-14 97 views
0

一個SVG轉換爲XAML後,我得到了很多的TextBlocks這樣看的:獲取的跨度值在一個TextBlock

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

現在的問題是:我怎麼能訪問範圍內的文本?我的TextBlock的文本屬性爲空。

感謝

+0

似乎這個屬性不存在=/ – reddy

回答

0

使用Inlines property(見鏈接)。

鑑於你的XAML,你可以這樣做:

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

感謝這聽起來像一個好主意,我會盡力找出如何使用它 – reddy

+1

我只需要明確地投射到(跨度)和(運行)第2和第3行。完美的作品,謝謝! – reddy

+0

這是對的@Joey對不起,我錯過了。我已經更新了答案。 – jnovo

0

跨度爲用於集團其他內聯流內容元素在一起,所以沒有財產,如文本或內容直接暴露

這裏你怎麼能得到的跨度內聯元素中的文本

<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; 
    }