From 724800302518754f4d0633bcbb3bd90857e676e5 Mon Sep 17 00:00:00 2001 From: OrdosX Date: Mon, 24 Oct 2022 00:42:01 +0800 Subject: [PATCH] Change font color with light/dark mode --- percentage/percentage/TrayIcon.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/percentage/percentage/TrayIcon.cs b/percentage/percentage/TrayIcon.cs index 4ce73e4..7dcca2d 100644 --- a/percentage/percentage/TrayIcon.cs +++ b/percentage/percentage/TrayIcon.cs @@ -2,6 +2,7 @@ using System.Drawing; using System.Runtime.InteropServices; using System.Windows.Forms; +using Microsoft.Win32; namespace percentage { @@ -74,7 +75,18 @@ private void TimerTick(object sender, EventArgs e) String percentage = (powerStatus.BatteryLifePercent * 100).ToString(); bool isCharging = SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online; String bitmapText = isCharging ? percentage + "*" : percentage; - using (Bitmap bitmap = new Bitmap(GetTextBitmap(bitmapText, new Font(font, fontSize), Color.White))) + Color bitmapColor; + RegistryKey key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize"); + if (key != null) + { + bitmapColor = (int)key.GetValue("SystemUsesLightTheme") == 0 ? Color.White : Color.Black; + key.Close(); + } + else + { + bitmapColor = Color.White; + } + using (Bitmap bitmap = new Bitmap(GetTextBitmap(bitmapText, new Font(font, fontSize), bitmapColor))) { System.IntPtr intPtr = bitmap.GetHicon(); try