2011-07-25 19 views
3

私は2つの操作withingを実行する必要がある1つのリッチテキストボックスアプリケーションがあります。リッチテキストボックスの文字色を取得するには?

1)リッチテキストボックステキストの文字数の半分だけをハイライト表示する必要があります。

例:100文字に空白がないとします。これで私はユーザーがいくつかの許可された文字のみを強調表示することはできません検証が必要です。

私は100文字を持ち、管理者は20%しか許可しません。ユーザーは20パーセントしか強調できません。文字の基本色は黒で、ユーザーは任意の80文字の色を変更できないことを意味します。ユーザーはどの色でも20文字しか変更できません。

2)ユーザーがテキストを強調表示したとします。次に、ユーザのユーザは、強調表示されたテキストをコメントとしてマークすることができる。

私はそれについて多くの検索を行っていますが、私は解決策を見つけるために何か解決策を得られませんでした。

答えて

0

「デスクトップアプリケーション」タグに基づいて、あなたが調べているWPF RichTextBoxであると仮定しています。したがって、WPF RichTextBoxにはTextRangeオブジェクトがあり、そのオブジェクトにはApplyPropertyValueが含まれています。

TextRangeを取得したい文字列にしたい場合は、TextElement.Foregroundプロパティを選択したブラシに適用します。例えば

、あなたはこのような何かを行う可能性があり、20〜40は、などの赤文字をHILIGHTしたい場合:

var range = new TextRange(
    rtb.Document.ContentStart.GetPositionAtOffset(20), 
    rtb.Document.ContentStart.GetPositionAtOffset(40)); 
range.ApplyProperty(TextElement.ForegroundProperty, Brushes.Red); 

それはテキストが破壊される、内部で、あなたはこのようにプロパティを適用するとことは注目に値します複数のランに上がって、オフセットで位置を取得することは同じ方法では機能しません。その場合は、ドキュメント全体のTextRangeを取得し、ClearAllPropertiesを呼び出すか、TextPointerを使用して実行を繰り返します。

+0

これは単純なウィンドウアプリケーションです。 –

+0

その代わりにウィンドウが形成されていると言っていますか? –

+0

はい私はリッチテキストボックスの形でこれを必要とします –

関連する問題