Alsing.Windows.Forms.CoreLib.FormatLabelControl.CreateWords C# (CSharp) Метод

CreateWords() приватный Метод

private CreateWords ( Element Elements ) : void
Elements Alsing.Windows.Forms.FormatLabel.Element
Результат void
        private void CreateWords(Element[] Elements)
        {
            var bbuff = new GDISurface(1, 1, this, false);

            _HasImageError = false;
            foreach (Element Element in Elements)
            {
                if (Element.TagName == "img")
                {
                    Element.words = new Word[1];

                    Element.words[0] = new Word();

                    Image img = null;

                    try
                    {
                        string SRC = GetAttrib("img", Element.Tag).ToLowerInvariant();
                        if (IsIndex(SRC))
                        {
                            int index = int.Parse(SRC);
                            img = ImageList.Images[index];
                        }
                        else if (SRC.StartsWith("http://")) //from url
                        {}
                        else if (SRC.StartsWith("file://")) // from file
                        {
                            img = Image.FromFile(SRC.Substring(7));
                        }
                        else //from file
                        {
                            img = Image.FromFile(SRC);
                        }
                    }
                    catch
                    {
                        img = new Bitmap(20, 20);
                        _HasImageError = true;
                    }

                    Element.words[0].Image = img;


                    Element.words[0].Element = Element;


                    if (img != null)
                    {
                        Element.words[0].Height = img.Height;
                        Element.words[0].Width = img.Width;
                        Element.words[0].ScreenArea.Width = img.Width;
                        Element.words[0].ScreenArea.Height = img.Height;
                    }
                }
                else
                {
                    string[] words = Element.Text.Split(' ');
                    Element.words = new Word[words.Length];
                    int i = 0;
                    foreach (string word in words)
                    {
                        Element.words[i] = new Word();
                        string tmp ;
                        Element.words[i].Element = Element;
                        if (i == words.Length - 1)
                        {
                            Element.words[i].Text = word;
                            tmp = word;
                        }
                        else
                        {
                            Element.words[i].Text = word + " ";
                            tmp = word + " "; //last space cant be measured , lets measure an "," instead
                        }
                        //SizeF size=g.MeasureString (tmp,Element.Font);
                        bbuff.Font = GetFont(Element.Font);
                        Size s = bbuff.MeasureTabbedString(tmp, 0);
                        Element.words[i].Height = s.Height;
                        Element.words[i].Width = s.Width - 0;
                        Element.words[i].ScreenArea.Width = Element.words[i].Width;
                        Element.words[i].ScreenArea.Height = Element.words[i].Height;
                        //	Element.words[i].Link =Element.Link ;

                        i++;
                    }
                }
            }

            bbuff.Dispose();
        }