0

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

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

谢谢

4

2 回答 2

2

您可以连接到文本框的文本更改事件,然后拒绝新文本。它将具有与只读相同的效果,而不会使文本框变灰或摆脱拼写检查。

于 2009-07-16T08:58:41.450 回答
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"/>

我认为这里发生的事情非常简单,但我担心这会导致潜在的开销。

我正在研究双 TextBox 解决方案的原因是我担心如果我尝试取消该事件,当文本更改时它可能会在控件中出现某种闪烁。

于 2009-07-16T09:24:42.163 回答