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

 1,按钮操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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,窗体移动:全窗体区域都可以拖动

1
2
3
4
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中实现:关闭,最大最小化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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,去掉窗体默认样式的边框

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

2,设置窗体的圆角效果

1
2
3
4
5
6
7
8
9
10
11
12
13
<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:窗口边框大小,可视的边框

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

  

 

posted @   包子789654  阅读(4058)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2021-07-18 WPF零基础学习-常用控件1
点击右上角即可分享
微信分享提示