0

我在MouseDoubleClick定义中定义了一个事件处理程序ListView.ItemContainerStyle,如下所示:

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <EventSetter Event="MouseDoubleClick" Handler="MyClass_MouseDoubleClick" />
    </Style>
</ListView.ItemContainerStyle>

事件处理程序定义为:

private void MyClass_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    ListViewItem listViewItem = (ListViewItem)sender;
    MyClass senderItem = (MyClass)(listViewItem.Content);
    EditFile editFileWindow = new EditFile(senderItem);
    editFileWindow.Show();
}

这可以按预期工作,但新窗口在弹出时会显示在我的主应用程序窗口后面。加载后如何将焦点设置到新窗口?

我尝试this.Focus()在窗口的类构造函数的末尾添加,但它没有改变任何东西。

4

2 回答 2

1

试试这个:

editFileWindow.ShowDialog(); 
于 2013-01-17T03:20:56.343 回答
0

通过调用 ShowDialog() 您正在阻塞主 UI 线程。

尝试通过 Dispatcher.BeginInvoke 调用它,如下所示:

 this.Dispatcher.BeginInvoke( new Action( () => editFileWindow.Show()));
于 2015-01-27T13:18:23.573 回答