我正在使用listview向用户显示多个项目。现在我希望用户能够通过双击打开详细信息窗口。这工作正常,但是当窗口打开时,它立即被推到后台。
我尝试了窗口状态等的几个东西。结果在每种情况下都很糟糕(窗口被推到背景或窗口是永久叠加)。唯一相对有效的解决方案是我在MouseLeftButtonUp事件中更改DoubleClick事件。当用户现在单击某个项目时,该窗口位于前台。
这是我在控制器类中的代码:
public void ShowDetails(object details)
{
Details detailWindow = new Details(this, Config.GetCultureInformation());
detailWindow.LoadData(details);
detailWindow.Show();
}
来自UI类的我的代码
private void listViewItem_MouseClick(object sender, MouseButtonEventArgs e)
{
ListViewItem item = sender as ListViewItem;
AppControl.ShowDetails(item.Content);
}
答案 0 :(得分:0)
你应该把它显示为模态。
public void ShowDetails(object details)
{
Details detailWindow = new Details(this, Config.GetCultureInformation());
detailWindow.LoadData(details);
detailWindow.ShowDialog(); //Instead of detailWindow.Show();
}
如果您希望保持主窗口不冻结使用detailWindow.BringToFront()
或detailWindow.TopMost = true
,请抓住此other post
来源here。
答案 1 :(得分:0)
确定。感谢您的帮助和Topmost,我找到了创建适合我的解决方案的方法。
在我窗口的构造函数中,我将最顶层设置为true,而在Window中是Loaded Event我将最顶层设置为false。我的窗口在前台很突出,但用户可以离开它并可以处理主应用程序中的内容。