78 lines
2.5 KiB
C#
78 lines
2.5 KiB
C#
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();
|
|
}
|
|
}
|