public override void OnApplyTemplate() { base.OnApplyTemplate(); WindowPainter.SetWindowCorners(this, CornerPreference.Round); if (WindowPainter.SetMicaBackground(this)) { this.Resources["App.BackgroundColor"] = this.Resources["App.BackgroundColor.Mica"]; } this.TitleBar.MouseDown += (_, e) => { e.Handled = true; if (IsMenuOpen) { IsMenuOpen = false; } else if (Mouse.LeftButton == MouseButtonState.Pressed) { // Prevent Aero Snap. this.ResizeMode = ResizeMode.NoResize; this.DragMove(); } }; this.TitleBar.MouseUp += (_, _) => { this.ResizeMode = ResizeMode.CanResize; }; // Handle MouseLeave event because MouseUp event may not fire. this.TitleBar.MouseLeave += (_, _) => { this.ResizeMode = ResizeMode.CanResize; }; this.MenuPain.MouseDown += (_, e) => { e.Handled = true; }; this.MouseDown += (_, e) => { IsMenuOpen = false; }; }
private void MainWindow_Paint(object sender, PaintEventArgs e) { WindowPainter.Paint( e.Graphics, RedrawBackgroundFlag, BackColor, Width, Height, menuStrip1.Height + toolStrip1.Height, SpriteEditor, Sprites, CurrentSprite, ColorPicker); if (!Active) { using var shadow = new SolidBrush(Color.FromArgb(190, 0, 0, 0)); e.Graphics.FillRectangle(shadow, 0, 0, Width, Height); } RedrawBackgroundFlag = false; }