2011-10-18 68 views
0

我试图在输入完成后删除从文本框闪烁的脱字符号。我已经尝试过以编程方式聚焦另一个控件,并在mouseleave事件上设置IsReadOnlyCaretVisible = false和IsReadOnly,但没有任何帮助。我该怎么办?不管我做什么,脱字号仍然存在......wpf textbox caret

+0

“输入完成后”是什么意思?只有当用户将焦点转移到另一个控件时,这种情况才有保证吗? – djdanlib

+0

我输入了我想要的文本 – OneMoreVladimir

+0

但是,控制系统如何知道您想要什么?用户可能想要输入任何内容,甚至不需要输入文字。 – djdanlib

回答

2

这很奇怪。当焦点改变时,插入符号应该消失,例如当您单击文本框时。你不能使用老式的“HideCaret”WINAPI函数,因为它不是一个标准的Windows控件 - 它是WPF。

这个问题解决了你的问题的反对意见,因为你的问题不应该发生,而且解决方案是一个非常简单的代码行。也许如果你翻转逻辑,或者看看你的代码是否已经这样做并禁用了那部分 - 你可以得到你要找的结果:WPF Textbox persist visible caret

另外,如果你使用的是最近版本WPF,你可以重新指定插入符号使用的笔刷。

+0

我创建了一个带有文本框的用户控件,并将这些控件添加到画布。当我编辑文本,然后单击画布或脱字符仍然在文本框中闪烁时... =( – OneMoreVladimir