Is there a way?
Moderator: Queue Moderators
-
- Posts: 1
- Joined: Thu Nov 30, 2023 2:33 pm
Is there a way?
I'm utilizing bands and wish to enable mouse interaction, including mouse resize and move. However, I'm interested in implementing a "StepSize" feature, restricting valid values to increments like 1.0, 1.5, 2.0, 2.5, 3.0, and so on. Is there a way to achieve this functionality?
-
- Posts: 558
- Joined: Mon Mar 14, 2016 9:22 am
Re: Is there a way?
For such kind of functionality event handlers are very useful. You can subscribe to band.ValuesChanged event and in event handler implement value change logic as you wish. For example, you can compare new band's value to some reference (+-) step-value:
Hope this helps.
All the best
Code: Select all
double _dBegin;
double _dEnd;
private void BandX_ValuesChanged(object sender, ValuesChangedEventArgs e)
{
_chart.BeginUpdate();
double step = 5;
if(_dBegin + step == Math.Round(e.NewBeginValue) || _dBegin - step == Math.Round(e.NewBeginValue))
{
_dBegin = Math.Round(e.NewBeginValue);
Band bandX = sender as Band;
bandX.ValuesChanged -= BandX_ValuesChanged;
bandX.ValueBegin = _dBegin;
bandX.ValuesChanged += BandX_ValuesChanged;
}
else
{
Band bandX = sender as Band;
bandX.ValuesChanged -= BandX_ValuesChanged;
bandX.ValueBegin = _dBegin;
bandX.ValuesChanged += BandX_ValuesChanged;
}
if (_dEnd + step == Math.Round(e.NewEndValue) || _dEnd - step == Math.Round(e.NewEndValue))
{
_dEnd = Math.Round(e.NewEndValue);
Band bandX = sender as Band;
bandX.ValuesChanged -= BandX_ValuesChanged;
bandX.ValueEnd = _dEnd;
bandX.ValuesChanged += BandX_ValuesChanged;
}
else
{
Band bandX = sender as Band;
bandX.ValuesChanged -= BandX_ValuesChanged;
bandX.ValueEnd = _dEnd;
bandX.ValuesChanged += BandX_ValuesChanged;
}
_chart.EndUpdate();
}
All the best