我正在尝试为我的程序创建自己的自定义文本编辑器,到目前为止,语法高亮显示。它甚至无法编辑文本。
我试图展示我的插入符号时遇到了麻烦。
在我的OnRender()
方法中,我使用IsKeyboardFocused来检查我是否有键盘焦点,如果我这样做,那么它会继续并绘制光标。
当我用鼠标点击它时,我通过Keyboard.Focus(MyCustomTextEditor)
告诉键盘专注于我的控制,当我使用GotKeyboardFocus
事件处理程序拦截它时,我可以使用调试消息来验证重点成功通过。
然而,无论我做什么,我似乎都无法在IsKeyboardFocused = True
内OnRender()
。我将Debug.Print()
放在OnRender()
内的开头,结尾,中间和其他可以想象的地方,结果总是为假。
我的方法看起来非常简单。我只是不明白我可以遗漏什么。感谢您抽出宝贵时间阅读本文!
答案 0 :(得分:0)
您是否尝试过使用FocusManager.FocusedElement
来确定当您希望控件具有焦点时所关注的元素?这应该提供一些线索。
在黑暗中拍摄,在控制加载后再次调用OnRender()
,还是只检查init?我记得焦点问题涉及在Loaded事件期间将焦点设置在控件上,之后才会恢复焦点。