Я смог воспроизвести проблему с помощью приведенного ниже фрагмента кода и добавил его (TF02016130) в список дефектов, которые необходимо исследовать.
tChart1.Aspect.View3D = false;
tChart1.Dock = DockStyle.Fill;
tChart1.Series.Add(new Steema.TeeChart.Styles.Points()).FillSampleValues();
Steema.TeeChart.Tools.RectangleTool rectangle1 = new Steema.TeeChart.Tools.RectangleTool(tChart1.Chart);
rectangle1.Text = "My rectangle tool";
rectangle1.AutoSize = true;
rectangle1.PositionUnits = Steema.TeeChart.PositionUnits.Percent;
rectangle1.Shape.CustomPosition = true;
rectangle1.Shape.Left = 50;
rectangle1.Shape.Top = 50;
rectangle1.AllowDrag = true;
rectangle1.AllowResize = true;
rectangle1.AllowEdit = true;
Тем временем, обходной путь использует События AfterDraw и позиционирование в пикселях, как показано здесь:
public Form1()
{
InitializeComponent();
InitializeChart();
}
private Steema.TeeChart.Tools.RectangleTool rectangle1;
private void InitializeChart()
{
tChart1.Aspect.View3D = false;
tChart1.Dock = DockStyle.Fill;
tChart1.Series.Add(new Steema.TeeChart.Styles.Points()).FillSampleValues();
rectangle1 = new Steema.TeeChart.Tools.RectangleTool(tChart1.Chart);
tChart1.AfterDraw += new Steema.TeeChart.PaintChartEventHandler(tChart1_AfterDraw);
rectangle1.Text = "My rectangle tool";
rectangle1.AutoSize = true;
rectangle1.PositionUnits = Steema.TeeChart.PositionUnits.Pixels;
rectangle1.AllowDrag = true;
rectangle1.AllowResize = true;
rectangle1.AllowEdit = true;
tChart1.Draw();
}
void tChart1_AfterDraw(object sender, Steema.TeeChart.Drawing.Graphics3D g)
{
rectangle1.Shape.CustomPosition = true;
rectangle1.Shape.Left = tChart1.Width / 2;
rectangle1.Shape.Top = tChart1.Height / 2;
}