too many to add

This commit is contained in:
TheXamlGuy
2024-01-29 22:03:36 +00:00
parent 3917639e8d
commit c546ca2343
44 changed files with 573 additions and 94 deletions
+4 -7
View File
@@ -1,5 +1,4 @@
using CustomExtensions.WinUI;
using Hyperbar.Controls.Windows;
using Hyperbar.Controls.Windows;
using Hyperbar.UI.Windows;
using Hyperbar.Widget;
using Microsoft.Extensions.Configuration;
@@ -9,17 +8,14 @@ using Microsoft.UI.Dispatching;
using Microsoft.UI.Xaml;
using System.Reflection;
using Hyperbar.Widget.Windows;
using Microsoft.UI.Xaml.Markup;
namespace Hyperbar.Windows;
public partial class App :
Application
{
public App()
{
InitializeComponent();
ApplicationExtensionHost.Initialize(this);
}
public App() => InitializeComponent();
protected override async void OnLaunched(LaunchActivatedEventArgs args)
{
@@ -37,6 +33,7 @@ public partial class App :
services.AddDefault();
services.AddWidget();
services.AddWidgetWindows();
services.AddXamlMetadataProvider();
services.AddHostedService<AppService>();
@@ -0,0 +1,26 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Markup;
using System.Reflection;
namespace Hyperbar.Widget;
public static class IServiceCollectionExtensions
{
public static IServiceCollection AddXamlMetadataProvider(this IServiceCollection services)
{
object? appProvider = Application.Current.GetType().GetProperty("_AppProvider", BindingFlags.NonPublic | BindingFlags.Instance)?
.GetValue(Application.Current);
object? provider = appProvider?.GetType().GetProperty("Provider", BindingFlags.NonPublic | BindingFlags.Instance)?
.GetValue(appProvider);
PropertyInfo? othersProviderProperty = provider?.GetType().GetProperty("OtherProviders", BindingFlags.NonPublic | BindingFlags.Instance,
null, typeof(List<IXamlMetadataProvider>), [], null);
List<IXamlMetadataProvider> xamlMetadataProviders = othersProviderProperty?.GetValue(provider) as List<IXamlMetadataProvider> ?? [];
services.AddSingleton<IList<IXamlMetadataProvider>>(xamlMetadataProviders);
return services;
}
}