Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从画布内的其他UserControl将焦点设置为TextBox?_C#_.net_Wpf_C# 4.0_Caliburn.micro - Fatal编程技术网

C# 从画布内的其他UserControl将焦点设置为TextBox?

C# 从画布内的其他UserControl将焦点设置为TextBox?,c#,.net,wpf,c#-4.0,caliburn.micro,C#,.net,Wpf,C# 4.0,Caliburn.micro,我在窗口中使用画布,使其像MDI应用程序一样 画布将包含多个作为子窗口的UserControl 我能够在某个文本框的GotFocus事件上在画布内打开一个新的UserControl 但是,当我单击Enter或关闭新窗口时,我想将焦点设置回旧UserControl的下一个文本框?这是我无法做到的 我正在使用Caliburn Micro的WPF?目前正在使用EventAggregator在TextBox的GotFocus事件上打开新的UserControl。我最近做了类似的事情,我唯一能想到的是使用

我在窗口中使用画布,使其像MDI应用程序一样

画布将包含多个作为子窗口的UserControl

我能够在某个文本框的GotFocus事件上在画布内打开一个新的UserControl

但是,当我单击Enter或关闭新窗口时,我想将焦点设置回旧UserControl的下一个文本框?这是我无法做到的


我正在使用Caliburn Micro的WPF?目前正在使用EventAggregator在TextBox的GotFocus事件上打开新的UserControl。

我最近做了类似的事情,我唯一能想到的是使用
IEventAggregator
发布UserControl已关闭的通知,即

public class ControlClosedEvent
{
    public ControlClosedEvent()
    {
        // can be an empty event for all intents and purposes
    }
} 
每当UserControl关闭时,发布事件:

 _events.Publish( new ControlClosedEvent() );
消费者:

public partial class SomeView : UserControl, IHandle<ControlClosedEvent>
{
    public void Handle( ControlClosedEvent message )
    {
        // ugly way of setting the text box as focused
        SomeTextBox.Focus();
    }
}
public部分类SomeView:UserControl,IHandle
{
公共无效句柄(ControlClosedEvent消息)
{
//将文本框设置为焦点的丑陋方式
SomeTextBox.Focus();
}
}

这是我到目前为止尝试过的……但是有一个问题,就是设置focusFocusManager不工作,因为我的窗口在画布中,是否可以为此创建一个行为