public static void FullOrMin(this Window window)
{
//如果是全屏,則最小化
if (window.WindowState == WindowState.Maximized)
{
window.Topmost = false;
window.WindowState = WindowState.Normal;
window.WindowStyle = WindowStyle.SingleBorderWindow;
window.ResizeMode = ResizeMode.CanResizeWithGrip;//設置為可調整窗體大小
window.Width = 800;
window.Height = 600;
//獲取窗口句柄
var handle = new WindowInteropHelper(window).Handle;
//獲取當前顯示器屏幕
Screen screen = Screen.FromHandle(handle);
window.Left = (screen.Bounds.Width - window.Width) / 2;
window.Top = (screen.Bounds.Height - window.Height) / 2;
window.WindowState = WindowState.Minimized;
return;
}
//如果是窗口,則全屏
if (window.WindowState == WindowState.Normal)
{
//變成無邊窗體
window.WindowState = WindowState.Normal;//假如已經是Maximized,就不能進入全屏,所以這里先調整狀態
window.WindowStyle = WindowStyle.None;
window.ResizeMode = ResizeMode.NoResize;
window.Topmost = true;//最大化后總是在最上面
//獲取窗口句柄
var handle = new WindowInteropHelper(window).Handle;
//獲取當前顯示器屏幕
Screen screen = Screen.FromHandle(handle);
//調整窗口最大化,全屏的關鍵代碼就是下面3句
window.MaxWidth = screen.Bounds.Width;
window.MaxHeight = screen.Bounds.Height;
window.WindowState = WindowState.Maximized;
//解決切換應用程序的問題
window.Activated += new EventHandler(window_Activated);
window.Deactivated += new EventHandler(window_Deactivated);
}
}
static void window_Deactivated(object sender, EventArgs e)
{
var window = sender as Window;
window.Topmost = false;
}
static void window_Activated(object sender, EventArgs e)
{
var window = sender as Window;
window.Topmost = true;
}