私は "flowdocumentreader" のXAMLコードは単純で、テキストを表示するために "flowdocumentreader" を使用しています:(C#WPF)テキストの背景色を変更するには?
<FlowDocumentReader x:Name="myDocumentReader" ViewingMode="Scroll" VerticalAlignment="Stretch" ContextMenuOpening="myDocumentReader_ContextMenuOpening" Margin="0,0,0,0" Grid.Row="1" PreviewMouseDown="myDocumentReader_PreviewMouseDown">
<FlowDocument x:Name="flow" LineHeight="{Binding ElementName=slider2, Path=Value}" PagePadding="{Binding ElementName=slider, Path=Value}">
<Paragraph x:Name="paraBodyText"/>
</FlowDocument>
</FlowDocumentReader>
をそして、私はこのような "flowdocumentreader" への.rtf文書を読み込む:
paraBodyText.Inlines.Clear();
string temp = File.ReadAllText(dlg.FileName, Encoding.UTF8);
MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(temp));
TextRange textRange = new TextRange(flow.ContentStart, flow.ContentEnd);
textRange.Load(stream, DataFormats.Rtf);
myDocumentReader.Document = flow;
今、私の質問は、 "flowdocumentreader"の文字列の背景色を取得する方法ですか?
文字列を検索する方法はわかっていますが、このような文字列の背景色を確認する方法はわかりません。それを行う方法はありますか?私は、文字列のTextRangeのを取得し、これを実行しようとしました:
TextRange selection = ....; // this is the textrange of the string
var a = selection.GetPropertyValue(TextElement.BackgroundProperty)
しかし、変数は「」常にnullを返します。お時間を事前に:(
おかげ
EDIT:。。。 私は「FlowDocumentReader」にロードされたの.rtf文書がいくつかは緑色で背景色を持っており、いくつかは、黄色で表示され
感謝。 "FlowDocumentReader"にロードされた.rtfドキュメントには背景色があり、一部は緑色で、一部は黄色です。しかし、私はまだテキスト範囲を横切るときにヌル値を持っています。 –
この.rtfのサンプルを提供してください。 – mm8
はい、もちろんです。 .rtf文書には、私の編集した投稿に示されている文が1つしか含まれていません。これはテスト用で、サイズはわずか1KBです。ところで、.rtfドキュメントの内容は無視してください。これはrtfドキュメントです。 :) –