WPF 最大化最小化窗口

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;
        }

时间: 2024-12-29 09:08:34

WPF 最大化最小化窗口的相关文章

wpf 最大最小化窗口详细

转自分享 public static void Win(this Window window)        {            //如果是全屏,则最小化            if (window.WindowState == WindowState.Maximized)            {                window.Topmost = false;                window.WindowState = WindowState.Normal;  

Q窗口操作函数(窗口最大化,全屏,隐藏最大化最小化按钮)

//Qt主窗口没有最小化,最大化按钮且最大化显示  int main(int argc, char *argv[]) { QApplication a(argc, argv); TestQtForWinCE w; w.setWindowFlags(w.windowFlags()& ~Qt::WindowMaximizeButtonHint& ~Qt::WindowMinimizeButtonHint); w.showMaximized(); return a.exec(); } 这里的&q

【转】ubuntu 12.04 LTS将关闭最大化最小化移动到右上角

原文网址:http://www.4byte.cn/learning/114801.html ubuntu 12.04 LTS将关闭最大化最小化移动到右上角 还是按下“ALT +F2”组合键,输入gconf-editor并回车运行. www.4byte.cn (如果此时没有运行,则说明你需要安装gconf-editor,打开终端输入sudo apt-get install gconf-editor回车运行,等待安装完毕就行了.) 这时会打开一个配置编辑器,在左侧一次展开“apps/metacity

WPF程序最小化到任务通知栏

我们通常使用的桌面软件,都可以最小化到任务通知栏,并且可以从任务通知栏再打开当前软件,或者通过软件的快捷方式从任务通知栏呼出. 我们可以通过下面的方式把WPF程序最小化到任务栏.由于WPF并没有实现Notification的功能,我们需要借助于WinForm中NotifyIcon来实现,请看代码: using WinForms = System.Windows.Forms; private WinForms.NotifyIcon _notifyIcon; private WinForms.Con

electron 的窗口设置最大化 最小化

/** * Created by Administrator on 2016/11/23. * 页面对窗口的一些操作封装,用于渲染进程 */ "use strict"; const Common = require('../../window/common.js'); const { ipcRenderer, remote } = require('electron'); const WinReg = require('winreg'); const RUN_LOCATION = '\

wpf 窗口最小化后,触发某事件弹出最小化窗口并置顶

//如果窗口最小化了弹出并置顶----事件触发调用 ShowWindowAsync(new System.Windows.Interop.WindowInteropHelper(CommonHelper.view).Handle, 1); SetForegroundWindow(new System.Windows.Interop.WindowInteropHelper(CommonHelper.view).Handle); [System.Runtime.InteropServices.Dll

Unity中的多屏以及最大化最小化

一 多屏 首先是多屏,我的需求是只显示在第二块屏幕上,而且第一块屏幕上的操作不能影响到第二块屏幕. 如果连了另一块屏幕,在打开exe的时候的配置框可以选择显示在哪块屏幕上 如果选择了第二块,不删除Data文件夹,回到Unity取消勾选Display Resolution Diag,下次打开直接跳到第二快屏幕上. 二 解决第二块屏幕的后台 但是如果仅仅这样,会遇到一个不大大小的问题-在主屏幕点击一下,第二块屏幕的显示就跑到后台去了. 我是想让第二块屏幕,不受第一块屏幕的影响而跑到后台. 经过尝试,

最小化窗口到托盘区-VC++

1.在窗口类的.h文件中添加变量:NOTIFYICONDATA  pnid; 2.在窗口类的.CPP文件中自定义消息:WM_MYMESSAGE 3.在窗口类的初始化函数OnInitDialog中添加代码: pnid.cbSize = (DWORD)sizeof(NOTIFYICONDATA); pnid.hWnd = m_hWnd; pnid.uID = (UINT)m_hIcon; pnid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP; //图标有效|自定义消息

delphi 窗体最大化 最小化

procedure TForm1.SpeedButton2Click(Sender: TObject); begin sendmessage(form1.WindowHandle,WM_SYSCOMMAND,SC_ICON,0);//窗体最小化  任务栏中 end;   procedure TForm1.SpeedButton2Click(Sender: TObject); begin form1.WindowState :=  wsMaximized;//窗体最大化 end;   proced