Microcharts.Maui、ChartView 项目不可见且无法设置 HeightRequest 或 WidthRequest 参数

问题描述 投票:0回答:1

我正在 Visual Studio 2022 中使用 MAUI 框架构建应用程序,我想使用

Microcharts.Maui
包向我的应用程序添加绘图。

我已成功安装该软件包,并且我的

.csproj
MauiProgram.cs
文件中似乎没有任何问题,据我所知,我已正确安装该软件包。但是,当我尝试将
ChartView
对象添加到我的应用程序并向其添加数据时,我看不到结果图。

我尝试为该项目设置

HeightRequest
WidthRequest
参数,但是当我这样做时,我遇到以下警告:

调试器附加到[应用程序名称].exe,但未配置为调试未处理的异常。要调试此异常,请分离当前调试器。

这里有一些上下文代码片段:

包含 ChartView 的 XAML

<?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:micro="clr-namespace:Microcharts.Maui;assembly=Microcharts.Maui"
             x:Class="Finance_Manager_Mobile.Windows.ProfileView"
             Title="ProfileView">

    <ScrollView>
        <VerticalStackLayout>
            <micro:ChartView BackgroundColor="Black" x:Name="plotCanvas" IsVisible="True" 
                             VerticalOptions="StartAndExpand" HorizontalOptions="StartAndExpand"
                             HeightRequest="100" WidthRequest="100" />

        </VerticalStackLayout>
    </ScrollView>
    
</ContentPage>

ChartView 背后的 C# 代码

using Microcharts;

namespace Finance_Manager_Mobile.Windows;

// This page is the view of an open profile
public partial class ProfileView : ContentPage
{
    public ProfileView()
    {
        InitializeComponent();

        ChartEntry[] entries = new ChartEntry[]
        {
            new ChartEntry(100), new ChartEntry(200), new ChartEntry(300)
        };
        plotCanvas.Chart = new LineChart
        {
            Entries = entries
        };
    }

我已尝试卸载并重新安装该软件包,但问题仍然存在。

有趣的是,如果我在 XAML 中设置

HeightRequest
WidthRequest
,它不起作用,但如果我在后面的代码中设置它们中的任何一个,它就会起作用。然而,它似乎只有在我设置其中之一时才起作用,如果我尝试同时设置它们,它仍然会导致警告。

c# plot maui visual-studio-2022
1个回答
0
投票

要在MAUI中使用MicroChart,除了安装

Microcharts.Maui
NuGet包外,还需要安装
SKiaSharp.Views.Maui.Controls

之后,将

.UseSKiaSharp()
添加到项目的MauiProgram.cs文件中:

var builder = MauiApp.CreateBuilder();
builder
    .UseMauiApp<App>()
    .UseSkiaSharp();
© www.soinside.com 2019 - 2024. All rights reserved.