我正在评估 Teechart 4.1.2012.2287,但我对矩形工具有疑问。我的项目是用 VS2010 编写的,使用 VB.Net 和框架 4.0。
如果您放置一个矩形工具,并将位置单位设置为百分比(我需要这样做,以便在调整图表大小时矩形保持在大致相同的位置)当鼠标指针位于矩形上方时,抓手不会显示. 它实际上确实错误地显示在相应的像素位置而不是百分比位置。
这是一个错误还是我做错了什么?
我正在评估 Teechart 4.1.2012.2287,但我对矩形工具有疑问。我的项目是用 VS2010 编写的,使用 VB.Net 和框架 4.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;
}