[DllImport("User32.dll", EntryPoint = "SetWindowLong", SetLastError = true)] public static extern bool SetWindowLong(IntPtr hWnd, int nIndex, int nFlags); [DllImport("User32.dll", EntryPoint = "SetLayeredWindowAttributes", SetLastError = true)] public static extern int GetWindowLong(IntPtr hWnd, int nFlags); [DllImport("User32.dll", EntryPoint = "SetWindowPos", SetLastError = true)] public static extern int SetWindowPos(IntPtr hWnd, IntPtr hWndWinInsertAfter, int x, int y, int cx, int cy, int nFlags); const int WS_EX_TOOLWINDOW = 0x80; const int GWL_EXSTYLE = -20; const int HWND_TOPMOST = -1; const int SWP_NOSIZE = 0x0001; const int SWP_NOMOVE = 0x0002; private void Window_Loaded(object sender, RoutedEventArgs e) { HwndSource hs = (HwndSource)PresentationSource.FromDependencyObject(this); IntPtr ip = hs.Handle; SetWindowLong(ip, GWL_EXSTYLE, GetWindowLong(ip, GWL_EXSTYLE) | WS_EX_TOOLWINDOW); SetWindowPos(ip, (IntPtr)HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); }