/// <summary>
 /// Визуализация.
 /// Обхождане на всички елементи в списъка и извикване на визуализиращия им метод.
 /// </summary>
 /// <param name="grfx">Къде да се извърши визуализацията.</param>
 public virtual void Draw(Graphics grfx, DoubleBufferedPanel vPort)
 {
     foreach (Shape item in vPort.ShapeList)
     {
         DrawShape(grfx, item);
     }
 }
示例#2
0
 private void borderColorButton_Click(object sender, EventArgs e)
 {
     CurrentViewPort    = new DoubleBufferedPanel();
     colorButton.Text   = "Border";
     colorBox.BackColor = BorderColor;
     CurrentViewPort.Refresh();
 }
        /// <summary>
        /// Добавя примитив - правоъгълник на произволно място върху клиентската област.
        /// </summary>



        /// <summary>
        /// Проверява дали дадена точка е в елемента.
        /// Обхожда в ред обратен на визуализацията с цел намиране на
        /// "най-горния" елемент т.е. този който виждаме под мишката.
        /// </summary>
        /// <param name="point">Указана точка</param>
        /// <returns>Елемента на изображението, на който принадлежи дадената точка.</returns>
        public Shape ContainsPoint(PointF point, DoubleBufferedPanel vPort)
        {
            for (int i = vPort.ShapeList.Count - 1; i >= 0; i--)
            {
                if (vPort.ShapeList[i].Contains(point))
                {
                    return(vPort.ShapeList[i]);
                }
            }
            return(null);
        }
示例#4
0
        // when changing the tab, check if there exist, if not, then add and initialize a new one,
        //then compare currentViewPort with viewPortsList
        private void tabMenu_SelectedIndexChanged(object sender, EventArgs e)
        {
            panel1.Controls.Clear();

            if (!viewPortsList.Exists(v => v.Name == tabMenu.SelectedTab.Text))
            {
                CurrentViewPort = new DoubleBufferedPanel(tabMenu.SelectedTab.Text);
                CurrentViewPort.InitializeComponent();
                viewPortsList.Add(CurrentViewPort);
                CurrentViewPort.Load += new EventHandler(ViewPortLoad);
            }


            foreach (var port in viewPortsList)
            {
                if (port.Name == tabMenu.SelectedTab.Text)
                {
                    CurrentViewPort = port;
                    panel1.Controls.Add(CurrentViewPort);
                    break;
                }
            }
        }
 /// <summary>
 /// Прерисува всички елементи в shapeList върху e.Graphics
 /// </summary>
 public void ReDraw(object sender, PaintEventArgs e, DoubleBufferedPanel vPort)
 {
     e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
     e.Graphics.ScaleTransform(MainForm.zoom, MainForm.zoom);
     Draw(e.Graphics, vPort);
 }