使用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控件,并且想要更改图表中曲线的颜色。根据提供的代码,可以通过以下几个步骤来实现曲线颜色的变化:
首先,确保你已经在项目中安装了LiveCharts库。如果没有安装,可以通过 NuGet 包管理器安装。在 Visual Studio 中,右键点击项目,选择 "Manage NuGet Packages",然后搜索 "LiveCharts" 并安装。
在代码中,创建一个 LineSeries
对象,并将曲线颜色设置为所需的颜色。你可以使用 Stroke
属性来设置曲线的颜色。
csharp // 创建一个LineSeries对象并设置曲线颜色 LineSeries<float> lineSeries1 = new LineSeries<float> { Stroke = Brushes.Red, // 将曲线颜色设置为红色 // ... };
你可以使用预定义的画刷(Brush)来设置颜色,比如 Brushes.Red
、Brushes.Blue
等等。如果需要自定义颜色,可以使用 new SolidColorBrush(Color.FromRgb(r, g, b))
方法来创建一个自定义颜色的画刷,其中 r
、g
、b
分别代表红、绿、蓝色的数值。
LineSeries
对象添加到线系列集合中。csharp // 将 LineSeries 对象添加到线系列集合中 lineSeriesList.Add(lineSeries1);
csharp // 将线系列集合设置为 CartesianChart 控件的 Series 属性 cartesianChart.Series = lineSeriesList;
至此,你已经成功更改图表中曲线的颜色。根据你的需要,可以创建多个 LineSeries
对象,并设置不同的颜色来绘制多条曲线。
希望这些步骤能够帮助到你,如果你有任何疑问,请随时提问。