2011-11-12 30 views
2

什麼是以下XAML的C#代碼等價物,其中我有一個RichTextBox並選擇了段落,並且希望在此段落中啓用/禁用空白區域。在XAML中,我知道如何啓用,但我需要在代碼中執行此操作。什麼是XAML的代碼等同於保留空格?

<Paragraph xml:space=\"preserve\">  Tabbed Code</Paragraph> 

有一個相當於我發現及其在這裏,

void EnableWhiteSpace(Paragraph p, bool enable = true){ 
    if(enable){ 
     System.Windows.Markup.XmlAttributeProperties 
       .SetXmlSpace(this.Document, "preserve"); 
    } 
    else{ 
     System.Windows.Markup.XmlAttributeProperties 
       .SetXmlSpace(this.Document, "default"); 
    } 
} 

這仍然沒有工作!我沒有得到標籤!! ...

這是我的問題,我有一個RichTextBox是用來編輯代碼和哪些語法突出顯示。一切都很好,除了當我打電話下面我看到我的代碼中沒有選項卡。

TextRange tr = new TextRange(
         myRichTextBox.Document.ContentStart, 
         myRichTextBox.Document.ContentEnd); 
string text = tr.Text; 

我收到的文本沒有包含標籤,所以我想在做文本範圍之前啓用空白可能會給我製表符。

UPDATE

我試圖在每款內聯(運行)導航,沒有包含標籤,我只是失去了所有的標籤:(

回答

0

RichTextBox是越野車,它會忽略所有選項卡,但是它的WPF本身的問題並不能被修復而沒有執行復雜的解決方法。

Alernative將自己的FlowDocument寫入文本轉換器,但是這非常複雜,因爲節點不會直接提供任何行或標記信息。

3

沒有相應的該XML選項xml:space="preserve"纔有效對於解釋 XML文件(對於您的情況,XAML是一種XML),並且在C#中沒有意義,因爲沒有涉及XML文件。

您的XAML代碼的C#等效項如下所示:

Paragraph p = new Paragraph(); 
p.Inlines.Add(new Run("  Tabbed Code")); 
+0

嗯,我有RichTextBox,我已經啓用了「AllowTabs」屬性,當我編輯它的一些文本,並且我回顧TextRange(對於整個東西).Text,我沒有看到標籤,新行很好,但我看到了縮進文本。 –

+0

@Akash:'xml:space'只有在解釋XAML文件時纔有意義。所以你的問題在別的地方。 – Vlad

+0

請閱讀我的更新,基本上我在RichTextBox中編輯文檔後丟失了標籤。 –

相關問題