我敲我的是什么样子这么简单的问题,头在WPF来解决,但我还没有发现,为什么我不能让我的应用程序按照我的计划行事。
我有一个弹出,在我的WPF应用程序时,用户按下Ctrl + F键一个小小的搜索框。 我想要的是搜索框的文本框里面闪烁插入符号,准备采取任何用户输入,而不需要点击它的用户。 下面是文本框是可见的,启用,XAML代码打可验证,tabstopable和可聚焦。
<TextBox x:Name="SearchCriteriaTextBox" Text="{Binding SearchCriteria}" Focusable="True" IsEnabled="True" IsTabStop="True" IsHitTestVisible="True" Style="{DynamicResource SearchTextBoxStyle}" Grid.Column="1" Margin="5,10,0,5" />
在后面的代码,我有这个方法时,搜索框的可见性受到影响调用。 搜索框是在应用程序的启动加载。
/// <summary>
/// Handles events triggered from focusing on this view.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="dependencyPropertyChangedEventArgs">The key event args.</param>
private void OnIsVisibleChanged(object sender, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
{
if (!((bool) dependencyPropertyChangedEventArgs.NewValue))
{
return;
}
SearchCriteriaTextBox.Focus();
Keyboard.Focus(SearchCriteriaTextBox);
SearchCriteriaTextBox.Select(0, 0);
if (SearchCriteriaTextBox.Text.Length > 0)
{
SearchCriteriaTextBox.SelectAll();
}
}
问题是,代码被调用,组件成为IsFocused = true,但不会获得键盘焦点。 我缺少的东西吗? 除非另一个控制保持凶猛抱到键盘焦点,我敢肯定我没有代码,为什么会这样一段相当简单的代码将无法正常工作。