WPF-窗体移动,最小化,最大化,关闭;圆角无边框窗体设置

 1,按钮操作

        private void Exit()
        {
            //System.Environment.Exit(0); 这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。(主要针对在任务栏关闭窗口而没有关闭端口号的问题))

            //Application.Current.Shutdown();//退出程序,并不是真正的退出,在进程中还存在
            // 弹窗提示是否确定要退出
            MessageBoxResult result = MessageBox.Show("您确定要退出吗?", "退出提示", MessageBoxButton.OKCancel, MessageBoxImage.None, MessageBoxResult.Cancel);
            if (result == MessageBoxResult.OK)
            {
                //【关闭当前窗口】
                System.Environment.Exit(0);
            }
        }

        private void Max()
        {
            //【还原 或者 最大化当前窗口】
            if (Application.Current.MainWindow.WindowState == WindowState.Normal)
            {
                //Application.Current.MainWindow.MaxHeight = SystemParameters.MaximizedPrimaryScreenHeight;//用这个,如果没有隐藏任务栏,就显示不全
                Application.Current.MainWindow.MaxHeight = SystemParameters.WorkArea.Height;
                Application.Current.MainWindow.WindowStyle = WindowStyle.None;
                Application.Current.MainWindow.ResizeMode = ResizeMode.NoResize;
                Application.Current.MainWindow.WindowState = WindowState.Maximized;
                return;
            }

            if (Application.Current.MainWindow.WindowState == WindowState.Maximized)
            {
                Application.Current.MainWindow.ResizeMode = ResizeMode.CanResize;
                Application.Current.MainWindow.WindowState = WindowState.Normal;
                return;
            }
        }

        private void Min()
        {
            //【最小化当前窗口】
            Application.Current.MainWindow.WindowState = WindowState.Minimized;
        }

  

2,窗体移动:全窗体区域都可以拖动

        private void MainWindow_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            this.DragMove();
        }

3,窗体大小调节样式: ResizeMode

1、NoResize:窗体大小不可调节,且窗体没有最大按钮、最小按钮;只有最小化按钮和关闭按钮。
ResizeMode="NoResize"

2、CanMinimize:窗体大小不可调节,且窗体没有最大化按钮,只有最小化按钮和关闭按钮。
ResizeMode="CanMinimize"

3、CanResize:窗体大小可调节,窗体有最小化按钮、最大化按钮和关闭按钮,且可以自由拉大和缩小,是系统默认的类型。
ResizeMode="CanResize"

4、CanResizeWithGrip:窗体可根据网格调节大小;窗体有最小化按钮、最大化按钮和关闭按钮,在窗口的右下角有一个类似网格的东西可以进行放大和缩小操作。
ResizeMode="CanResizeWithGrip

4,在ViewMode中实现:关闭,最大最小化

        private void Exit()
        {
            //System.Environment.Exit(0); 这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。(主要针对在任务栏关闭窗口而没有关闭端口号的问题))

            //Application.Current.Shutdown();//退出程序,并不是真正的退出,在进程中还存在

            //【关闭当前窗口】
            System.Environment.Exit(0);
        }

        private void Max()
        {
            //【还原 或者 最大化当前窗口】
            if (Application.Current.MainWindow.WindowState == WindowState.Normal)
            {
                Application.Current.MainWindow.WindowState = WindowState.Maximized;
                return;
            }
            if (Application.Current.MainWindow.WindowState == WindowState.Maximized)
            {
                Application.Current.MainWindow.WindowState = WindowState.Normal;
                return;
            }
        }

        private void Min()
        {
            //【最小化当前窗口】
            Application.Current.MainWindow.WindowState = WindowState.Minimized;
        }

  

WPF圆角无边框设置

1,去掉窗体默认样式的边框

Background="Transparent" WindowStyle="None" AllowsTransparency="True" 

2,设置窗体的圆角效果

    <Border CornerRadius="10" BorderThickness="0" BorderBrush="Transparent">
        <Border.Background>
            <RadialGradientBrush GradientOrigin="0.5,-0.8" Center="0.5,0" RadiusY="0.7" RadiusX="0.7">
                <GradientStop Color="#ffa02b40" Offset="0"/>
                <GradientStop Color="#ff08113c" Offset="1"/>
            </RadialGradientBrush>
        </Border.Background>

        <Grid >
         

        </Grid>
    </Border>

3,窗体的缩放

(101条消息) WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome)_glassframethickness_walter lv的博客-CSDN博客

ResizeBorderThickness:调整窗口大小的边框,不可视边框
CaptionHeight:标题栏高度
CornerRadius:窗口四边圆角度
GlassFrameThickness:窗口边框大小,可视的边框

    <WindowChrome.WindowChrome>
        <WindowChrome   ResizeBorderThickness="4" CaptionHeight="0" CornerRadius="0" GlassFrameThickness="0"/>
    </WindowChrome.WindowChrome>

  

 

posted @ 2022-07-18 10:55  包子789654  阅读(2990)  评论(0编辑  收藏  举报