2016-12-30 45 views
0

我使用的是一個列表視圖來顯示多個項目給用戶。現在我希望用戶能夠通過雙擊打開一個詳細信息窗口。這工作正常,但當窗口打開它立即被推到後臺。推窗前景

我嘗試了幾個窗口狀態的事情,結果是在每種情況都很糟糕(窗口被推到背景或窗口是永久覆蓋)。唯一能解決問題的解決方案是我在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

你應該表現出它作爲模式。

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

+0

感謝您的快速解決方案。但這不是我想從我的應用程序中獲得的行爲。現在主應用程序在細節窗口出現時被凍結。我希望用戶有可能與主應用程序進行交互並打開多個詳細信息窗口。 – mario0391

+0

我用其他一些方法編輯了我的答案來管理它。讓我知道它是否有效。 –

0

好的。感謝您的幫助,最重要的是我找到了創建適合我的解決方案的途徑。

在我的窗口的構造函數中,我將最頂層設置爲true,並在窗口中加載事件,我將頂層設置爲false。我的窗口在前臺顯眼,但用戶可以走出去,並可以處理主應用程序中的東西。