W mojej aplikacji mam okno, którego używam do wykreślania danych debugowania. Kiedy ładuje, chciałbym otworzyć go "w tle", za wszystkimi innymi oknami.Jak wysłać okno WPF do tyłu?
Jaki jest najlepszy sposób, aby to osiągnąć?
W mojej aplikacji mam okno, którego używam do wykreślania danych debugowania. Kiedy ładuje, chciałbym otworzyć go "w tle", za wszystkimi innymi oknami.Jak wysłać okno WPF do tyłu?
Jaki jest najlepszy sposób, aby to osiągnąć?
Czy istnieje jakiś szczególny powód, dla którego nie chcesz wyświetlać okna w stanie zminimalizowanym i zezwalać użytkownikowi na jego wyświetlanie? Jeśli pokazując okno w stanie zminimalizowanym rozwiązuje problemu, użyj
<Window WindowState="Minimized" (...)>
można użyć następującego kodu:
[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);
}
Źródło: http://www.aeroxp.org/board/lofiversion/index.php?t4983.html
Wow ... Byłem pewny, że będzie jeden liniowiec, żeby się tym zająć ... –
Czy moja odpowiedź zadziałała? Następnie zaznacz to jako zaakceptowane. – huseyint
Nie zaakceptuje "DllImport", co powinienem zrobić? –
Chcę okno będzie otwarte od początku w tło. Dzięki za twoją sugestię, ale to mi nie pomaga. –