Tchart矩形工具

时间:2012-03-30 10:45:28

标签: teechart

我正在评估Teechart 4.1.2012.2287,我对矩形工具有疑问。 我的项目是使用VB.Net和framework 4.0在VS2010中编写的。

如果你放置一个矩形工具,并将位置单位设置为百分比(我需要这样做,以便当我调整图表大小时矩形保持在大致相同的位置),当鼠标指针是时,抓手不会显示在矩形上。它确实错误地显示在相应的像素位置而不是百分比位置。

这是一个错误还是我做错了什么?

1 个答案:

答案 0 :(得分:0)

我已经能够使用下面的代码片段重现该问题,并将其(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;
}