RequestedTheme="Light"
を指定して、ダークモードの設定でアプリケーションを起動した場合、
UIColorType.Background
のカラーがダークモードの背景色となってしまうため、タイトルバーが暗い色に設定されてしまいます。(RequestedThemeの設定についてはこちらの記事を参照してください。)
対処法は、ダークモードでアプリケーションをライトカラーに設定した場合はタイトルバーの色変更は不要です。 ライトモードでアプリケーションをダークカラーに設定した場合は、以下のコードでタイトルバーとコントロールボタンのカラーを設定します。
ただし、ウィンドウ右上の閉じるボタンはライトカラーの色になってしまう点に注意が必要です。
public MainWindow()
{
this.InitializeComponent();
IntPtr hwnd = WinRT.Interop.WindowNative.GetWindowHandle(this);
Microsoft.UI.WindowId windowId = Microsoft.UI.Win32Interop.GetWindowIdFromWindow(hwnd);
Microsoft.UI.Windowing.AppWindow appWindow = Microsoft.UI.Windowing.AppWindow.GetFromWindowId(windowId);
Windows.UI.Color c1 = new Windows.UI.Color() { A = 255, R = 0, G = 0, B = 0 };
appWindow.TitleBar.BackgroundColor = c1;
appWindow.TitleBar.ButtonBackgroundColor = c1;
Windows.UI.Color c2 = new Windows.UI.Color() { A = 255, R = 44, G = 45, B = 47 };
appWindow.TitleBar.ButtonHoverBackgroundColor = c2;
Windows.UI.Color c3 = new Windows.UI.Color() { A = 255, R = 41, G = 42, B = 44 };
appWindow.TitleBar.ButtonPressedBackgroundColor = c3;
Windows.UI.Color w1 = new Windows.UI.Color() { A = 255, R = 255, G = 255, B = 255 };
appWindow.TitleBar.ButtonForegroundColor = w1;
appWindow.TitleBar.ButtonHoverForegroundColor = w1;
appWindow.TitleBar.ButtonPressedForegroundColor = w1;
}