2011-10-24 6 views
0

誰もがテキストブロックでどのように強調表示するか考えていますか?WPFのハイライト

基本的に私は2つのテキストブロックを持ち、両方とも同じ文字列を持っています。テキストブロックの1つの文字列の一部を強調表示すると、他のテキストブロックも同じ強調表示された部分を表示します。私は基本的にどのように強調表示を行うに固執しています。事前

答えて

0

おかげで、あなたはTextBlockTextBoxを持っていますか? TextBlockはテキスト選択をサポートしていないため、TextBoxと仮定します。

この場合、データバインディングを使用してこれを同期させておくことができます。

<TextBox Name="text1" /> 
<TextBox Name="text2" 
     SelectionStart="{Binding Path=SelectionStart, ElementName=text1}" 
     SelectionLength="{Binding Path=SelectionLength, ElementName=text1}" /> 

これにより、ユーザは、text1とその逆にそれを選択すると、テキストの同じ領域をtext2に選択されていることを確認すべきです。

EDITこれらのプロパティにバインドする方法については、this answerを参照してください。

リンクの答えで説明したように、カスタムTextBoxを作成する場合は、あなたのコードは次のようになります。

<SelectionBindingTextBox Name="text1" /> 
<SelectionBindingTextBox Name="text2" 
     BindableSelectionStart="{Binding Path=BindableSelectionStart, ElementName=text1}" 
     BindableSelectionLength="{Binding Path=BindableSelectionLength, ElementName=text1}" /> 
+0

ああ、私が試したが、私はこのエラー に設定することができません「バインド」Aを持っているがタイプ 'TextBox'の 'SelectionStart'プロパティ。 「Binding」はDependencyObjectのDependencyPropertyでのみ設定できます。 – edelweiss

+0

私は提案されたテキストボックスを使用します。ただ実現したテキストブロックはテキストを選択できません – edelweiss

+0

@ user992618:問題を修正しましたか? –