要在 C# WPF 中使用 LiveCharts 库的 LineSeries,获取图表对象并保存为图片,可以按照以下步骤进行操作:

  1. 首先,确保已经安装并引用了 LiveCharts 库。可以通过 NuGet 包管理器来安装。

  2. 在 XAML 文件中添加一个 Chart 控件,并设置其 Name 属性为 'chart',如下所示:

<Window x:Class="YourNamespace.YourWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"
        Title="Your Window" Height="450" Width="800">
    <Grid>
        <lvc:CartesianChart Name="chart" />
    </Grid>
</Window>
  1. 在代码中,使用 LineSeries 类创建一个 LineSeries 对象,并将其添加到 Chart 的 Series 集合中,如下所示:
using LiveCharts;
using LiveCharts.Wpf;

public partial class YourWindow : Window
{
    public YourWindow()
    {
        InitializeComponent();

        // 创建 LineSeries 对象
        var series = new LineSeries
        {
            Title = "Series 1",
            Values = new ChartValues<double> { 1, 3, 2, 8, 5 }
        };

        // 将 LineSeries 对象添加到 Chart 的 Series 集合中
        chart.Series.Add(series);
    }
}
  1. 现在你可以在需要的时候获取 Chart 对象,并将其保存为图片。可以通过以下代码实现:
using System.IO;

public partial class YourWindow : Window
{
    public YourWindow()
    {
        InitializeComponent();

        // 创建 LineSeries 对象...
    }

    private void SaveChartAsImage()
    {
        // 获取 Chart 对象
        var chart = this.chart;

        // 创建 RenderTargetBitmap 对象,用于保存 Chart 的图像
        var renderTargetBitmap = new RenderTargetBitmap((int)chart.ActualWidth, (int)chart.ActualHeight, 96, 96, PixelFormats.Pbgra32);

        // 渲染 Chart 并保存为图像
        renderTargetBitmap.Render(chart);

        // 创建 PngBitmapEncoder 对象,用于保存图像为 PNG 格式
        var pngEncoder = new PngBitmapEncoder();
        pngEncoder.Frames.Add(BitmapFrame.Create(renderTargetBitmap));

        // 保存图像到文件
        var filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Img", "chart.png");
        using (var fileStream = File.Create(filePath))
        {
            pngEncoder.Save(fileStream);
        }
    }
}
  1. 在需要保存图像的地方调用 SaveChartAsImage() 方法,该方法将 Chart 对象渲染为图像,并保存为 PNG 格式的文件。保存路径为 AppDomain.CurrentDomain.BaseDirectory 文件夹下的 Img 文件夹中的 chart.png 文件。

确保文件夹 Img 已经存在,并具有适当的写入权限。可以根据需要修改保存路径和文件名。


原文地址: https://www.cveoy.top/t/topic/o5eP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录