WPF 去掉最大化最小化的方法
来源:互联网 发布:mac系统怎么装虚拟机 编辑:程序博客网 时间:2024/05/08 20:43
说明:俺是WPF初学者,WPF里面的文字,都是我的学习笔记,里面借鉴了前辈们的方法。
主题:WPF 去掉最大化最小化的方法
基础知识: WPF中默认窗口框架的外观,主要取决于Icon、Title、WindowsStyle、ResizeMode等属性。
Icon 指定窗口的图标;
Title 指定窗口的标题;
WindowStyle 指定窗口样式,有4个取值:
None,仅工作区可见 - 该标题栏和边框不会显示。;(当ResizeMode属性为NoResize时,仅剩下窗口核心。)
SingleBorderWindow,具有单个边框的窗口。这是默认值;
ThreeDBorderWindow,具有3-D边框的窗口;
ToolWindow固定工具窗口。ResizeMode 是指定大小调节样式,有4个取值:
NoResize,不可调节,同时没有最大最小按钮;
CanMinimize,不可调节。但可以最小化;(此时最大化按钮不可用)
CanResize,可调节【默认】;
CanResizeWithGrid,可根据网格调节;(窗口右下脚显示可调节网格)
方式 ①、设置窗体的ResizeMode属性 ,CanMinimize值只显示最小化 和 关闭 按钮。
方式 ②、引用JimFire的方法 原文地址 :http://blog.csdn.net/JimFire/article/details/6696905
[DllImport("user32.dll", EntryPoint = "GetWindowLong")]
public static extern int GetWindowLong(IntPtr hwnd, int nIndex);
[DllImport("user32.dll", EntryPoint = "SetWindowLong")]
public static extern int SetWindowLong(IntPtr hMenu, int nIndex, int dwNewLong);
[DllImport("user32.dll")]
private static extern int SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, int uFlags);
public static extern int GetWindowLong(IntPtr hwnd, int nIndex);
[DllImport("user32.dll", EntryPoint = "SetWindowLong")]
public static extern int SetWindowLong(IntPtr hMenu, int nIndex, int dwNewLong);
[DllImport("user32.dll")]
private static extern int SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, int uFlags);
private void DisableMaxmizebox(bool isDisable)
{
int GWL_STYLE = -16;
int WS_MAXIMIZEBOX = 0x00010000;
int WS_MINIMIZEBOX = 0x00020000;
int SWP_NOSIZE = 0x0001;
int SWP_NOMOVE = 0x0002;
int SWP_FRAMECHANGED = 0x0020;
IntPtr handle = new WindowInteropHelper(this).Handle;
int nStyle = GetWindowLong(handle, GWL_STYLE);
if (isDisable)
{
nStyle &= ~(WS_MAXIMIZEBOX);
nStyle &= ~(WS_MINIMIZEBOX);
}
else
{
nStyle |= WS_MAXIMIZEBOX;
nStyle |= WS_MINIMIZEBOX;
}
SetWindowLong(handle, GWL_STYLE, nStyle);
SetWindowPos(handle, IntPtr.Zero, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_FRAMECHANGED);
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
DisableMaxmizebox(true);
}
{
int GWL_STYLE = -16;
int WS_MAXIMIZEBOX = 0x00010000;
int WS_MINIMIZEBOX = 0x00020000;
int SWP_NOSIZE = 0x0001;
int SWP_NOMOVE = 0x0002;
int SWP_FRAMECHANGED = 0x0020;
IntPtr handle = new WindowInteropHelper(this).Handle;
int nStyle = GetWindowLong(handle, GWL_STYLE);
if (isDisable)
{
nStyle &= ~(WS_MAXIMIZEBOX);
nStyle &= ~(WS_MINIMIZEBOX);
}
else
{
nStyle |= WS_MAXIMIZEBOX;
nStyle |= WS_MINIMIZEBOX;
}
SetWindowLong(handle, GWL_STYLE, nStyle);
SetWindowPos(handle, IntPtr.Zero, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_FRAMECHANGED);
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
DisableMaxmizebox(true);
}
0 0
- WPF 去掉最大化最小化的方法
- WPF窗体去掉最大化,最小化按钮。
- 去掉窗体上的最大化、最小化图标
- Qt去掉最大化最小化按钮和最大化
- java-去掉 JFrame上的最大化最小化和关闭按钮
- 如何去掉WinForm标题栏的最大化、最小化及关闭按钮!
- WPF窗体最大化、最小化、关闭按钮的隐藏和禁用
- 窗口的最大化最小化
- 最大化,最小化的区别
- Qt 简单去掉对话框最大化、最小化按钮
- QT窗口去掉最大化最小化关闭按钮
- 【WPF】Window窗体禁用最大化/最小化按钮
- QTP中Browser对象的方法补充:激活、最大化、最小化
- java 如何去掉JFrame上的最大化最小化和关闭按钮
- [Java]如何去掉JFrame上的最大化最小化和关闭按钮
- java-如何去掉JFrame上的最大化最小化和关闭按钮
- java-如何去掉JFrame上的最大化最小化和关闭按钮
- Java-如何去掉JFrame上的最大化最小化和关闭按钮
- 内核虚拟地址与物理地址的关系
- C ++ 编程思想(卷一) 笔记
- 微软得小心了!谷歌与VMware合作推动Chrome OS上使用Windows应用
- 手机网页制作的认识(有关meta标签)
- angular 实现依赖注入
- WPF 去掉最大化最小化的方法
- NSSortDescriptor(数组排序)
- 教你打包Java程序,jar转exe随处可跑
- iOS Cell 的高级定制
- memset,memcpy,strcpy 的区别
- MC_HTTPD(自己编写的一个web服务器的介绍)
- 传诺基亚月底推Android手机 去除一切谷歌服务
- POJ 3295 Tautology(构造法 stack)
- 《高效学习OpenGL》之属性组 glPushAttrib(), glPopAttrib(), glPushClientAttrib(),glPopClientAttrib()