CADViewX 9中使用图片作为背景的代码示例
在以前的老版本的CADViewX Import.Net中, 我们可以使用一个PictureBox, 然后加载一个BMP文件, 最后将CADViewX Import.Net产生的图像画上去。 代码如下
public partial class Form1 : Form
{
/// <summary>Image de base</summary>
public Bitmap ImageBase;
/// <summary>CAD Image DXF</summary>
private CADImage m_CADImageDXF;
public Form1()
{
InitializeComponent();
//CAD IMPORT的认证序列号
ArrayList regDat = new ArrayList();
regDat.Add("xxx");
regDat.Add("xxx");
string Key = "xxxx";
Protection.Register(Key, regDat, false);
}
private void button1_Click(object sender, EventArgs e)
{
//加载BMP文件
string ExePath = AppDomain.CurrentDomain.BaseDirectory;
FileStream fStream = new FileStream(ExePath + "test.bmp", FileMode.Open, FileAccess.Read);
ImageBase = new Bitmap(Image.FromStream(fStream));
fStream.Close();
if (fStream != null) fStream.Close();
//---
pbxImage.Image = ImageBase;
}
private void button2_Click(object sender, EventArgs e)
{
//--- 加载DXF文件
m_CADImageDXF = new CADImage();
m_CADImageDXF = CADImage.CreateImageByExtension("Dummy.DXF");
string ExePath = AppDomain.CurrentDomain.BaseDirectory;
m_CADImageDXF.LoadFromFile(ExePath + "test.dxf");
m_CADImageDXF.GraphicsOutMode = DrawGraphicsMode.GDIPlus;
pbxImage.Refresh();
}
private void pbxImage_Paint(object sender, PaintEventArgs e)
{
if (null != m_CADImageDXF)
m_CADImageDXF.Draw(e.Graphics, pbxImage.ClientRectangle);
}
}
在CADViewX 9以后, 这段代码就会有问题。 因为CADViewX import.net会先擦除BMP的背景。 我们要设置他的背景属性。如下代码即可。
private void pbxImage_Paint(object sender, PaintEventArgs e)
{
if (null != m_CADImageDXF)
{
//这句话非常重要
m_CADImageDXF.IsShowBackground = false;
m_CADImageDXF.Draw(e.Graphics, pbxImage.ClientRectangle);
}
}
浙公网安备 33010602011771号