Wpf 显示控件时将焦点置于文本框

Wpf 显示控件时将焦点置于文本框,wpf,events,user-controls,textbox,focus,Wpf,Events,User Controls,Textbox,Focus,有一个自定义用户控件,其中包含一个文本框。当显示UserControl时,如何将焦点赋予文本框?我已尝试调用TextBox.Focus上的UserControl.IsVisibleChanged和TextBox.IsVisibleChanged事件,但没有帮助。我还能试什么 似乎是什么原因导致TextBox失去焦点。我提到的方法通常是有效的。如何找出是什么原因导致文本框失去焦点?我试过监听TextBox.LostFocus事件,但它的参数不包含太多有价值的信息,我也没有在堆栈跟踪中看到以前的方法

有一个自定义用户控件,其中包含一个
文本框
。当显示UserControl时,如何将焦点赋予文本框?我已尝试调用
TextBox.Focus
上的
UserControl.IsVisibleChanged
TextBox.IsVisibleChanged
事件,但没有帮助。我还能试什么

似乎是什么原因导致
TextBox
失去焦点。我提到的方法通常是有效的。如何找出是什么原因导致
文本框
失去焦点?我试过监听
TextBox.LostFocus
事件,但它的参数不包含太多有价值的信息,我也没有在堆栈跟踪中看到以前的方法

守则:

   void TextBox1_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            if (this.TextBox1.IsVisible)
                this.TextBox1.Focus();
        }

正如我之前所说的,如果我在测试项目的类似场景中使用相同的代码,那么它是有效的,但在我的应用程序中它不起作用(应用程序很大,我基本上正在修复其中的bug,而这一个就是其中之一)。所以我认为问题不在于焦点设置不当(正如我在开始这个问题时所想的那样),我认为问题在于其他东西重置了焦点。我试图找到它在这里是什么:。

使用UC作为桥接器,当你让UC显示时,然后调用一些函数来聚焦
文本框

我不太清楚为什么它不会在可见性改变时返回。。。然而,当我在
IsEnabledChanged中执行
TextBox1.Focus()
时,它就像一个符咒一样工作。

UIElement.Focus()将在您尝试将它挂接到文本框的可见性更改事件时起作用。你能分享一些可能有助于理解你的sceanrio的代码吗?修复了我在这个问题上的问题:。