.NET MAUI에서 마이크로차트 사용
You can find a sample for this on GitHub.
필요한 패키지 추가
가장 먼저 할 일은 필요한 모든 패키지를 추가하는 것입니다. 렌더링 논리를 가져올 마이크로차트가 필요합니다.
dotnet add package Microcharts --version 0.9.5.9
또한 .NET MAUI용 SkiaSharp 컨트롤에 대한 참조가 필요합니다.
dotnet add package SkiaSharp.Views.Maui.Controls --version 2.88.0
참조를
.csproj
파일에 직접 추가할 수도 있습니다. <ItemGroup>
<PackageReference Include="Microcharts" Version="0.9.5.9" />
<PackageReference Include="SkiaSharp.Views.Maui.Controls" Version="2.88.0" />
</ItemGroup>
ChartView 추가
Microcharts에는 SkiaSharp를 기반으로 렌더링을 제공하는 하나의 공유 코드 베이스를 사용하는 스마트 구조가 있습니다. 플랫폼은 SkiaSharp 보기를 제공하고 이 기본 계층을 사용하여 그리기 이벤트를 처리합니다. 따라서 기본적으로 Xamarin.Forms implementation of the view을 복사하고 약간 조정할 수 있습니다.
internal class ChartView : SKCanvasView
{
public event EventHandler<SKPaintSurfaceEventArgs> ChartPainted;
public static readonly BindableProperty ChartProperty = BindableProperty.Create(nameof(Chart), typeof(Chart), typeof(ChartView), null, propertyChanged: OnChartChanged);
public Chart Chart
{
get { return (Chart)GetValue(ChartProperty); }
set { SetValue(ChartProperty, value); }
}
private InvalidatedWeakEventHandler<ChartView> handler;
private Chart _chart;
public ChartView()
{
BackgroundColor = Colors.Transparent;
PaintSurface += OnPaintCanvas;
}
private static void OnChartChanged(BindableObject d, object oldValue, object value)
{
var view = d as ChartView;
if (view._chart != null)
{
view.handler.Dispose();
view.handler = null;
}
view._chart = value as Chart;
view.InvalidateSurface();
if (view._chart != null)
{
view.handler = view._chart.ObserveInvalidate(view, (v) => v.InvalidateSurface());
}
}
private void OnPaintCanvas(object sender, SKPaintSurfaceEventArgs e)
{
if (_chart != null)
{
_chart.Draw(e.Surface.Canvas, e.Info.Width, e.Info.Height);
}
else
{
e.Surface.Canvas.Clear(SKColors.Transparent);
}
ChartPainted?.Invoke(sender, e);
}
}
이 보기는 기본적으로 그리기 이벤트를 구독하고 캔버스에서 Microcharts Chart 그리기 논리를 호출하여 이벤트를 처리합니다(
_chart.Draw(e.Surface.Canvas, e.Info.Width, e.Info.Height)
). 프로젝트에 드롭하기만 하면 뷰에서 참조할 수 있습니다.용법
마지막으로 사용하기 전에
.UseSkiaSharp()
의 MAUI 빌더에 MauiProgram.cs
메서드를 추가하여 필요한 핸들러를 추가하기만 하면 됩니다.var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UseSkiaSharp();
이제 다른 프로젝트에서 Microcharts와 함께 사용하는 것처럼 ChartView를 사용할 수 있습니다.
<ContentPage ...
xmlns:microcharts="clr-namespace:Microcharts.MAUI.Sample;assembly=Microcharts.MAUI.Sample">
<microcharts:ChartView x:Name="Chart" />
</ContentPage>
their documentation에서 마이크로차트 사용에 대해 자세히 알아보십시오.
Reference
이 문제에 관하여(.NET MAUI에서 마이크로차트 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/krdmllr/using-microcharts-with-net-maui-3515텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)