C# WPF
Arction LightningChart .NET 控制元件中有一個 線條系列事件標記 的 SeriesEventMarkers,滑鼠可以選中并且移動它。

縱向的紅色,綠色就是可以選中并且移動的標記。
但是這個控制元件收費略高。
想請問一下大家。OxyPlot中有沒有這個功能,添加一個可以滑鼠選中的的標識,然后移動它。
或者有沒有現成的函式 單擊螢屏準確獲取相對于控制元件的XY坐標點,然后在x坐標點上新增一個縱向的線條。目前能獲取到的XY的坐標點,是相對于螢屏得出來的位置,而不是相對于OxyPlot控制元件。
uj5u.com熱心網友回復:
找到解決方法了,獲取滑鼠點擊的事件,根據坐標位置,查找最近的一個資料點。然后在這個資料點的X坐標點上 畫一根垂直的線條。

實作代碼如下。
Model.MouseDown += Model_MouseDown;
private void Model_MouseDown(object sender, OxyMouseDownEventArgs e)
{
if (isMarkers == true)
{
var position = e.Position;
var jlSeries = (OxyPlot.Series.LineSeries)Model.Series[0];
var maxY = jlSeries.Points.Max(o => o.Y) + 5;
ScreenPoint screenPoint = new ScreenPoint(position.X, position.Y);
var datapoint = jlSeries.InverseTransform(screenPoint);
var x = Math.Round(datapoint.X);
//MessageBox.Show(x.ToString());
if (Radio_startCheck.IsChecked == true)
{
if (Model.Annotations.Count > 0)
{
var info = Model.Annotations.FirstOrDefault(o => o.ToolTip == "起始位置");
if (info != null)
Model.Annotations.Remove(info);
Model.InvalidatePlot(true);
}
var arrowAnnotation_y = new ArrowAnnotation
{
ToolTip = "起始位置",
StartPoint = new DataPoint(x, maxY),
EndPoint = new DataPoint(x, 0),
HeadWidth = 1,
LineStyle = LineStyle.Dash,
HeadLength = 1,
Veeness = 1,
};
arrowAnnotation_y.Color = OxyColors.OrangeRed;
Model.Annotations.Add(arrowAnnotation_y);
Model.InvalidatePlot(true);
}
else
{
if (Model.Annotations.Count > 0)
{
var info = Model.Annotations.FirstOrDefault(o => o.ToolTip == "結束位置");
if (info != null)
Model.Annotations.Remove(info);
Model.InvalidatePlot(true);
}
var arrowAnnotation_y = new ArrowAnnotation
{
ToolTip = "結束位置",
StartPoint = new DataPoint(x, maxY),
EndPoint = new DataPoint(x, 0),
HeadWidth = 1,
LineStyle = LineStyle.Dash,
HeadLength = 1,
Veeness = 1,
};
arrowAnnotation_y.Color = OxyColors.OrangeRed;
Model.Annotations.Add(arrowAnnotation_y);
Model.InvalidatePlot(true);
}
}
}
uj5u.com熱心網友回復:
大于10萬資料 oxyplot會性能下降uj5u.com熱心網友回復:
嗯,小專案,量不會大。Arction LightningChart .NET 控制元件這個好用,就是收費太高。
uj5u.com熱心網友回復:
LiveCharts 開源控制元件
uj5u.com熱心網友回復:
一開始就是用的它,卡的不行。
不知道是不是我的用法有問題。
用下來覺得oxyplot 比LiveCharts好用。(個人感覺,就這個專案而言)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/3705.html
標籤:C#
上一篇:.net公眾號求助
