using AdvancedCalculator.ViewModels; using AdvancedCalculator.Views; using Avalonia; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Data.Core.Plugins; using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml.Styling; using Avalonia.Styling; using System; namespace AdvancedCalculator; public partial class App : Application { public override void Initialize() { AvaloniaXamlLoader.Load(this); } public override void OnFrameworkInitializationCompleted() { // 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); // Load platform-specific styles (typography, scrollbars overrides) try { var styles = Current?.Styles; if (styles is not null) { if (OperatingSystem.IsAndroid()) { styles.Add(new StyleInclude(new Uri("avares://AdvancedCalculator/")) { Source = new Uri("avares://AdvancedCalculator.Android/Styles/Android.axaml") }); } else if (OperatingSystem.IsBrowser()) { styles.Add(new StyleInclude(new Uri("avares://AdvancedCalculator/")) { Source = new Uri("avares://AdvancedCalculator.Browser/Styles/Browser.axaml") }); } else { styles.Add(new StyleInclude(new Uri("avares://AdvancedCalculator/")) { Source = new Uri("avares://AdvancedCalculator.Desktop/Styles/Desktop.axaml") }); } } } catch { // If a platform-specific style dictionary is missing, continue without failing. } if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { desktop.MainWindow = new MainWindow { DataContext = new MainViewModel() }; } else if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewPlatform) { singleViewPlatform.MainView = new MainView { DataContext = new MainViewModel() }; } base.OnFrameworkInitializationCompleted(); } }