Merge branch 'init-linux' into lytico/gtksharp/init-linux-core

This commit is contained in:
Javier Suárez 2021-04-30 18:05:58 +02:00 коммит произвёл GitHub
Родитель 90ad67a57a 5ce87eb904
Коммит 2ec2fde8c1
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 47 добавлений и 1 удалений

Просмотреть файл

@ -40,6 +40,5 @@ namespace Microsoft.Maui
Height = (int)size.Height,
Width = (int)size.Width
};
}
}

Просмотреть файл

@ -0,0 +1,47 @@
using System;
using Gtk;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Maui.Hosting;
using Microsoft.Maui.LifecycleEvents;
namespace Microsoft.Maui
{
public class MauiWindow<TStartup> : Window
where TStartup : IStartup, new()
{
public MauiWindow() : base(WindowType.Toplevel)
{
var startup = new TStartup();
var host = startup
.CreateAppHostBuilder()
.ConfigureServices(ConfigureNativeServices)
.ConfigureUsing(startup)
.Build();
Services = host.Services;
Application = Services.GetRequiredService<IApplication>();
var mauiContext = new MauiContext(Services);
var activationState = new ActivationState(mauiContext);
var window = Application.CreateWindow(activationState);
window.MauiContext = mauiContext;
var content = (window.Page as IView) ?? window.Page.View;
Add(content.ToNative(window.MauiContext));
Child.ShowAll();
}
public new IApplication Application { get; protected set; } = null!;
public IServiceProvider Services { get; protected set; } = null!;
// Configure native services like HandlersContext, ImageSourceHandlers etc..
void ConfigureNativeServices(HostBuilderContext ctx, IServiceCollection services)
{
}
}
}