「MAUIでSkiaSharpを使う」の版間の差分
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) |
||
| (同じ利用者による、間の4版が非表示) | |||
| 42行目: | 42行目: | ||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" | xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" | ||
xmlns:skia="clr-namespace:SkiaSharp.Views.Maui.Controls;assembly=SkiaSharp.Views.Maui.Controls" | xmlns:skia="clr-namespace:SkiaSharp.Views.Maui.Controls;assembly=SkiaSharp.Views.Maui.Controls" | ||
x:Class=" | x:Class="Maui8.MainPage"> | ||
<skia:SKCanvasView x:Name="canvasView" | |||
PaintSurface="canvasViewPaintSurface" | |||
VerticalOptions="Fill" | |||
HorizontalOptions="Fill" | |||
/> | |||
</ContentPage> | </ContentPage> | ||
</source> | </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> | |||
[[category: MAUI]] | [[category: MAUI]] | ||