Example #1
0
        /// <summary>
        /// Draw EPLAN files
        /// </summary>
        public void DrawEplan()
        {
            int width  = Convert.ToInt16(_previewControl.PreviewBorder.ActualWidth);
            int height = Convert.ToInt16(_previewControl.PreviewBorder.ActualHeight);

            if (width > 0 && height > 0)
            {
                Bitmap         bitmap         = new Bitmap(width, height);
                Graphics       graphics       = Graphics.FromImage(bitmap);
                Rectangle      rectangle      = new Rectangle(0, 0, width, height);
                PaintEventArgs paintEventArgs = new PaintEventArgs(graphics, rectangle);

                DrawingService.DrawDisplayList(paintEventArgs);

                IntPtr       hBitmap      = bitmap.GetHbitmap();
                BitmapSource bitmapSource = Imaging.CreateBitmapSourceFromHBitmap(hBitmap,
                                                                                  IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());

                _previewControl.PreviewBorder.Background = new ImageBrush(bitmapSource);

                bitmap.Dispose();
                graphics.Dispose();
                paintEventArgs.Dispose();
                DeleteObject(hBitmap);
            }
            else
            {
                _previewControl.PreviewBorder.Background = null;
            }
        }
Example #2
0
        private void panel_Symbol_Paint(object sender, PaintEventArgs e)
        {
            if (this.MvProject.Project == null)
            {
                return;
            }
            if (dataGridView2.CurrentRow == null || dataGridView2.CurrentRow.Cells["PartNr"].Value == null)
            {
                return;
            }

            string          partNr = dataGridView2.CurrentRow.Cells["PartNr"].Value.ToString();
            MDPartsDatabase mdb    = Util.eplan.GetPartMaster();
            MDPart          part   = mdb.GetPart(partNr);

            if (part == null)
            {
                return;
            }

            string filePath = PathMap.SubstitutePath(part.Properties.ARTICLE_GROUPSYMBOLMACRO.ToString());

            if (!File.Exists(filePath))
            {
                return;
            }

            int variant = 0;

            if (panel_Symbol.Tag != null)
            {
                variant = (int)panel_Symbol.Tag;
            }

            try
            {
                WindowMacro wm = new WindowMacro();
                wm.Open(filePath, this.MvProject.Project);
                wm.RepresentationType = WindowMacro.Enums.RepresentationType.SingleLine;

                if (wm.ExistVariant(WindowMacro.Enums.RepresentationType.SingleLine, variant))
                {
                    wm.Variant = variant;
                }
                else
                {
                    panel_Symbol.Tag = wm.Variant = 0;
                }

                DrawingService ds = new DrawingService();
                ds.MacroPreview = false;
                ds.CenterView   = true;
                ds.CreateDisplayList(wm);
                ds.DrawDisplayList(e);
            }
            catch
            {
                //MessageBox.Show(ex.Message + "\n" + ex.StackTrace);
            }
        }