先展示一下简单的界面!哈哈!
存在的问题:
绘图时界面有轻微闪烁,实现方法:
在OnMouseMove()方法中:不断更新当前绘制的图元信息, 并调用Invalidate()方法重绘。
绘图时界面有轻微闪烁,实现方法:
在OnMouseMove()方法中:不断更新当前绘制的图元信息, 并调用Invalidate()方法重绘。
OnPaint方法中:遍历所有图元,重绘所有图元!
Graphics g = e.Graphics;
Region regChip = g.Clip;
g.Clip = new Region(rect);
Region regChip = g.Clip;
g.Clip = new Region(rect);
g.Clear(this.BackColor);
foreach (IShape drawobject in doc.drawObjectList)
{
if (rect.IntersectsWith(drawobject.Rect))
{
drawobject.Draw(g);
if (drawobject.TrackerState == config.Module.Core.TrackerState.Selected
&& this.CurrentOperator == Enum.Operator.Transfrom)//仅当编辑节点操作时显示图元热点
{
drawobject.DrawTracker(g);
}
}
}
{
if (rect.IntersectsWith(drawobject.Rect))
{
drawobject.Draw(g);
if (drawobject.TrackerState == config.Module.Core.TrackerState.Selected
&& this.CurrentOperator == Enum.Operator.Transfrom)//仅当编辑节点操作时显示图元热点
{
drawobject.DrawTracker(g);
}
}
}