winform livecharts 图表中曲线颜色怎么变化

使用livecharts中的cartesianChart1,多次尝试更改图中曲线的颜色未果,难顶呀。
片段代码如下:

        private void skinPanel1_MouseUp(object sender, MouseEventArgs e)
        {
            var customPaint = new SolidColorPaint { Color = SKColors.Black };
            string FilePath = string.Format("{0}\\{1}", ModelDirectory, recentTxtFileName);
            string PngFilePath = string.Format("{0}\\{1}", ModelDirectory, "遥测在线显示测试数据_9619.png");
            Panel panel1 = (Panel)sender;
            // 根据Panel1位置更新进度条显示
            int progress = (int)(((float)panel1.Left / panel2.Width) * 100);
            Console.WriteLine("当前进度:" + progress + "%");

            int startRow = (int)Math.Round((float)progress / 100 * numericValue);
            int endRow = (int)Math.Round((float)progress / 100 * numericValue) + (int)(numericValue * 0.1);

            rowData = ReadSpecificRow(FilePath, 3, startRow, endRow);
            rowtime = ReadtimeRow(FilePath, 1, startRow, endRow);

            // 创建X轴标签列表
            var xLabels = rowtime.ToArray();

            // 创建X轴
            var xAxis = new Axis
            {
                Labels = xLabels,
                MinLimit = 0,
                MaxLimit = rowData.Count - 1,
            };

            // 创建线系列集合
            List<LineSeries<float>> lineSeriesList = new List<LineSeries<float>>();

            // 添加第一条湿度计温度曲线
            LineSeries<float> lineSeries1 = new LineSeries<float>
            {
                Name = "湿度计温度1",
                Values = rowData,
                Stroke = new SolidColorPaint { Color = SKColors.Red } // 自定义曲线的颜色
            };
            lineSeriesList.Add(lineSeries1);

            // 添加第二条湿度计温度曲线(示例)
            List<float> rowData2 = ReadSpecificRow(FilePath, 4, startRow, endRow); // 获取第二条曲线的数据
            LineSeries<float> lineSeries2 = new LineSeries<float>
            {
                Name = "湿度计温度2",
                Values = rowData2,
                Stroke = new SolidColorPaint { Color = SKColors.Blue } // 自定义曲线的颜色
            };
            lineSeriesList.Add(lineSeries2);

            // 将所有线系列添加到系列集合
            SeriesCollection = lineSeriesList.ToArray();

            // 设置图表的X轴和系列集合
            cartesianChart1.XAxes = new[] { xAxis };
            cartesianChart1.Series = SeriesCollection;

            panel1.Tag = null;
            isDragging = false; // 重置标志位为false,表示停止拖动
        }

当前思路是通过stroke属性来更改曲线的颜色,然而实际效果却是颜色依然是每点击一次鼠标随机一种颜色,而不是按照设定的第一条曲线红色,第二条曲线蓝色

【以下回答由 GPT 生成】

问题中提到了使用LiveCharts中的CartesianChart控件,并且想要更改图表中曲线的颜色。根据提供的代码,可以通过以下几个步骤来实现曲线颜色的变化:

  1. 首先,确保你已经在项目中安装了LiveCharts库。如果没有安装,可以通过 NuGet 包管理器安装。在 Visual Studio 中,右键点击项目,选择 "Manage NuGet Packages",然后搜索 "LiveCharts" 并安装。

  2. 在代码中,创建一个 LineSeries 对象,并将曲线颜色设置为所需的颜色。你可以使用 Stroke 属性来设置曲线的颜色。

csharp // 创建一个LineSeries对象并设置曲线颜色 LineSeries<float> lineSeries1 = new LineSeries<float> { Stroke = Brushes.Red, // 将曲线颜色设置为红色 // ... };

你可以使用预定义的画刷(Brush)来设置颜色,比如 Brushes.RedBrushes.Blue等等。如果需要自定义颜色,可以使用 new SolidColorBrush(Color.FromRgb(r, g, b)) 方法来创建一个自定义颜色的画刷,其中 rgb 分别代表红、绿、蓝色的数值。

  1. 将创建的 LineSeries 对象添加到线系列集合中。

csharp // 将 LineSeries 对象添加到线系列集合中 lineSeriesList.Add(lineSeries1);

  1. 最后,将线系列集合设置为 CartesianChart 控件的 Series 属性。

csharp // 将线系列集合设置为 CartesianChart 控件的 Series 属性 cartesianChart.Series = lineSeriesList;

至此,你已经成功更改图表中曲线的颜色。根据你的需要,可以创建多个 LineSeries 对象,并设置不同的颜色来绘制多条曲线。

希望这些步骤能够帮助到你,如果你有任何疑问,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^