WPF 去掉最大化最小化的方法

说明:俺是WPF初学者,WPF里面的文字,都是我的学习笔记,里面借鉴了前辈们的方法。

主题:WPF 去掉最大化最小化的方法

基础知识: WPF中默认窗口框架的外观,主要取决于IconTitleWindowsStyleResizeMode等属性。

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

 

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);
        }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值