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,窗体的缩放
ResizeBorderThickness:调整窗口大小的边框,不可视边框
CaptionHeight:标题栏高度
CornerRadius:窗口四边圆角度
GlassFrameThickness:窗口边框大小,可视的边框
<WindowChrome.WindowChrome> <WindowChrome ResizeBorderThickness="4" CaptionHeight="0" CornerRadius="0" GlassFrameThickness="0"/> </WindowChrome.WindowChrome>