Создаём обычную форму, кинем на неё две кнопки. Создаём класс: Structures.cs и запишем туда такой код: namespace GlassEffectAero { using System; internal static class Structures { public struct DwmBlurbehind { public int DwFlags; public bool FEnable, FTransitionOnMaximized; public IntPtr HRgnBlur; } } } Код namespace GlassEffectAero { using System; internal static class Structures { public struct DwmBlurbehind { public int DwFlags; public bool FEnable, FTransitionOnMaximized; public IntPtr HRgnBlur; } } } Теперь создадим класс: NativeMethods.cs и запишем туда такой код: namespace GlassEffectAero { using System; using System.Runtime.InteropServices; internal static class NativeMethods { [DllImport("gdi32")] internal static extern IntPtr CreateEllipticRgn(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect); [DllImport("dwmapi")] internal static extern int DwmEnableBlurBehindWindow(IntPtr hWnd, ref Structures.DwmBlurbehind pBlurBehind); } } Код namespace GlassEffectAero { using System; using System.Runtime.InteropServices; internal static class NativeMethods { [DllImport("gdi32")] internal static extern IntPtr CreateEllipticRgn(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect); [DllImport("dwmapi")] internal static extern int DwmEnableBlurBehindWindow(IntPtr hWnd, ref Structures.DwmBlurbehind pBlurBehind); } } На главную форму впишем такой код: namespace GlassEffectAero { using System; using System.Drawing; using System.Windows.Forms; public partial class AeroFrm : Form { public AeroFrm() { InitializeComponent(); } // Переменная для управления перерисовки по кнопкам bool status_click = false; protected override void OnPaint(PaintEventArgs e) { if (Environment.OSVersion.Version.Major >= 6) { base.OnPaint(e); using (Brush brush = new SolidBrush(status_click ? Color.FromKnownColor(KnownColor.ControlLight) : Color.Black)) { e?.Graphics?.FillRectangle(brush, ClientRectangle); } IntPtr hr = NativeMethods.CreateEllipticRgn(0, 0, Width, Height); var dbb = new Structures.DwmBlurbehind { FEnable = !status_click, DwFlags = 1, HRgnBlur = hr, FTransitionOnMaximized = false }; NativeMethods.DwmEnableBlurBehindWindow(Handle, ref dbb); } } private void AeroFrm_Load(object sender, EventArgs e) { DoubleBuffered = false; status_click = true; this.Invalidate(); } private void AeroActive_Click(object sender, EventArgs e) { status_click = false; // Ставим false при клике ActiveControl = null; // Уберает фокус с контрола this.Invalidate(); // Перерисовываем } private void AeroDeactive_Click(object sender, EventArgs e) { status_click = true; // Ставим true при клике ActiveControl = null; // Уберает фокус с контрола this.Invalidate(); // Перерисовываем } } } Код namespace GlassEffectAero { using System; using System.Drawing; using System.Windows.Forms; public partial class AeroFrm : Form { public AeroFrm() { InitializeComponent(); } // Переменная для управления перерисовки по кнопкам bool status_click = false; protected override void OnPaint(PaintEventArgs e) { if (Environment.OSVersion.Version.Major >= 6) { base.OnPaint(e); using (Brush brush = new SolidBrush(status_click ? Color.FromKnownColor(KnownColor.ControlLight) : Color.Black)) { e?.Graphics?.FillRectangle(brush, ClientRectangle); } IntPtr hr = NativeMethods.CreateEllipticRgn(0, 0, Width, Height); var dbb = new Structures.DwmBlurbehind { FEnable = !status_click, DwFlags = 1, HRgnBlur = hr, FTransitionOnMaximized = false }; NativeMethods.DwmEnableBlurBehindWindow(Handle, ref dbb); } } private void AeroFrm_Load(object sender, EventArgs e) { DoubleBuffered = false; status_click = true; this.Invalidate(); } private void AeroActive_Click(object sender, EventArgs e) { status_click = false; // Ставим false при клике ActiveControl = null; // Уберает фокус с контрола this.Invalidate(); // Перерисовываем } private void AeroDeactive_Click(object sender, EventArgs e) { status_click = true; // Ставим true при клике ActiveControl = null; // Уберает фокус с контрола this.Invalidate(); // Перерисовываем } } } Результат:
круто, но WPF для этих целей лучше подходит. --- Сообщение объединено с предыдущим 27 дек 2020 хотя спс. Пригодится. Я под WPF толком не кодил. По этому сяб за инфу.