.NET MAUI
Last updated
Was this helpful?
Was this helpful?
<ProjectReference Include="..\Gum\Runtimes\SkiaGumMaui\SkiaGum.Maui.csproj" />using SkiaSharp.Views.Maui.Controls.Hosting;
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UseSkiaSharp()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
});
#if DEBUG
builder.Logging.AddDebug();
#endif
var density = (float)DeviceDisplay.Current.MainDisplayInfo.Density;
// Windows can report a density of 0:
if(density > 0)
{
SkiaGum.Maui.SkiaGumCanvasView.GlobalScale = density;
}
// optionally, set the font scale:
#if WINDOWS
var uiSettings = new Windows.UI.ViewManagement.UISettings();
SkiaGum.Text.GlobalTextScale = (decimal)uiSettings.TextScaleFactor;
// Add additional platforms here...
#endif
return builder.Build();
}
}xmlns:SkiaGum="clr-namespace:SkiaGum.Maui;assembly=SkiaGum.Maui"<SkiaGum:SkiaGumCanvasView
WidthRequest="200"
HeightRequest="200"
x:Name="SkiaGumCanvasView"/>public MainPage()
{
InitializeComponent();
// Creates a circle:
var circle = new ColoredCircleRuntime();
circle.Color = SKColors.Red;
circle.Width = 200;
circle.Height = 200;
// Adds it so it is drawn
SkiaGumCanvasView.AddChild(circle);
var text = new TextRuntime();
text.Text = "SkiaGum in .NET MAUI!";
text.Dock(Gum.Wireframe.Dock.Top);
SkiaGumCanvasView.AddChild(text);
// Tells the canvas to refresh itself, so the circle appears
SkiaGumCanvasView.InvalidateSurface();
}
protected override void OnNavigatedFrom(NavigatedFromEventArgs args)
{
base.OnNavigatedFrom(args);
SkiaGumCanvasView.Dispose();
}