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