Files
Semi.Avalonia/demo/Semi.Avalonia.Demo/App.axaml.cs

60 lines
2.0 KiB
C#
Raw Normal View History

using System.Runtime.InteropServices;
2023-03-20 23:14:50 +08:00
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
2024-07-23 14:57:21 +08:00
using Avalonia.Data.Core.Plugins;
2023-03-20 23:14:50 +08:00
using Avalonia.Markup.Xaml;
using Avalonia.Media;
using Avalonia.Platform;
2023-03-20 23:14:50 +08:00
using Semi.Avalonia.Demo.Views;
namespace Semi.Avalonia.Demo;
2023-03-20 23:14:50 +08:00
public partial class App : Application
{
2023-03-20 23:52:08 +08:00
public override void Initialize()
2023-03-20 23:14:50 +08:00
{
AvaloniaXamlLoader.Load(this);
}
public override void OnFrameworkInitializationCompleted()
{
switch (ApplicationLifetime)
2023-03-20 23:14:50 +08:00
{
case IClassicDesktopStyleApplicationLifetime desktop:
2024-07-23 14:57:21 +08:00
// 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;
2023-03-20 23:14:50 +08:00
}
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;
}
}
}
2023-03-20 23:14:50 +08:00
base.OnFrameworkInitializationCompleted();
}
}