mirror of
https://gitcode.com/gh_mirrors/se/Semi.Avalonia
synced 2026-04-12 04:06:35 +08:00
60 lines
2.0 KiB
C#
60 lines
2.0 KiB
C#
using System.Runtime.InteropServices;
|
|
using Avalonia;
|
|
using Avalonia.Controls.ApplicationLifetimes;
|
|
using Avalonia.Data.Core.Plugins;
|
|
using Avalonia.Markup.Xaml;
|
|
using Avalonia.Media;
|
|
using Avalonia.Platform;
|
|
using Semi.Avalonia.Demo.Views;
|
|
|
|
namespace Semi.Avalonia.Demo;
|
|
|
|
public partial class App : Application
|
|
{
|
|
public override void Initialize()
|
|
{
|
|
AvaloniaXamlLoader.Load(this);
|
|
}
|
|
|
|
public override void OnFrameworkInitializationCompleted()
|
|
{
|
|
switch (ApplicationLifetime)
|
|
{
|
|
case IClassicDesktopStyleApplicationLifetime desktop:
|
|
// Line below is needed to remove Avalonia data validation.
|
|
// Without this line you will get duplicate validations from both Avalonia and CT
|
|
BindingPlugins.DataValidators.RemoveAt(0);
|
|
desktop.MainWindow = new MainWindow();
|
|
break;
|
|
case ISingleViewApplicationLifetime singleView:
|
|
singleView.MainView = new MainView();
|
|
break;
|
|
}
|
|
|
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
|
{
|
|
var setting = PlatformSettings?.GetColorValues();
|
|
if (setting?.ContrastPreference is ColorContrastPreference.High)
|
|
{
|
|
if (setting.AccentColor1 == Color.Parse("#8EE3F0"))
|
|
{
|
|
RequestedThemeVariant = SemiTheme.Aquatic;
|
|
}
|
|
else if (setting.AccentColor1 == Color.Parse("#903909"))
|
|
{
|
|
RequestedThemeVariant = SemiTheme.Desert;
|
|
}
|
|
else if (setting.AccentColor1 == Color.Parse("#A1BFDE"))
|
|
{
|
|
RequestedThemeVariant = SemiTheme.Dusk;
|
|
}
|
|
else if (setting.AccentColor1 == Color.Parse("#D6B4FD"))
|
|
{
|
|
RequestedThemeVariant = SemiTheme.NightSky;
|
|
}
|
|
}
|
|
}
|
|
|
|
base.OnFrameworkInitializationCompleted();
|
|
}
|
|
} |