Microcharts.Maui, элемент ChartView невидим и не может установить параметры HeightRequest или WidthRequest

Я создаю приложение с использованием платформы MAUI в Visual Studio 2022 и хотел добавить график в свое приложение с помощью пакета Microcharts.Maui.

Я успешно установил пакет, и в моих файлах .csproj или MauiProgram.cs нет никаких проблем, насколько я могу судить, я установил пакет правильно. Однако когда я пытаюсь добавить объект ChartView в свое приложение и добавить к нему данные, я не вижу полученный график.

Я попытался установить параметры HeightRequest и WidthRequest для элемента, но когда я это сделал, я столкнулся со следующим предупреждением:

«Отладчик подключен к [имя приложения].exe, но не настроен для отладки необработанного исключения. Чтобы отладить это исключение, отсоедините текущий отладчик».

Вот несколько фрагментов кода для контекста:

XAML, содержащий ChartView

<?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>

Код C# для ChartView

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
        };
    }

Я попробовал удалить и переустановить пакет, но проблема не устранена.

Интересно, что если я устанавливаю HeightRequest или WidthRequest в XAML, это не работает, но если я устанавливаю любой из них в коде, это работает. Однако кажется, что это работает только в том случае, если я устанавливаю один или другой, но все равно выдается предупреждение, если я пытаюсь установить оба.

Вы пробовали большую высоту и ширину, например 700? И виден ли цвет фона, если вы установите его для диаграммы или стека?

Tobination 02.04.2024 23:07

@Tobination, поэтому я только что попробовал кое-что, и если я установлю BackgroundColor для ВертикальногоStackLayout, то он будет виден, но если я установлю его для ChartView, он станет невидимым. Кроме того, что очень странно, сегодня снова открывая проект, кажется, что теперь я могу установить параметр HeightRequest в коде XAML, не вызывая предупреждения... Я ничего не менял! Тем не менее, я все еще не вижу ChartView, но знаю, что он есть, потому что увеличение высоты влияет на ScrollView, в который он заключен.

Alfie Wright 03.04.2024 20:58

Вы установили свойство фона в xaml.cs? Потому что ты должен. А вы пробовали большую высоту и ширину?

Tobination 03.04.2024 21:05

Также попробуйте удалить все свойства в xaml и установить только высоту 700 и имя. Также удалите ScrollViewer.

Tobination 03.04.2024 21:13

@Tobination Итак, я не пробовал устанавливать цвет фона в xaml.cs, но я только что попробовал, и он все еще не отображается. И я установил HeightRequest равным 700, но, как ни странно, сегодня он вернулся к выдаче предупреждающего сообщения, и на этот раз это происходит, если я установил его в файле .xaml или в файле xaml.cs. Кроме того, я удалил ScrollView вместе со всеми ненужными свойствами из объекта ChartView, но, похоже, он все еще не работает.

Alfie Wright 04.04.2024 20:34

Хорошо. И ваш конструктор вызывается? Я использовал микродиаграммы только с mvvm.

Tobination 05.04.2024 20:01
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
6
363
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы использовать MicroChart в MAUI, помимо установки пакета Microcharts.Maui NuGet, вам также необходимо установить SKiaSharp.Views.Maui.Controls.

После этого добавьте .UseSKiaSharp() в файл MauiProgram.cs проекта:

var builder = MauiApp.CreateBuilder();
builder
    .UseMauiApp<App>()
    .UseSkiaSharp();

Потрясающе, я только что установил дополнительный пакет NuGet, добавил строку в файл MauiProgram.cs и наконец-то вижу график некоторых данных! Большое спасибо за Вашу помощь!! Интересно, почему не было никакого предупреждения о том, что этот пакет тоже нужен. Несмотря на это, похоже, сейчас работает, и я также могу без проблем настроить HeightRequest.

Alfie Wright 09.04.2024 21:26

Другие вопросы по теме