App.xaml.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. using System;
  2. using Avalonia;
  3. using Avalonia.Controls;
  4. using Avalonia.Controls.ApplicationLifetimes;
  5. using Avalonia.Markup.Xaml;
  6. using Avalonia.Markup.Xaml.Styling;
  7. using Avalonia.Styling;
  8. using Avalonia.Themes.Fluent;
  9. using ControlCatalog.ViewModels;
  10. namespace ControlCatalog
  11. {
  12. public class App : Application
  13. {
  14. public App()
  15. {
  16. DataContext = new ApplicationViewModel();
  17. }
  18. public static readonly StyleInclude DataGridFluent = new StyleInclude(new Uri("avares://ControlCatalog/Styles"))
  19. {
  20. Source = new Uri("avares://Avalonia.Controls.DataGrid/Themes/Fluent.xaml")
  21. };
  22. public static readonly StyleInclude DataGridDefault = new StyleInclude(new Uri("avares://ControlCatalog/Styles"))
  23. {
  24. Source = new Uri("avares://Avalonia.Controls.DataGrid/Themes/Default.xaml")
  25. };
  26. public static FluentTheme Fluent = new FluentTheme(new Uri("avares://ControlCatalog/Styles"));
  27. public static Styles DefaultLight = new Styles
  28. {
  29. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  30. {
  31. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/AccentColors.xaml")
  32. },
  33. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  34. {
  35. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/Base.xaml")
  36. },
  37. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  38. {
  39. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/BaseLight.xaml")
  40. },
  41. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  42. {
  43. Source = new Uri("avares://Avalonia.Themes.Default/Accents/BaseLight.xaml")
  44. },
  45. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  46. {
  47. Source = new Uri("avares://Avalonia.Themes.Default/DefaultTheme.xaml")
  48. }
  49. };
  50. public static Styles DefaultDark = new Styles
  51. {
  52. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  53. {
  54. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/AccentColors.xaml")
  55. },
  56. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  57. {
  58. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/Base.xaml")
  59. },
  60. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  61. {
  62. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/BaseDark.xaml")
  63. },
  64. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  65. {
  66. Source = new Uri("avares://Avalonia.Themes.Default/Accents/BaseDark.xaml")
  67. },
  68. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  69. {
  70. Source = new Uri("avares://Avalonia.Themes.Default/DefaultTheme.xaml")
  71. }
  72. };
  73. public override void Initialize()
  74. {
  75. Styles.Insert(0, Fluent);
  76. Styles.Insert(1, DataGridFluent);
  77. AvaloniaXamlLoader.Load(this);
  78. }
  79. public override void OnFrameworkInitializationCompleted()
  80. {
  81. if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktopLifetime)
  82. {
  83. desktopLifetime.MainWindow = new MainWindow();
  84. }
  85. else if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewLifetime)
  86. singleViewLifetime.MainView = new MainView();
  87. base.OnFrameworkInitializationCompleted();
  88. this.AttachDevTools(new Avalonia.Diagnostics.DevToolsOptions()
  89. {
  90. StartupScreenIndex = 1,
  91. });
  92. }
  93. }
  94. }