「MAUIでSkiaSharpを使う」の版間の差分

ページの作成:「MAUISkiaSharpを使う方法は公式サイトにあるが機械翻訳がわかりにくい。 * https://learn.microsoft.com/ja-jp/dotnet/maui/migration/skiash…」
 
 
(同じ利用者による、間の7版が非表示)
3行目: 3行目:


== NuGet ==
== NuGet ==
以下のNuGetをぶちこむ。
* SkiaSharp.Views.Maui.Controls
* SkiaSharp.Views.Maui.Controls


32行目: 33行目:
return builder.Build();
return builder.Build();
}
}
}
</source>
=== XAML ===
<source lang=xml>
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
            xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
            xmlns:skia="clr-namespace:SkiaSharp.Views.Maui.Controls;assembly=SkiaSharp.Views.Maui.Controls"
            x:Class="Maui8.MainPage">
    <skia:SKCanvasView x:Name="canvasView"
                        PaintSurface="canvasViewPaintSurface"
                        VerticalOptions="Fill"
                        HorizontalOptions="Fill"
                        />
</ContentPage>
</source>
=== CS ===
更新はメインスレッドでやる。
<source lang="csharp">
await MainThread.InvokeOnMainThreadAsync(() =>
{
if (_bitmap != null)
_bitmap.Dispose();
_bitmap = bitmap;
canvasView.InvalidateSurface();
});
</source>
描画
<source lang="csharp">
void canvasViewPaintSurface(Object sender, SKPaintSurfaceEventArgs e)
{
if (_bitmap == null)
return;
using var canvas = e.Surface.Canvas;
canvas.Clear();
canvas.DrawBitmap(_bitmap, x:0, y:0);
}
}
</source>
</source>


[[category: MAUI]]
[[category: MAUI]]