You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microcharts.Maui的ChartView不可见且设置宽高请求异常

MAUI中Microcharts.Maui图表不显示及宽高设置异常的解决方法

1. 确认Microcharts初始化配置

先再次检查MauiProgram.cs中的初始化代码,确保UseMicrocharts()已正确添加,且位置在UseMauiApp之后、Build()之前:

var builder = MauiApp.CreateBuilder();
builder
    .UseMauiApp<App>()
    .UseMicrocharts() // 必须添加此行
    .ConfigureFonts(fonts =>
    {
        fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
    });

return builder.Build();

2. 规避宽高设置的异常触发

不要直接同时给ChartView设置HeightRequest和WidthRequest,改用布局容器约束:

  • XAML方案:将ChartView嵌套在Grid中,给Grid设置固定宽高,让ChartView填充容器:
    <Grid HeightRequest="300" WidthRequest="300">
        <microcharts:ChartView 
            Chart="{Binding MyChart}"
            VerticalOptions="Fill"
            HorizontalOptions="Fill"/>
    </Grid>
    
  • 后台代码方案:若必须通过代码设置,拆分赋值操作并延迟执行第二个参数:
    ChartView.HeightRequest = 300;
    await Dispatcher.DispatchAsync(() => 
    {
        ChartView.WidthRequest = 300;
    });
    

3. 验证数据绑定有效性

  • 确认绑定的Chart实例已正确初始化并包含有效数据,例如:
    public Chart MyChart { get; set; }
    
    // 在页面构造函数或ViewModel初始化方法中
    var entries = new[]
    {
        new Entry(200) { Label = "Jan", ValueLabel = "200" },
        new Entry(400) { Label = "Feb", ValueLabel = "400" }
    };
    MyChart = new BarChart { Entries = entries };
    
  • 确保页面的BindingContext已正确设置,比如在构造函数中添加BindingContext = this;(若使用ViewModel则绑定到对应实例)。

4. 处理调试器警告

出现调试器异常警告时,可尝试:

  • 关闭当前调试会话,重新启动调试;
  • 在项目属性的调试选项卡中,将调试器类型改为「混合(.NET和原生)」,启用原生代码调试,以便捕获具体的未处理异常信息。

内容的提问来源于stack exchange,提问作者Alfie Wright

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 19:12:35