2011-09-16 8 views
1

で事前作成段落に値を代入することが可能です:私がやりたい何は、以下の<strong>XAML</strong>コードを検討し、リッチテキストボックス

<RichTextBox Name="dataRichTextBox" VerticalScrollBarVisibility="Auto" > 
    <FlowDocument Name="dataFlowDocument" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
     <Paragraph Name="dataParagraph"> 

     </Paragraph> 
    </FlowDocument> 
</RichTextBox> 

を定義して、直接dataParagraphのプログラムで作成されたAA Paragraphを、割り当てされますXAML

そのためのコードのようなものになります。

Paragraph paraOne = new Paragraph(); 
Run run1 = new Run("I am run one"+Environment.NewLine); 
// run1.Background = Brushes.Green; 
paraOne.Inlines.Add(run1); 
dataParagraph = paraOne; // expect that it will show up on the RichTextBox. 

を私はそれを試してみましたが、それは動作しません。これまでに読んだ例は、すべてFlowDocumentParagraphをプログラムで作成してから、Runs 'をそれらに割り当てたようです。私が実装した方法でそれを達成することは可能ですか?

+0

私は、RichTextBoxを宣言し、文書、段落、プログラムで実行するだけであれば動作するようです。 –

答えて

1

XAMLで宣言された段落を新しい段落に置き換えることはできませんが、直接操作することはできます。

これにコードを変更し、それがうまくいく、そのままあなたのXAMLを維持:

また
dataParagraph.Inlines.Add(new Run("I am run one" + Environment.NewLine)); 

だけではなく、既存の段落に割り当てしようとするよりも、FlowDocumentに新しい段落を追加。

+0

私はそれを難し​​い方法で解決することに頼っていました。つまり、全体をゼロから作成することです。しかし、これは前に私がそれを知っていれば私がやっていることです:)。おそらく、私は後で自分のコードをリファクタリングしてこのテクニックを使うことができます。 –