我在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()
,但它没有改变任何内容。
答案 0 :(得分:1)
试试这个:
editFileWindow.ShowDialog();
答案 1 :(得分:0)
只需调用ShowDialog()即可阻止主UI线程。
尝试通过Dispatcher.BeginInvoke调用它,如下所示:
this.Dispatcher.BeginInvoke( new Action( () => editFileWindow.Show()));