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,窗体的缩放
ResizeBorderThickness:调整窗口大小的边框,不可视边框
CaptionHeight:标题栏高度
CornerRadius:窗口四边圆角度
GlassFrameThickness:窗口边框大小,可视的边框
1 2 3 | <WindowChrome.WindowChrome> <WindowChrome ResizeBorderThickness= "4" CaptionHeight= "0" CornerRadius= "0" GlassFrameThickness= "0" /> </WindowChrome.WindowChrome> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2021-07-18 WPF零基础学习-常用控件1