2009-07-16 11 views
0

単語が誤って表示されている波線の赤い線でテキストを表示することを検討していますが、編集可能ではないテキストのみを選択できます。 TextBoxのIsReadOnlyプロパティをTrueまたはIsEnabledにFalseに設定すると、赤い線が消え、テキストの部分を選択することができなくなるので、何かを透明にすることで回避できません。WPF:読み取り専用のテキストボックスでSpellCheckを使用

とにかく赤い線を維持して、テキストを選択できるようにしますが、実際のテキストが変更されないようにしますか?

おかげ

答えて

0

ありがとうございました。

私は、標準TextBoxに基づいたカスタムコントロールを作成しましたが、効果的に2つのテキストボックスがこのマナーの上に重ねて配置されています:

<TextBox Name="tbxBack" 
     Foreground="Transparent" 
     SpellCheck.IsEnabled="True" 
     TextWrapping="Wrap" 
     SnapsToDevicePixels="True"/> 
<TextBox Name="tbxFront" 
     Background="Transparent" 
     TextWrapping="Wrap" 
     SnapsToDevicePixels="True" 
     IsReadOnly="True"/> 

私はそれがここで起こっていることはかなり簡単だと思いますが、私はこの潜在的なオーバーヘッドが心配です。

私がダブルテキストボックスソリューションを検討している理由は、イベントをキャンセルしようとすると心配しています。テキストが変更されたときにコントロールで何らかの点滅が発生する可能性があります。

2

あなたは、テキストボックスのテキスト変更イベント上にフックアップ、そしてちょうど新しいテキストを拒否することができます。テキストボックスをグレーアウトしたり、スペルチェックを取り除いたりすることなく、読み込みと同じ効果が得られます。