C# 将窗口推到前台

C# 将窗口推到前台,c#,wpf,events,mouseevent,C#,Wpf,Events,Mouseevent,我正在使用listview向用户显示多个项目。现在,我希望用户能够通过双击打开详细信息窗口。这很好,但是当窗口打开时,它会立即被推到背景上 我尝试了一些关于窗口状态等的方法。结果在每种情况下都很糟糕(窗口被推到背景或窗口是永久覆盖)。唯一相对有效的解决方案是在MouseLeftButtonUp事件中更改DoubleClick事件。当用户现在单击某个项目时,窗口位于前台 这是我在控制器类中的代码: public void ShowDetails(对象详细信息) { Details detailWi

我正在使用listview向用户显示多个项目。现在,我希望用户能够通过双击打开详细信息窗口。这很好,但是当窗口打开时,它会立即被推到背景上

我尝试了一些关于窗口状态等的方法。结果在每种情况下都很糟糕(窗口被推到背景或窗口是永久覆盖)。唯一相对有效的解决方案是在MouseLeftButtonUp事件中更改DoubleClick事件。当用户现在单击某个项目时,窗口位于前台

这是我在控制器类中的代码:

public void ShowDetails(对象详细信息)
{
Details detailWindow=新的详细信息(这个,Config.GetCultureInformation());
detailWindow.LoadData(详细信息);
detailWindow.Show();
}
这是我在UI类中的代码

private void listViewItem_鼠标单击(对象发送器,鼠标按钮ventargs e)
{
ListViewItem=发件人作为ListViewItem;
AppControl.ShowDetails(item.Content);
}

您应该将其显示为模态

public void ShowDetails(对象详细信息)
{
Details detailWindow=新的详细信息(这个,Config.GetCultureInformation());
detailWindow.LoadData(详细信息);
detailWindow.ShowDialog();//而不是detailWindow.Show();
}
如果您想保持主窗口不冻结,请使用
detailWindow.BringToFront()
detailWindow.TopMost=true
,从这里获取战利品


来源。

确定。感谢您的帮助,我通过Topmost找到了创建适合我的解决方案的方法


在我的窗口的构造函数中,我将topmost设置为true,在windowisloaded事件中,我将topmost设置为false。“我的窗口”在前景中很显眼,但用户可以走出窗口,在主应用程序中处理事情。

感谢您提供的快速解决方案。但这不是我想从我的应用程序中得到的行为。现在,当详细信息窗口出现时,主应用程序被冻结。我希望用户能够与主应用程序交互并打开多个详细信息窗口。我已经用其他方法编辑了我的答案。让我知道它是否有效。