只需在新的WPF应用程序中放置一个按钮和一个组合框
在按钮上单击,只需使用comboBox1.Focus()(或任何其他可能的内容)将焦点设置为组合框
问题:
1-从代码设置焦点(带焦点())时,组合框永远不会得到焦点。为什么呢?
2-使用Tab键导航时,组合框会获得焦点并在控件周围显示一种焦点选择器?有没有办法从代码中做同样的事情(一个真正的焦点)?
由于
答案 0 :(得分:0)
我认为它确实有效 - 问题在于,在不可编辑的ComboBox中,很难直观地判断焦点是否存在。
如果添加IsEditable =“True”,您将看到单击按钮时光标将移动到ComboBox。
使用Tab键看到的焦点选择器是键盘焦点。试试这个:在您的应用上,无需编辑ComboBox,导航到按钮并按空格键。您将看到ComboBox周围出现矩形选择,因为键盘焦点将移动到那里。
答案 1 :(得分:0)
焦点样式(虚线)仅在我们使用Tab键时出现..为什么组合框只能在按钮点击时焦点而不是焦点样式。但是你可以通过打开下拉列表来显示焦点
private void Button_Click_1(object sender, RoutedEventArgs e)
{
Cmb.Focus();
Cmb.IsDropDownOpen = true;
}
对不起,如果我对你的做法不对。
答案 2 :(得分:0)
了解组合框的selectionboxitem,它负责在comobox编辑区域中进行选择。尝试将IsSelected与Focus属性一起设置。
与Winforms相比,焦点处理有很多新的东西,只有选择和焦点。检查API:
http://msdn.microsoft.com/en-us/library/system.windows.controls.combobox%28v=vs.110%29.aspx
答案 3 :(得分:0)
如果您已对重组框进行了重新设置,请注意" OverridesDefaultStyle"。将此设置为true可以隐藏虚线焦点矩形。