Инструмент прямоугольника Tchart - PullRequest
0 голосов
/ 30 марта 2012

Я оцениваю Teechart 4.1.2012.2287, и у меня проблема с инструментом прямоугольника. Мой проект написан на VS2010, с использованием VB.Net и framework 4.0.

Если вы поместите инструмент прямоугольника и установите единицы измерения положения в процентах (мне нужно сделать это так, чтобы при изменении размера диаграммы прямоугольник оставался примерно в том же положении), рука захвата не отображается, когда указатель мыши над прямоугольником. Это на самом деле неправильно показывает в соответствующем местоположении пикселя, а не в процентном положении.

Это ошибка или я что-то не так делаю?

1 Ответ

0 голосов
/ 02 апреля 2012

Я смог воспроизвести проблему с помощью приведенного ниже фрагмента кода и добавил его (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;
}
...