Beispiel #1
0
        private void InitializeEvent()
        {
            ControlTemplate   mainWindowTemplate = this.Template;
            Button            minBtn             = (Button)mainWindowTemplate.FindName("btnMin", this);
            ButtonUserControl maxBtn             = (ButtonUserControl)mainWindowTemplate.FindName("btnMax", this);
            Button            closeBtn           = (Button)mainWindowTemplate.FindName("btnClose", this);
            Button            skinBtn            = (Button)mainWindowTemplate.FindName("btnSkin", this);
            Button            menuBtn            = (Button)mainWindowTemplate.FindName("btnMenu", this);

            minBtn.Click += delegate
            {
                oldRect          = new Rect(this.Left, this.Top, this.Width, this.Height);
                this.WindowState = WindowState.Minimized;
            };

            maxBtn.Click += delegate
            {
                ImageSourceConverter imgConv = new ImageSourceConverter();
                if (this.WindowState == WindowState.Normal)
                {
                    oldRect                    = new Rect(this.Left, this.Top, this.Width, this.Height);
                    this.WindowState           = WindowState.Maximized;
                    maxBtn.ImgSource           = (ImageSource)imgConv.ConvertFromString("pack://application:,,,/FYJ.Winui;component/Resources/btn_restore_normal.png");
                    maxBtn.MouseEnterImgSource = (ImageSource)imgConv.ConvertFromString("pack://application:,,,/FYJ.Winui;component/Resources/btn_restore_highlight.png");
                    maxBtn.ToolTip             = "向下还原";
                }
                else
                {
                    this.WindowState           = WindowState.Normal;
                    maxBtn.ImgSource           = (ImageSource)imgConv.ConvertFromString("pack://application:,,,/FYJ.Winui;component/Resources/btn_max_normal.png");
                    maxBtn.MouseEnterImgSource = (ImageSource)imgConv.ConvertFromString("pack://application:,,,/FYJ.Winui;component/Resources/btn_max_highlight.png");
                    maxBtn.ToolTip             = "最大化";
                }
            };

            closeBtn.Click += delegate
            {
                this.Close();
                //接下来的在Closed事件里处理
            };

            menuBtn.Click += delegate
            {
                if (this.TitleContextMenu != null)
                {
                    this.TitleContextMenu.IsOpen = true;
                }
            };
            //Border borderTitle = (Border)mainWindowTemplate.FindName("borderTitle", this);
            //borderTitle.MouseMove += delegate(object sender, MouseEventArgs e)
            //{
            //    if (e.LeftButton == MouseButtonState.Pressed)
            //    {
            //        this.DragMove();
            //    }
            //};
            //borderTitle.MouseLeftButtonDown += delegate(object sender, MouseButtonEventArgs e)
            //{
            //    if (e.ClickCount >= 2)
            //    {
            //        maxBtn.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
            //    }
            //};

            skinBtn.Click += delegate
            {
                pickerWindow.WindowStartupLocation = WindowStartupLocation.Manual;
                pickerWindow.Top  = this.Top + 18;
                pickerWindow.Left = this.Left + this.Width - 138 - pickerWindow.Width;
                pickerWindow.Show();
            };
        }
Beispiel #2
0
        public BaseWindow()
        {
            this.AllowDrop = true;
            //this.Style = (Style)App.Current.Resources["MainWindowStyle"];
            this.SourceInitialized += delegate(object sender, EventArgs e)
            {
                this.hwndSource = PresentationSource.FromVisual((Visual)sender) as HwndSource;
                this.hwndSource.AddHook(Win32.WindowProc);
            };

            this.Loaded += delegate
            {
                try
                {
                    //ControlTemplate mainWindowTemplate = (ControlTemplate)App.Current.Resources["BaseWindowControlTemplate"];
                    ControlTemplate mainWindowTemplate = this.Template;

                    ButtonUserControl btnMenu = (ButtonUserControl)mainWindowTemplate.FindName("btnMenu", this);
                    ButtonUserControl btnSkin = (ButtonUserControl)mainWindowTemplate.FindName("btnSkin", this);
                    ButtonUserControl btnMin  = (ButtonUserControl)mainWindowTemplate.FindName("btnMin", this);
                    ButtonUserControl btnMax  = (ButtonUserControl)mainWindowTemplate.FindName("btnMax", this);

                    if (!IsShowMenuButton)
                    {
                        btnMenu.Visibility = Visibility.Collapsed;
                    }
                    if (IsShowSkinButton)
                    {
                        pickerWindow = new ColorPickerWindow();
                        ChangeColor(Color.FromArgb(pickerWindow.CurrentColor.A, pickerWindow.CurrentColor.R, pickerWindow.CurrentColor.G, pickerWindow.CurrentColor.B));
                        pickerWindow.ColorChanged += delegate(System.Windows.Media.Color c)
                        {
                            ChangeColor(c);
                        };

                        pickerWindow.SkinChanged += delegate(BitmapSource bitmapSource)
                        {
                            ChangeSkin(bitmapSource);
                        };

                        pickerWindow.OpacityChanged += delegate(int value)
                        {
                            this.Opacity = Math.Round(value / 100.0, 2);
                        };
                    }
                    else
                    {
                        //2015-7-13
                        System.Drawing.Color _currentColor = System.Drawing.Color.FromArgb(21, 160, 253);
                        ChangeColor(Color.FromArgb(_currentColor.A, _currentColor.R, _currentColor.G, _currentColor.B));

                        btnSkin.Visibility = Visibility.Collapsed;
                    }

                    if (this.ResizeMode == ResizeMode.NoResize)
                    {
                        btnMax.Visibility = Visibility.Collapsed;
                        btnMin.Visibility = Visibility.Collapsed;
                    }

                    if (this.ResizeMode == ResizeMode.CanMinimize)
                    {
                        btnMax.IsEnabled = false;
                    }

                    if (this.ResizeMode == ResizeMode.CanResize || this.ResizeMode == ResizeMode.CanResizeWithGrip)
                    {
                        ImageSourceConverter imgConv = new ImageSourceConverter();
                        if (this.WindowState == WindowState.Normal)
                        {
                            btnMax.ImgSource           = (ImageSource)imgConv.ConvertFromString("pack://application:,,,/FYJ.Winui;component/Resources/btn_max_normal.png");
                            btnMax.MouseEnterImgSource = (ImageSource)imgConv.ConvertFromString("pack://application:,,,/FYJ.Winui;component/Resources/btn_max_highlight.png");
                            btnMax.ToolTip             = "最大化";
                        }
                        else
                        {
                            btnMax.ImgSource           = (ImageSource)imgConv.ConvertFromString("pack://application:,,,/FYJ.Winui;component/Resources/btn_restore_normal.png");
                            btnMax.MouseEnterImgSource = (ImageSource)imgConv.ConvertFromString("pack://application:,,,/FYJ.Winui;component/Resources/btn_restore_highlight.png");
                            btnMax.ToolTip             = "向下还原";
                        }
                    }

                    InitializeEvent();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("加载失败:" + ex.Message);
                }
            };

            this.StateChanged += delegate
            {
                if (this.WindowState == WindowState.Maximized)
                {
                    System.Drawing.Size size = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size;
                    this.Width  = size.Width;
                    this.Height = size.Height;
                }
                else
                {
                    if (oldRect.Width != 0)
                    {
                        this.Width  = oldRect.Width;
                        this.Height = oldRect.Height;
                        this.Top    = oldRect.Top;
                        this.Left   = oldRect.Left;
                    }
                }
            };

            this.Closed += delegate
            {
                if (pickerWindow != null)
                {
                    pickerWindow.Close();
                }
                if (IsCloseApplication)
                {
                    Application.Current.Shutdown();
                    Environment.Exit(0);
                }
            };
        }
Beispiel #3
0
        public void Init()
        {
            window.Style              = (Style)App.Current.Resources["BaseWindowStyle"];
            window.SourceInitialized += delegate(object sender, EventArgs e)
            {
                this.hwndSource = PresentationSource.FromVisual((Visual)sender) as HwndSource;
                this.hwndSource.AddHook(Win32.WindowProc);
            };

            window.Loaded += delegate
            {
                try
                {
                    ControlTemplate mainWindowTemplate = window.Template;

                    ButtonUserControl btnMin   = (ButtonUserControl)mainWindowTemplate.FindName("btnMin", window);
                    ButtonUserControl btnMax   = (ButtonUserControl)mainWindowTemplate.FindName("btnMax", window);
                    ButtonUserControl closeBtn = (ButtonUserControl)mainWindowTemplate.FindName("btnClose", window);
                    ButtonUserControl btnMenu  = (ButtonUserControl)mainWindowTemplate.FindName("btnMenu", window);
                    ButtonUserControl btnSkin  = (ButtonUserControl)mainWindowTemplate.FindName("btnSkin", window);
                    //隐藏菜单按钮
                    if (btnMenu != null)
                    {
                        btnMenu.Visibility = Visibility.Collapsed;
                    }
                    //隐藏调色按钮
                    if (btnSkin != null)
                    {
                        btnSkin.Visibility = Visibility.Collapsed;
                    }

                    if (window.ResizeMode == ResizeMode.NoResize)
                    {
                        btnMax.Visibility = Visibility.Collapsed;
                        btnMin.Visibility = Visibility.Collapsed;
                    }

                    if (window.ResizeMode == ResizeMode.CanMinimize)
                    {
                        btnMax.IsEnabled = false;
                    }

                    if (window.ResizeMode == ResizeMode.CanResize || window.ResizeMode == ResizeMode.CanResizeWithGrip)
                    {
                        ImageSourceConverter imgConv = new ImageSourceConverter();
                        if (window.WindowState == WindowState.Normal)
                        {
                            btnMax.ImgSource           = (ImageSource)imgConv.ConvertFromString("pack://application:,,,/FYJ.Winui;component/Resources/btn_max_normal.png");
                            btnMax.MouseEnterImgSource = (ImageSource)imgConv.ConvertFromString("pack://application:,,,/FYJ.Winui;component/Resources/btn_max_highlight.png");
                            btnMax.ToolTip             = "最大化";
                        }
                        else
                        {
                            btnMax.ImgSource           = (ImageSource)imgConv.ConvertFromString("pack://application:,,,/FYJ.Winui;component/Resources/btn_restore_normal.png");
                            btnMax.MouseEnterImgSource = (ImageSource)imgConv.ConvertFromString("pack://application:,,,/FYJ.Winui;component/Resources/btn_restore_highlight.png");
                            btnMax.ToolTip             = "向下还原";
                        }
                    }

                    btnMin.Click += delegate
                    {
                        oldRect            = new Rect(window.Left, window.Top, window.Width, window.Height);
                        window.WindowState = WindowState.Minimized;
                    };

                    btnMax.Click += delegate
                    {
                        ImageSourceConverter imgConv = new ImageSourceConverter();
                        if (window.WindowState == WindowState.Normal)
                        {
                            oldRect                    = new Rect(window.Left, window.Top, window.Width, window.Height);
                            window.WindowState         = WindowState.Maximized;
                            btnMax.ImgSource           = (ImageSource)imgConv.ConvertFromString("pack://application:,,,/FYJ.Winui;component/Resources/btn_restore_normal.png");
                            btnMax.MouseEnterImgSource = (ImageSource)imgConv.ConvertFromString("pack://application:,,,/FYJ.Winui;component/Resources/btn_restore_highlight.png");
                            btnMax.ToolTip             = "向下还原";
                        }
                        else
                        {
                            window.WindowState         = WindowState.Normal;
                            btnMax.ImgSource           = (ImageSource)imgConv.ConvertFromString("pack://application:,,,/FYJ.Winui;component/Resources/btn_max_normal.png");
                            btnMax.MouseEnterImgSource = (ImageSource)imgConv.ConvertFromString("pack://application:,,,/FYJ.Winui;component/Resources/btn_max_highlight.png");
                            btnMax.ToolTip             = "最大化";
                        }
                    };

                    closeBtn.Click += delegate
                    {
                        window.Close();
                    };
                }
                catch (Exception ex)
                {
                    MessageBox.Show("加载失败:" + ex.Message);
                }
            };

            window.StateChanged += delegate
            {
                if (window.WindowState == WindowState.Maximized)
                {
                    System.Drawing.Size size = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size;
                    window.Width  = size.Width;
                    window.Height = size.Height;
                }
                else
                {
                    window.Width  = oldRect.Width;
                    window.Height = oldRect.Height;
                    window.Top    = oldRect.Top;
                    window.Left   = oldRect.Left;
                }
            };

            window.MouseLeftButtonDown += Window1_MouseLeftButtonDown;
            window.MouseMove           += Window1_MouseMove;
            window.MouseLeave          += Window1_MouseLeave;
        }