C# 在UserControl内设置文本框的焦点
我有一个C# 在UserControl内设置文本框的焦点,c#,wpf,textbox,user-controls,mahapps.metro,C#,Wpf,Textbox,User Controls,Mahapps.metro,我有一个UserControl,里面只有一个TextBox,这个TextBox有一些附加属性和一些代码,因为我要在多个视图中使用它,我用它创建了一个UserControl,以提高可重用性和维护性 这个TextBox用于搜索,所以当用户执行Ctrl+F时,我尝试将其设置为焦点,这很好,问题是,我无法使TextBox聚焦,只有UserControl聚焦 所以问题是:如何将用户控件的焦点重定向到其内部的文本框 我已经试过了: protected override void OnPreviewGotKe
UserControl
,里面只有一个TextBox
,这个TextBox
有一些附加属性和一些代码,因为我要在多个视图中使用它,我用它创建了一个UserControl
,以提高可重用性和维护性
这个TextBox
用于搜索,所以当用户执行Ctrl+F
时,我尝试将其设置为焦点,这很好,问题是,我无法使TextBox
聚焦,只有UserControl
聚焦
所以问题是:如何将用户控件的焦点
重定向到其内部的文本框
我已经试过了:
protected override void OnPreviewGotKeyboardFocus(KeyboardFocusChangedEventArgs e)
{
this.TextBox.SelectAll();
base.OnPreviewGotKeyboardFocus(e);
}
还有许多其他不同的组合,比如更改调用基的顺序,或者删除它…调用this.TextBox.Focus()
设置堆栈溢出…验证this.TextBox.IsFocused
是否起作用,它总是false
…所以。。。我怎样才能做到这一点?好的,明白了,我更改了:
protected override void OnPreviewGotKeyboardFocus(KeyboardFocusChangedEventArgs e)
{
this.TextBox.SelectAll();
base.OnPreviewGotKeyboardFocus(e);
}
致:
我猜整个RoutedEvents
冒泡和隧道的交互作用都是干扰。好的,明白了,我改变了:
protected override void OnPreviewGotKeyboardFocus(KeyboardFocusChangedEventArgs e)
{
this.TextBox.SelectAll();
base.OnPreviewGotKeyboardFocus(e);
}
致:
我猜整个RoutedEvents
冒泡和隧道的交互作用是干扰