我有一个按钮,点击它我会显示一个包含列表框的弹出窗口。
popup命名 - popComboList
列表框名为-lstComboBoxResult
我将焦点放在列表框上但是在初始点击按钮时列表框没有得到焦点 - (这在初始时只发生一次,当我第一次点击按钮时)在第二次点击后它起作用。
private void bnOpen_Click(object sender, RoutedEventArgs e)
{
if (IsDesignTime)
return;
lstComboBoxResult.Width = tbComboValue.ActualWidth + bnOpen.ActualWidth;
if (!popComboList.IsOpen)
{
SetPopupPosition(popComboList);
popComboList.IsOpen = true;
lstComboBoxResult.Focus();
}
else
{
popComboList.IsOpen = false;
}
}
答案 0 :(得分:2)
这是一个猜测,但在打开弹出窗口之后尝试调用UpdateLayout(),但在调用Focus()之前。列表框可能没有完全初始化,因此在第一次可见之前无法接受焦点。