static void Main() { Console.WriteLine(NativeThemeUtils.GetThemesFolder()); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); /* * NativeThemeUtils.GetBasicWindowBitmap()?.Save("testbasic.png", ImageFormat.Png); * * var frm = new Form1 * { * StartPosition = FormStartPosition.CenterScreen * }; * * * frm.Show(); * var hasPainted = false; * _showPrm = new TaskCompletionSource<object>(); * frm.Paint += (s, e) => * { * if (hasPainted) return; * hasPainted = true; * _showPrm.TrySetResult(new object()); * }; * * Application.DoEvents(); * * _showPrm.Task.GetAwaiter().GetResult(); * * var sb = new StringBuilder(); * * sb.AppendLine("Environment.OSVersion.Version.ToString(): " + Environment.OSVersion.Version.ToString()); * * * var result = NativeThemeUtils.GetTitleBarInfoEx(frm.Handle, out var pti); * * sb.AppendLine("TitlebarInfoEx: " + JsonConvert.SerializeObject(pti)); * * sb.AppendLine("frm.Location: " + frm.Location.ToString()); * * var screenBitmap = GetScreenShot(pti); * screenBitmap.Save("scr_bmp.bmp"); * * * * Console.WriteLine(sb.ToString()); * * Console.ReadKey(); * * frm.Dispose(); */ var th = new Thread(() => Application.Run(new Form1 { StartPosition = FormStartPosition.CenterScreen })); th.SetApartmentState(ApartmentState.STA); th.Start(); }
private void RelocateWindow(PerPixelAlphaWindow w) { if (_rightOffset == -1) { var r = NativeThemeUtils.GetTitleBarInfoEx(Handle); var rectBtn = r.GetRectangle(CchildrenTitlebarConstants.CchildrenTitlebarMinimizeButton); var rectTbl = r.rcTitleBar; _rightOffset = rectTbl.Width - (rectTbl.right - rectBtn.left); } w.Left = Left + Width - BtnsOffset - _rightOffset; w.Top = Top; }
private static Size QueryTitlebarButtonSize() { return(NativeThemeUtils.GetTitleBarInfoEx() .GetRectangle(CchildrenTitlebarConstants.CchildrenTitlebarMinimizeButton).Size); }