コード例 #1
0
ファイル: Form1.cs プロジェクト: HelloLong/HappyHoliday
 /// <summary>
 /// 把程序名分成一个一个字分别放到label里
 /// </summary>
 /// <param name="text">程序的名称</param>
 private void PutTextToLabels(string text)
 {
     // 将这些文件名中的文字放在label中
     textLabels = new LeafLabel[text.Length];
     for (int i = 0; i < textLabels.Length; i++)
     {
         // 设置每一个label的字体,随机前景色等
         char ch = text[i];
         textLabels[i] = new LeafLabel(rnd.Next(LeafLabel.MinGravity, LeafLabel.MaxGravity + 1));
         textLabels[i].AutoSize = true;
         Color color = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256));
         Bitmap bmp = FormWizard.Text2Bitmap(ch + "", font, color);
         textLabels[i].Text = ch + "";
         textLabels[i].ForeColor = color;
         textLabels[i].TextAlign = System.Drawing.ContentAlignment.MiddleCenter;//文字放在label中间
         textLabels[i].Font = font;
         textLabels[i].MinimumSize = bmp.Size;
         textLabels[i].Region = FormWizard.Image2Region(bmp);//label的轮廓设置成文字的轮廓
         textLabels[i].Location = new Point(rnd.Next(screen.Width - textLabels[i].Width), rnd.Next(screen.Height));
         this.Controls.Add(textLabels[i]);// 将label添加到透明窗口中
     }
 }
コード例 #2
0
ファイル: Form1.cs プロジェクト: HelloLong/HappyHoliday
        private void PutImageToLabels()
        {
            // 取得images文件夹中的图片文件
            DirectoryInfo imagedir = new DirectoryInfo(@".\images");
            if (imagedir.Exists)
            {
                FileInfo[] imagefiles = imagedir.GetFiles();

                //同一时间只有 imgLabelsOnScreenCount 个图片显示在屏幕内
                if (imgLabelsOnScreenCount > imagefiles.Length)
                    imgLabelsOnScreenCount = imagefiles.Length;

                imgLabelsNotInQueue = new LeafLabel[imgLabelsOnScreenCount];
                imgLabelQueue = new Queue<LeafLabel>();

                for (int i = 0; i < imagefiles.Length; i++)
                {
                    Bitmap bmp = new Bitmap(imagefiles[i].FullName);
                    LeafLabel label = new LeafLabel(rnd.Next(LeafLabel.MinGravity, LeafLabel.MaxGravity + 1));
                    label.AutoSize = true;
                    label.MinimumSize = bmp.Size;//这句要加,不然label的Size默认是0
                    label.Image = bmp;// 设置label的图片
                    label.Region = FormWizard.Image2Region(bmp);// 设置label的轮廓为图片轮廓
                    if (i < imgLabelsOnScreenCount)
                    {
                        // 这些label显示在屏幕内
                        label.Location = new Point(rnd.Next(screen.Width), rnd.Next(screen.Height));
                        imgLabelsNotInQueue[i] = label;
                    }
                    else
                    {
                        //剩下的图片放在先进先出的列队里面,待以后循环显示
                        label.Location = new Point(0, -label.Height);
                        imgLabelQueue.Enqueue(label);
                    }
                    this.Controls.Add(label);

                }
            }
        }