Я создаю приложение с использованием платформы 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, это не работает, но если я устанавливаю любой из них в коде, это работает. Однако кажется, что это работает только в том случае, если я устанавливаю один или другой, но все равно выдается предупреждение, если я пытаюсь установить оба.
@Tobination, поэтому я только что попробовал кое-что, и если я установлю BackgroundColor для ВертикальногоStackLayout, то он будет виден, но если я установлю его для ChartView, он станет невидимым. Кроме того, что очень странно, сегодня снова открывая проект, кажется, что теперь я могу установить параметр HeightRequest в коде XAML, не вызывая предупреждения... Я ничего не менял! Тем не менее, я все еще не вижу ChartView, но знаю, что он есть, потому что увеличение высоты влияет на ScrollView, в который он заключен.
Вы установили свойство фона в xaml.cs? Потому что ты должен. А вы пробовали большую высоту и ширину?
Также попробуйте удалить все свойства в xaml и установить только высоту 700 и имя. Также удалите ScrollViewer.
@Tobination Итак, я не пробовал устанавливать цвет фона в xaml.cs, но я только что попробовал, и он все еще не отображается. И я установил HeightRequest равным 700, но, как ни странно, сегодня он вернулся к выдаче предупреждающего сообщения, и на этот раз это происходит, если я установил его в файле .xaml или в файле xaml.cs. Кроме того, я удалил ScrollView вместе со всеми ненужными свойствами из объекта ChartView, но, похоже, он все еще не работает.
Хорошо. И ваш конструктор вызывается? Я использовал микродиаграммы только с mvvm.
Чтобы использовать MicroChart в MAUI, помимо установки пакета Microcharts.Maui
NuGet, вам также необходимо установить SKiaSharp.Views.Maui.Controls
.
После этого добавьте .UseSKiaSharp()
в файл MauiProgram.cs проекта:
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UseSkiaSharp();
Потрясающе, я только что установил дополнительный пакет NuGet, добавил строку в файл MauiProgram.cs и наконец-то вижу график некоторых данных! Большое спасибо за Вашу помощь!! Интересно, почему не было никакого предупреждения о том, что этот пакет тоже нужен. Несмотря на это, похоже, сейчас работает, и я также могу без проблем настроить HeightRequest.
Вы пробовали большую высоту и ширину, например 700? И виден ли цвет фона, если вы установите его для диаграммы или стека?