WPF中自定义无边窗口

1.解释说明

        - 该功能主要对界面窗口做美化处理

        - 自定义窗口的时候加上最小化、最大化、关闭、移动等功能

        - 注意程序分为xaml端和cs端

2.xaml端程序

        - 该程序禁用了原来的WindowStyle功能

        - 引用了style字典资源(以后会讲到)

        - 利用border对界面进行倒角处理,修改CornerRadius属性即可;同时也带有鼠标左键按下时的事件,主要用于移动窗口

        - 背景图片是直接添加到boeder控件里面的

        - 表框功能即为原来放大、缩小、关闭功能



    
    
        
            
                
                
            
        
    

    
    

        
        
          
            
            
                
            
            
            
            
                
                
                
                    
                    
                

                
                
                      
                    
                        

3、cs端程序

        - 对窗口的最大化添加了窗口居中的功能

        - 关闭窗口的同时记得关闭程序,要不然下次打不开程序

        //窗口居中
        private void CenterWindow()
        {
            // 获取屏幕宽度和高度
            double screenWidth = SystemParameters.PrimaryScreenWidth;
            double screenHeight = SystemParameters.PrimaryScreenHeight;

            // 计算新的窗口位置
            double newLeft = (screenWidth - Width) / 2;
            double newTop = (screenHeight - Height) / 2;

            // 设置窗口的新位置
            Left = newLeft;
            Top = newTop;
        }

        //最小化窗口
        private void MinimizeWindow(object sender, RoutedEventArgs e)
        {
            WindowState = WindowState.Minimized;
        }

        //最大化窗口和设置为固定大小窗口
        private void MaximizeWindow(object sender, RoutedEventArgs e)
        {
            if (WindowState != WindowState.Maximized)
            {
                // 如果不是最大化,则设置窗口大小
                WindowState = WindowState.Maximized;
                CenterWindow();
            }
            else
            {
                // 如果已经是最大化,则可能需要将窗口恢复到之前的大小
                Width = 1000;
                Height = 600;
                WindowState = WindowState.Normal;
                CenterWindow();
            }
        }

        //关闭窗口
        private void CloseWindow(object sender, RoutedEventArgs e)
        {
            // 关闭当前窗口
            this.Close();

            // 退出应用程序
            System.Windows.Application.Current.Shutdown();
        }

        //窗口移动
        private void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (e.OriginalSource == MyGrid || e.OriginalSource is Border || e.OriginalSource is Window || e.ClickCount) == 1)
               {
                  this.DragMove();
                  return;
               }
        }

你可能感兴趣的:(WPF-AI对话,wpf)