Oxyplot не отображает вертикальную линию ползунков внутри графика.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Oxyplot не отображает вертикальную линию ползунков внутри графика.

Сообщение Anonymous »

Я пытаюсь визуализировать вертикальную красную линию снизу вверх по оси Y. У меня есть определенная длина волны по оси X, поэтому, когда пользователь использует ползунок, он останавливается и принимает эту конкретную длину волны.
Вот мой код:

Код: Выделить всё

public PlotViewModel()
{
InitializeRenderingLoop();

// Initialize SpectralPlotModel
SpectralPlotModel = new PlotModel
{
Title = "Data from Socket",
Background = OxyColors.Transparent,
TextColor = OxyColors.White,
PlotAreaBorderColor = OxyColors.White
};

SpectralPlotModel.Axes.Add(new LinearAxis
{
Position = AxisPosition.Bottom,
Title = "Wavelength",
TitleColor = OxyColors.White,
AxislineColor = OxyColors.White,
TextColor = OxyColors.White,
StringFormat = "0.###",
});

SpectralPlotModel.Axes.Add(new LinearAxis
{
Position = AxisPosition.Left,
Title = "Data",
TitleColor = OxyColors.White,
AxislineColor = OxyColors.White,
TextColor = OxyColors.White,
StringFormat = "0.###",
Minimum = 0,
Maximum = 5
});

SpectralPlotModel.Series.Add(new LineSeries
{
Title = "Data",
Color = OxyColors.White,
MarkerFill = OxyColors.White,
MarkerType = MarkerType.None,
LineStyle = LineStyle.Solid,
StrokeThickness = 2
});

SpectralPlotModel.Series.Add(new LineSeries
{
Title = "Red Line",
Color = OxyColors.Red,
MarkerFill = OxyColors.Red,
MarkerType = MarkerType.Cross,
LineStyle = LineStyle.Solid,
StrokeThickness = 15,
});

}
и логика функции:

Код: Выделить всё

        public double WavelengthSliderValue
{
get => _wavelengthSliderValue;
set
{
if (_wavelengthSliderValue != value)
{
_wavelengthSliderValue = value;
OnPropertyChanged();
UpdateRedLine();
}
}
}

public void UpdateRedLine()
{

if (SpectralPlotModel != null && SpectralPlotModel.Series.Count > 1)
{
var redLineSeries = SpectralPlotModel.Series[1] as LineSeries;

if (redLineSeries != null)
{
var selectedWavelength = WavelengthSliderValue;
Debug.Print("Wavelength : " + selectedWavelength);

// Clear existing points
redLineSeries.Points.Clear();

// Ensure the axis limits are correct
var yAxis = SpectralPlotModel.Axes[1];
redLineSeries.Points.Add(new DataPoint(selectedWavelength, yAxis.Minimum)); // Min Y
redLineSeries.Points.Add(new DataPoint(selectedWavelength, yAxis.Maximum)); // Max Y
SpectralPlotModel.InvalidatePlot(true);
}
else
{

Debug.Write("No red line series found");
}
}
}
Мои файлы xaml (я использую MVVM): Внутри UpdateRedLine я правильно определяю длину волны, поэтому полученное число в порядке, но по какой-то причине оно вообще не отображает мою красную линию.
Я неправильно установил?
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/789 ... e-the-plot
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»