我正在寻找带有波浪红线的文字,其中一个单词拼写错误,但我只希望文字可以选择,而不是可编辑的。如果我将TextBox的IsReadOnly属性设置为True或IsEnabled设置为False,则波浪红线会消失,我无法通过放置透明的东西来绕过它,因为这会阻止用户选择文本的各个部分。
无论如何,我可以保留红线,允许文本可选但是阻止实际文本被修改?
由于
答案 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解决方案的原因是我担心如果我尝试取消该事件,它可能会在文本更改时在控件中出现某种闪烁。