我有一个AutoSuggestBox
可见性设置为Collapsed
。在同一个视图页面中,我有一个按钮。点击按钮后,我想显示AutoSuggestBox
。当查询已提交或AutoSuggestBox
已失去焦点时,我想再次隐藏它。UWP专注于AutoSuggestBox
这里的AutoSuggestBox和按钮:
<AutoSuggestBox Name="MainAutoSuggestBox"
Grid.Row="2"
GotFocus="MainAutoSuggestBox_GotFocus"
Visibility="Collapsed"
QueryIcon="Find"
QuerySubmitted="MainAutoSuggestBox_QuerySubmitted"
LostFocus="MainAutoSuggestBox_LostFocus"/>
<Button Name="TopBarSearchButton"
Content="Button"
Click="TopBarSearchButton_Click"/>
我的后台代码:
class SomePage : page
{
...
...
private void MainAutoSuggestBox_GotFocus(object sender, RoutedEventArgs e)
{
//only for testing purposes
}
private void MainAutoSuggestBox_LostFocus(object sender, RoutedEventArgs e)
{
MainAutoSuggestBox.Visibility = Visibility.Collapsed;
//put focus on the page
this.Focus(FocusState.Programmatic);
}
private void MainAutoSuggestBox_QuerySubmitted(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args)
{
//Do something
//Works fine
}
private void TopBarSearchButton_Click(object sender, RoutedEventArgs e)
{
HandleSearchButtonClick();
}
private void HandleSearchButtonClick()
{
if (MainAutoSuggestBox.Visibility == Visibility.Collapsed)
{
MainAutoSuggestBox.Visibility = Visibility.Visible;
MainAutoSuggestBox.Focus(FocusState.Programmatic);
}
else
{
MainAutoSuggestBox.Visibility = Visibility.Collapsed;
}
}
}
现在的问题是,当我按一下按钮TopBarSearchButton
首次的MainAutoSuggestBox
知名度切换,但重点不在MainAutoSuggestBox
上设置。但从第二次开始,它按预期工作,即在点击该按钮时,MainAutoSuggestBox
切换的可见性以及焦点在MainAutoSuggestBox
上设置。
在调试过程中,我发现,当单击第一次按钮时, 控制流量达到行MainAutoSuggestBox.Focus(FocusState.Programmatic);
内HandleSearchButtonClick()
但它从来没有碰到
private void MainAutoSuggestBox_GotFocus(object sender, RoutedEventArgs e)
方法,但是从第二次开始,它确实打到了
private void MainAutoSuggestBox_GotFocus(object sender, RoutedEventArgs e)
方法。
标题是'UWP'。 – lindexi