Example #1
0
        private void chtChart_MouseMove(object sender, MouseEventArgs e)
        {
            double currentScrollPosition = chtChart.ChartAreas[0].AxisX.ScaleView.Position;
            double newScrollPosition     = 0;
            double currentPosition       = 0;

            if (chtChart.Series.Count > 0 && e.Button == System.Windows.Forms.MouseButtons.Left && e.X > 0 && e.X < chtChart.Width)
            {
                currentPosition = chtChart.ChartAreas[0].AxisX.PixelPositionToValue(e.X);
                double displacement = this.lastPosition - currentPosition;
                newScrollPosition = chtChart.ChartAreas[0].AxisX.ScaleView.Position + displacement;
                chtChart.ChartAreas[0].AxisX.ScaleView.Scroll(newScrollPosition);
                currentPosition = chtChart.ChartAreas[0].AxisX.PixelPositionToValue(e.X);
            }

            if (chtChart.Series.Count > 0 && e.Button == System.Windows.Forms.MouseButtons.Left && (chtChart.ChartAreas[0].AxisX.ScaleView.Position >= maxBars || chtChart.ChartAreas[0].AxisX.ScaleView.Position <= 1))
            {
                ChartScrollDirectionMode scrollDirection = chtChart.ChartAreas[0].AxisX.ScaleView.Position >= maxBars ? ChartScrollDirectionMode.LeftToRight : ChartScrollDirectionMode.RightToLeft;

                if (RequestUpdate != null && RequestUpdate(lastDateTimePosition, priceActionChart.IndexKeyForTime[priceActionChart.IndexKeyForTime.Count - 1], priceActionChart.IndexKeyForTime[0], scrollDirection))
                {
                    int index = priceActionChart.TimeKeyForIndex[lastDateTimePosition];

                    newScrollPosition = index - chtChart.ChartAreas[0].AxisX.PixelPositionToValue(e.X);

                    chtChart.ChartAreas[0].AxisX.ScaleView.Scroll(newScrollPosition);

                    RefreshLastPosition(e.X);
                }
            }
        }
Example #2
0
 private bool OnRequestUpdate(DateTime currentDateTime, DateTime startTime, DateTime endTime, ChartScrollDirectionMode scrollDirection)
 {
     if ((scrollDirection == ChartScrollDirectionMode.LeftToRight && startTime <= this.pricebarCache.StartBarDate) || (scrollDirection == ChartScrollDirectionMode.RightToLeft && endTime >= this.pricebarCache.EndBarDate))
     {
         return(false);
     }
     else
     {
         RefreshChart(currentDateTime);
         return(true);
     }
 }
Example #3
0
 private bool OnRequestUpdate(DateTime currentDateTime, DateTime startTime, DateTime endTime, ChartScrollDirectionMode scrollDirection)
 {
     //if ((scrollDirection==ChartScrollDirectionMode.LeftToRight && startTime <= this.signalCacheNavigator.StartBarDate) || (scrollDirection==ChartScrollDirectionMode.RightToLeft && endTime >= this.signalCacheNavigator.EndBarDate))
     //{
     //    return false;
     //}
     //else
     //{
     //    RefreshChart(currentDateTime);
     //    return true;
     //}
     return(false);
 }