App.xaml.cs 3.6 KB

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