App.xaml.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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 ControlCatalog.ViewModels;
  9. namespace ControlCatalog
  10. {
  11. public class App : Application
  12. {
  13. public App()
  14. {
  15. DataContext = new ApplicationViewModel();
  16. }
  17. private static readonly StyleInclude DataGridFluent = new StyleInclude(new Uri("avares://ControlCatalog/Styles"))
  18. {
  19. Source = new Uri("avares://Avalonia.Controls.DataGrid/Themes/Fluent.xaml")
  20. };
  21. private static readonly StyleInclude DataGridDefault = new StyleInclude(new Uri("avares://ControlCatalog/Styles"))
  22. {
  23. Source = new Uri("avares://Avalonia.Controls.DataGrid/Themes/Default.xaml")
  24. };
  25. public static Styles FluentDark = new Styles
  26. {
  27. new StyleInclude(new Uri("avares://ControlCatalog/Styles"))
  28. {
  29. Source = new Uri("avares://Avalonia.Themes.Fluent/FluentDark.xaml")
  30. },
  31. DataGridFluent
  32. };
  33. public static Styles FluentLight = new Styles
  34. {
  35. new StyleInclude(new Uri("avares://ControlCatalog/Styles"))
  36. {
  37. Source = new Uri("avares://Avalonia.Themes.Fluent/FluentLight.xaml")
  38. },
  39. DataGridFluent
  40. };
  41. public static Styles DefaultLight = new Styles
  42. {
  43. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  44. {
  45. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/AccentColors.xaml")
  46. },
  47. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  48. {
  49. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/Base.xaml")
  50. },
  51. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  52. {
  53. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/BaseLight.xaml")
  54. },
  55. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  56. {
  57. Source = new Uri("avares://Avalonia.Themes.Default/Accents/BaseLight.xaml")
  58. },
  59. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  60. {
  61. Source = new Uri("avares://Avalonia.Themes.Default/DefaultTheme.xaml")
  62. },
  63. DataGridDefault
  64. };
  65. public static Styles DefaultDark = new Styles
  66. {
  67. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  68. {
  69. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/AccentColors.xaml")
  70. },
  71. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  72. {
  73. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/Base.xaml")
  74. },
  75. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  76. {
  77. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/BaseDark.xaml")
  78. },
  79. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  80. {
  81. Source = new Uri("avares://Avalonia.Themes.Default/Accents/BaseDark.xaml")
  82. },
  83. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  84. {
  85. Source = new Uri("avares://Avalonia.Themes.Default/DefaultTheme.xaml")
  86. },
  87. DataGridDefault
  88. };
  89. public override void Initialize()
  90. {
  91. Styles.Insert(0, FluentLight);
  92. AvaloniaXamlLoader.Load(this);
  93. }
  94. public override void OnFrameworkInitializationCompleted()
  95. {
  96. if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktopLifetime)
  97. {
  98. desktopLifetime.MainWindow = new MainWindow();
  99. }
  100. else if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewLifetime)
  101. singleViewLifetime.MainView = new MainView();
  102. base.OnFrameworkInitializationCompleted();
  103. }
  104. }
  105. }