2009-07-16 47 views
0

我正在尋找顯示帶有波浪紅線的文本,其中一個單詞拼錯,但我只希望文本是可選擇的,而不是可編輯的。如果我將TextBox的IsReadOnly屬性設置爲True或IsEnabled爲False,那麼波浪形的紅線會消失,並且我無法通過將透明的東西繞過它,因爲這會阻止用戶選擇文本的各個部分。WPF:在只讀文本框上使用拼寫檢查

是否有反正我可以保持紅線,允許文本是可選的,但防止實際文本被修改?

感謝

回答

0

謝謝大衛。我目前正在尋找2種可能的解決方案,你的和以下內容:

我已經創建了一個基於標準TextBox的自定義控件,但實際上在這個莊園中有兩個文本框放在另一個之上:

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

我認爲這是非常直接的發生在這裏,但我擔心這會造成潛在的開銷。

我正在研究雙TextBox解決方案的原因是我擔心如果我嘗試並取消該事件,它可能最終會在控件出現某種閃爍時更改文本。

2

你可以掛接到文本框的文本改變事件,只是拒絕新的文本。它將具有隻讀的相同效果,而不會使文本框變灰或取消拼寫檢查。