/// <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添加到透明窗口中 } }
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); } } }