WPF:控制自定义控件中的焦点

3
我正在开发一个自定义控件(称为BoxControl),其中将包含许多控件,如文本框、几个按钮等。
在一排中有许多个BoxControl,通过选项卡进行导航时,我希望它的行为是:当一个BoxControl获得焦点时,它总是将焦点传递给它的文本框;当它的文本框失去焦点时,整个BoxControl失去焦点并将焦点传递给下一个BoxControl。
有什么想法怎样做到这一点?

只是分享一下,以防有人遇到和我一样的问题。我有一个自定义控件,我可以将焦点放在控件上,但无法将焦点放在我真正想要进入的控件中的文本框上。以上的解决方案对这个问题的变体没有用。我找到了这个链接,解决了这个问题。https://www.codeproject.com/tips/478376/setting-focus-to-a-control-inside-a-usercontrol-in - Jeff
2个回答

3
你需要在BoxControl中添加一个事件处理程序来处理GotFocus事件,然后将焦点放在它的文本框上。
你还需要在文本框的LostFocus事件中添加一个事件处理程序,然后可以在BoxControl上引发自定义事件,这样它的控制器就知道必须将焦点传递给下一个BoxControl
希望对你有所帮助。

1
您可以通过在自定义控件模板中使用Setter来将Focusable属性设置为false。无论是在控件上还是在内部的各个元素上都可以这样做。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接