2016-01-12 80 views
1

我想文本設置爲一個通用的應用程序一個RichTextBlock代碼RichTextBlock,這是我在XAML代碼:設置文本在後面

<RichTextBlock x:Name="descr"> 
     <Paragraph> 
      <Paragraph.Inlines> 
       <Run Text="{Binding Path=desc}"/> 
      </Paragraph.Inlines> 
     </Paragraph> 
</RichTextBlock> 

,但我不知道如何設置文本在此RichTextBlock在後面的代碼,這是我的嘗試:

Paragraph p = new Paragraph(); 
    p.Inlines.Add("test");//error here cannot convert from 'string' to 'Windows.UI.Xaml.Documents.Inline' 
    descr.Blocks.Add(p); 

所以我怎麼能設置文本在代碼中RichTextBlock背後C# 感謝您的幫助

+1

如果您已經定義了綁定,爲什麼不使用它? – Romasz

回答

5

的內聯屬性是InlineCollection這是一個集合 Inline對象,而您嘗試向此集合添加字符串。

MSDN實現串聯

提供用於嵌入式文本元素,如Span和運行的基類。

因此,您需要添加Run或Span對象。

// Create run and set text 
Run run = new Run(); 
run.Text = "test"; 

// Create paragraph 
Paragraph paragraph = new Paragraph(); 

// Add run to the paragraph 
paragraph.Inlines.Add(run); 

// Add paragraph to the rich text block 
richTextBlock.Blocks.Add(paragraph); 

編輯

好像你不能直接運行或跨度對象的Text屬性從代碼綁定後面。

+0

感謝您的答覆,但我得到一個錯誤:run.SetBinding(TextProperty,binding); =>'運行'沒有包含'SetBinding'的定義,並且沒有找到接受'Run'類型的第一個參數的擴展方法'SetBinding'(可以找到缺少使用指令或程序集引用嗎?) – user3821206

+1

@ user3821206哦是的,我更新了答案,錯誤是由於綁定問題與運行,也許它不支持或什麼。如果我找到一種方法將Run和代碼綁定在一起,我會更新答案。 –

+0

好的,謝謝先生^ _ ^ – user3821206