App.xaml.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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. public 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. public 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. };
  32. public static Styles FluentLight = new Styles
  33. {
  34. new StyleInclude(new Uri("avares://ControlCatalog/Styles"))
  35. {
  36. Source = new Uri("avares://Avalonia.Themes.Fluent/FluentLight.xaml")
  37. }
  38. };
  39. public static Styles DefaultLight = new Styles
  40. {
  41. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  42. {
  43. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/AccentColors.xaml")
  44. },
  45. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  46. {
  47. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/Base.xaml")
  48. },
  49. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  50. {
  51. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/BaseLight.xaml")
  52. },
  53. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  54. {
  55. Source = new Uri("avares://Avalonia.Themes.Default/Accents/BaseLight.xaml")
  56. },
  57. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  58. {
  59. Source = new Uri("avares://Avalonia.Themes.Default/DefaultTheme.xaml")
  60. }
  61. };
  62. public static Styles DefaultDark = new Styles
  63. {
  64. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  65. {
  66. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/AccentColors.xaml")
  67. },
  68. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  69. {
  70. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/Base.xaml")
  71. },
  72. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  73. {
  74. Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/BaseDark.xaml")
  75. },
  76. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  77. {
  78. Source = new Uri("avares://Avalonia.Themes.Default/Accents/BaseDark.xaml")
  79. },
  80. new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
  81. {
  82. Source = new Uri("avares://Avalonia.Themes.Default/DefaultTheme.xaml")
  83. }
  84. };
  85. public override void Initialize()
  86. {
  87. AvaloniaXamlLoader.Load(this);
  88. }
  89. public override void OnFrameworkInitializationCompleted()
  90. {
  91. if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktopLifetime)
  92. {
  93. desktopLifetime.MainWindow = new MainWindow();
  94. }
  95. else if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewLifetime)
  96. singleViewLifetime.MainView = new MainView();
  97. base.OnFrameworkInitializationCompleted();
  98. }
  99. }
  100. }