簡體   English   中英

WPF-將窗口移到最前面

[英]WPF - Bring Window to Front

我有一個沒有關閉的WPF窗口。 相反,我做了Hide()和Show()。 現在,當我在Record的網格中的MainWindow中雙擊時,它將觸發Show()窗口,該窗口將始終顯示在MainWindow的后面。 我嘗試過休閑,但沒有成功:

view.Show();
view.Activate();
view.Topmost = true;
view.Topmost = false;
view.Focus();       

還有另一種方法可以將絕對式窗戶放到前面嗎? 我不能將MainWindow設置為Owner。

Window.Activate是一種解決方法(如果您不想設置為所有者)。 如果這不起作用(如您所述),則在另一個位置有錯誤。 也許您的MainWindow已將TopMost設置為true 還是您有一個將您的主窗口或控件集中在其中的延遲調用?

除非您希望整個應用程序都被阻止,直到關閉模式打開的窗口,否則無法調用另一個答案中建議的ShowDialog()。

如果使用WPF,Win32-Api中有一個錯誤也會影響窗口管理,但是您對問題的描述聽起來不是這樣。

另外這里有一個hack,但我希望您不需要它:

Dispatcher.BeginInvoke(new Action(delegate {       
        view.Activate();
        }), System.Windows.Threading.DispatcherPriority.ContextIdle, null);

ShowDialog代替Show將使窗口始終顯示在頂部。

myWindow.WindowState = WindowState.Normal;

那對我有用。

我遇到了同樣的問題-我正在顯示一個窗口,該窗口的MouseDoubleClick事件中的Owner設置為NULL。 我意識到(最終)我需要設置:

e.Handled = true

在我的活動代碼完成之前。 下面的Microsoft文檔概述了當事件以“重要且相對完整的方式”響應時,您可能希望將事件標記為已處理:

http://msdn.microsoft.com/en-us/library/ms747183.aspx

這是主觀的,但就我而言,這阻止了我剛剛打開的窗口對用戶可見。

我遇到了類似的問題,並結合了其他答案找到了解決方案。 一旦窗口被隱藏,我將使用以下代碼將其放在前台:

    view.WindowState = WindowState.Normal;
    view.Activate();

注意:如果窗口在隱藏之前已最大化,則該代碼將使其最大化

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM