定义一个密码框的复合控件,最外层是 Border, 内部有三个控件分别是 Image, GridSplitter, PasswordBox.
当键盘输入完账号通过 tab 键跳转到密码框,会发现焦点不在 PasswordBox 上而是跑到了 GridSplitter 上,并有虚框。那为什么 Image 没有获取到焦点呢?
查询 MSDN 资料发现有一个依赖项属性 Focusable, 设置它为 true 代表此控件允许获取焦点,false 代表此控件不允许获取焦点。而 Image 控件默认是 false, 因此在 XMAL 文件中将 GridSplitter 的 Focusable 属性设置为 false 就好了。
<GridSplitter Focusable = "False" />