WPF 程序最大化,窗口,最小化
2011-10-21 14:32
323 查看
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;
}
按需求,如果需要全屏后再还原窗口的话,就再全屏前记录窗口的属性
最小化后窗口也是一样,在最小化前记录窗口的属性,我这里直接给赋值了,
{
//如果是全屏,则最小化
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;
}
按需求,如果需要全屏后再还原窗口的话,就再全屏前记录窗口的属性
最小化后窗口也是一样,在最小化前记录窗口的属性,我这里直接给赋值了,
相关文章推荐
- C#隐藏其他程序窗口以及添加最小化/最大化按钮
- WPF程序禁止win7窗口自动最大化
- WPF窗口的关闭、最大化、最小化、拖动事件
- WPF 最大化最小化窗口
- WPF程序禁止win7窗口自动最大化
- MFC程序中让窗口不能移动、最大化、最小化,禁止系统菜单
- VS2010编写MFC程序,调整窗口大小和实现窗口最大化、最小化方法。
- WPF中隐藏窗口最小化、最大化和关闭按钮
- [WPF]自由配置窗体最大化、最小化按钮是否可用,窗口大小不可改变
- WPF程序禁止win7窗口自动最大化
- WPF程序禁止win7窗口自动最大化
- wpf 自定义窗口,最大化时不覆盖任务栏
- 最大化最小化自定义窗口的尺寸
- C#窗口皮肤制作(二):创建窗口库项目以及最小化、最大化、关闭button的实现
- VC 开发单文档程序窗口运行即最大化
- 最大化、最小化窗口
- Flex 窗口最小化,最大化,拖动
- WPF实现窗口最小化到托盘,并且实现右击菜单
- 控制一个外部程序最小化,最大化,及关闭
- 窗口的最大化最小化