Skip to content
This repository was archived by the owner on Oct 23, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions App.axaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="TraeTools.App"
xmlns:local="using:TraeTools"
RequestedThemeVariant="Light">
xmlns:local="using:TraeTools">
<!--
刻意不写死 RequestedThemeVariant:
不设时的默认值即「跟随系统」,三态由 AppConfig.ThemeMode 决定,
启动时经 Services/ThemeService.Apply 应用(见 App.axaml.cs)。
配色只有 Styles/AppTheme.axaml 一份,按 Light/Dark 收在 ThemeDictionaries 里。
-->

<Application.DataTemplates>
<local:ViewLocator />
Expand Down
9 changes: 8 additions & 1 deletion App.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using TraeTools.Services;
using TraeTools.ViewModels;
using TraeTools.Views;

Expand All @@ -21,9 +22,15 @@ public override void OnFrameworkInitializationCompleted()
{
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
var vm = new MainViewModel();

// 主题必须在窗口创建前应用:否则会先按默认变体绘制一帧再切过去(可见闪一下)。
// MainViewModel 的构造已完成 AppConfig.Load(),此处读到的就是用户设置。
ThemeService.Apply(MainViewModel.AppConfig?.ThemeMode);

desktop.MainWindow = new MainWindow
{
DataContext = new MainViewModel(),
DataContext = vm,
};
}

Expand Down
Loading
Loading