protected override void OnHandleCreated(EventArgs e) { base.OnHandleCreated(e); if (Environment.OSVersion.Platform == PlatformID.Win32NT) { UnsafeNativeMethods.GetSystemMenu(Handle, true); IntPtr hSysMenu = UnsafeNativeMethods.GetSystemMenu(Handle, false); if (hSysMenu != IntPtr.Zero) { if (AdditionalSysMenus != null) { int entryno = SC_ADDITIONALMENU; foreach (string t in AdditionalSysMenus) { UnsafeNativeMethods.AppendMenu(hSysMenu, MF.STRING, entryno++, t); } } UnsafeNativeMethods.AppendMenu(hSysMenu, MF.SEPARATOR, 0, string.Empty); UnsafeNativeMethods.AppendMenu(hSysMenu, MF.STRING, SC_ONTOP, "On &Top"); IntPtr hOpacSubmenu = UnsafeNativeMethods.CreateMenu(); if (hOpacSubmenu != IntPtr.Zero) { for (int i = 10; i > 0; i--) { UnsafeNativeMethods.AppendMenu(hOpacSubmenu, MF.STRING, SC_OPACITYSUBMENU + i, $"{i / 10f:P0}"); } UnsafeNativeMethods.AppendMenu(hSysMenu, MF.STRING | MF.POPUP, (int)hOpacSubmenu, "&Opacity"); } } } }