public class TestGraphics : Indicator { private DateTime lastTimeMouseRefresh = DateTime.MinValue; protected override void OnStateChange() { if (State == State.SetDefaults) { Description = "TestGraphics"; Name = "TestGraphics"; Calculate = Calculate.OnEachTick; IsChartOnly = true; IsOverlay = true; DisplayInDataBox = true; } else if (State == State.Historical) { ChartControl.PreviewMouseMove += mouse_move; } else if (State == State.Terminated) { ChartControl.PreviewMouseMove -= mouse_move; } } protected override void OnBarUpdate() { } protected override void OnRender(ChartControl chartControl, ChartScale chartScale) { DebugMessages("chartScale.Width " + chartScale.Width); DebugMessages("ChartPanel.W " + ChartPanel.W); DebugMessages("chartControl.CanvasRight " + chartControl.CanvasRight); DebugMessages("chartControl.PanelWidth " + chartControl.PanelWidth); DebugMessages("---"); DebugMessages("chartScale.Height " + chartScale.Height); DebugMessages("ChartPanel.H " + ChartPanel.H); DebugMessages("chartControl.ActualHeight " + chartControl.ActualHeight); DebugMessages("------------------------"); } private void DebugMessages(string myMessage) { Log(myMessage, NinjaTrader.Cbi.LogLevel.Information); } private void mouse_move(object sender, MouseEventArgs e) { if (DateTime.Now >= this.lastTimeMouseRefresh) { this.lastTimeMouseRefresh = DateTime.Now.AddMilliseconds(100.0); var position = e.GetPosition(ChartPanel as IInputElement); DebugMessages("-position " + position.X + " " + position.Y); } } }
2016-11-04 22:58:40:709|1|16|ChartPanel.W 1278
2016-11-04 22:58:40:709|1|16|chartControl.CanvasRight 1278
2016-11-04 22:58:40:709|1|16|chartControl.PanelWidth 1022.4
2016-11-04 22:58:40:709|1|16|hhh
2016-11-04 22:58:40:709|1|16|chartScale.Height 700.8
2016-11-04 22:58:40:709|1|16|ChartPanel.H 876
2016-11-04 22:58:40:709|1|16|chartControl.ActualHeight 728
upd. Quad Core i7, .NET 4.6, Windows 10 Home. NT8 RC2
Comment