如何发送一个WPF窗口后面?(How to send a WPF window to the bac

2019-06-26 18:32发布

在我的应用我有我使用的绘图调试数据的窗口。 当它加载,我想“在后台”将其打开,所有其他窗口的后面。

什么是实现这一目标的最佳方式是什么?

Answer 1:

您可以使用下面的代码:

[DllImport("user32.dll")]
static extern bool SetWindowPos(
    IntPtr hWnd,
    IntPtr hWndInsertAfter,
    int X,
    int Y,
    int cx,
    int cy,
    uint uFlags);

const UInt32 SWP_NOSIZE = 0x0001;
const UInt32 SWP_NOMOVE = 0x0002;

static readonly IntPtr HWND_BOTTOM = new IntPtr(1);

static void SendWpfWindowBack(Window window)
{
    var hWnd = new WindowInteropHelper(window).Handle;
    SetWindowPos(hWnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
}

来源: http://www.aeroxp.org/board/lofiversion/index.php?t4983.html



Answer 2:

有没有你不希望显示在最小化状态的窗口,允许用户显示它什么特别的原因? 如果显示在最小化状态的窗口解决您的问题,使用

<Window WindowState="Minimized" (...)>


文章来源: How to send a WPF window to the back?
标签: c# .net wpf window