簡體   English   中英

轉到非活動窗口

[英]Bring to front inactive window

我有兩個WPF應用程序。 他們兩個都有一個Topmost屬性設置為true的窗口。 第一個應用程序的窗口是全屏窗口,第二個應用程序僅占據部分屏幕。 同樣重要的是,第二個應用程序無法激活(以下代碼阻止了激活):

private const int GWL_EXSTYLE = -20;
private const int WS_EX_NOACTIVATE = 0x08000000;

[DllImport("user32.dll")]
public static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex,int dwNewLong);
[DllImport("user32.dll")]
public static extern int GetWindowLong(IntPtr hWnd,int nIndex);

protected override void OnSourceInitialized(EventArgs e)
{
    WindowInteropHelper helper = new WindowInteropHelper(window);
    SetWindowLong(helper.Handle, GWL_EXSTYLE, GetWindowLong(helper.Handle, GWL_EXSTYLE) | WS_EX_NOACTIVATE);
}

當用戶單擊放置在第一個應用程序上的按鈕時,我試圖將第二個應用程序置於前面。 我試圖通過使用SetForegroundWindowShowWindow實現此目的,但是它不起作用。 有人對此問題有解決方案嗎?

嘗試

yourSpecificWindow.Activate();

如果那不能解決問題,還包括

yourSpecificWindow.TopMost = true;
yourSpecificWindow.Focus();

暫無
暫無

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

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