WPF:在只读TextBox上使用拼写检查

时间:2009-07-16 08:54:17

标签: wpf textbox spell-checking readonly

我正在寻找带有波浪红线的文字,其中一个单词拼写错误,但我只希望文字可以选择,而不是可编辑的。如果我将TextBox的IsReadOnly属性设置为True或IsEnabled设置为False,则波浪红线会消失,我无法通过放置透明的东西来绕过它,因为这会阻止用户选择文本的各个部分。

无论如何,我可以保留红线,允许文本可选但是阻止实际文本被修改?

由于

2 个答案:

答案 0 :(得分:2)

您可以连接文本框的文本更改事件,然后拒绝新文本。它会产生与readonly相同的效果而不会使文本框变灰或删除拼写检查。

答案 1 :(得分:0)

谢谢大卫。我目前正在寻找两种可能的解决方案,您和以下的解决方案:

我已经创建了一个基于标准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解决方案的原因是我担心如果我尝试取消该事件,它可能会在文本更改时在控件中出现某种闪烁。