private void CardViewForm_Paint(object sender, PaintEventArgs e) { BorderPainter.Draw(e.Graphics, "", Width, Height); Font font = new Font("黑体", 12 * 1.33f, FontStyle.Bold, GraphicsUnit.Pixel); e.Graphics.DrawString("卡牌掉落", font, Brushes.White, Width / 2 - 40, 8); font.Dispose(); cardDetail.Draw(e.Graphics); if (show) { int pages = cards.Count / cardCount + 1; int cardLimit = (page < pages - 1) ? cardCount : (cards.Count % cardCount); int former = cardCount * page + 1; if (isDirty) { tempImage.Dispose(); tempImage = new Bitmap(cardWidth * xCount, cardHeight * yCount); Graphics g = Graphics.FromImage(tempImage); for (int i = former - 1; i < former + cardLimit - 1; i++) { int ri = i % (xCount * yCount); int x = (ri % xCount) * cardWidth; int y = (ri / xCount) * cardHeight; DrawOnCardView(g, cards[i], x, y, false); } g.Dispose(); isDirty = false; } e.Graphics.DrawImage(tempImage, 65, 35); if (tar != -1 && tar < cards.Count) { int ri = tar % (xCount * yCount); int x = (ri % xCount) * cardWidth + 65; int y = (ri / xCount) * cardHeight + 35; DrawOnCardView(e.Graphics, cards[tar], x, y, true); } e.Graphics.FillRectangle(Brushes.DarkGray, 67, 37 + yCount * cardHeight, cardWidth * xCount - 4, 71); Image img = PicLoader.Read("System", "SearchBack.JPG"); e.Graphics.DrawImage(img, 70, 40 + yCount * cardHeight, cardWidth * xCount - 10, 65); img.Dispose(); virtualRegion.Draw(e.Graphics); } }
private void MonsterSkillViewForm_Paint(object sender, PaintEventArgs e) { BorderPainter.Draw(e.Graphics, "", Width, Height); Font font = new Font("黑体", 12 * 1.33f, FontStyle.Bold, GraphicsUnit.Pixel); e.Graphics.DrawString(" 对战卡组 ", font, Brushes.White, 320, 8); font.Dispose(); Font fontblack = new Font("黑体", 12 * 1.33f, FontStyle.Bold, GraphicsUnit.Pixel); e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(245, 244, 242)), 65, cardHeight * yCount + 40, cardWidth * xCount, 100 + (7 - yCount) * cardHeight); e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(190, 175, 160)), 65, cardHeight * yCount + 40, cardWidth * xCount, 20); e.Graphics.DrawString("所有卡组", fontblack, Brushes.White, 65, cardHeight * yCount + 42); fontblack.Dispose(); cardDetail.Draw(e.Graphics); if (show) { int pages = totalCount / cardCount + 1; int cardLimit = (page < pages - 1) ? cardCount : (totalCount % cardCount); int former = cardCount * page + 1; if (isDirty) { tempImage.Dispose(); tempImage = new Bitmap(cardWidth * xCount, cardHeight * yCount); Graphics g = Graphics.FromImage(tempImage); for (int i = former - 1; i < former + cardLimit - 1; i++) { g.DrawImage(PeopleBook.GetPersonImage(people[i]), (i % xCount) * cardWidth, ((i / xCount) % yCount) * cardHeight, cardWidth, cardHeight); } g.Dispose(); isDirty = false; } e.Graphics.DrawImage(tempImage, 65, 35); if (sel != -1 && sel < totalCount) { SolidBrush yellowbrush = new SolidBrush(Color.FromArgb(80, Color.Lime)); int x = (sel % xCount) * cardWidth + 65; int y = ((sel / xCount) % yCount) * cardHeight + 35; e.Graphics.FillRectangle(yellowbrush, x, y, cardWidth, cardHeight); yellowbrush.Dispose(); Pen yellowpen = new Pen(Brushes.Lime, 3); e.Graphics.DrawRectangle(yellowpen, x, y, cardWidth, cardHeight); yellowpen.Dispose(); } if (tar != -1 && tar < totalCount) { int x = (tar % xCount) * cardWidth + 65; int y = ((tar / xCount) % yCount) * cardHeight + 35; SolidBrush yellowbrush = new SolidBrush(Color.FromArgb(80, Color.Yellow)); e.Graphics.FillRectangle(yellowbrush, x, y, cardWidth, cardHeight); yellowbrush.Dispose(); Pen yellowpen = new Pen(Brushes.Yellow, 3); e.Graphics.DrawRectangle(yellowpen, x, y, cardWidth, cardHeight); yellowpen.Dispose(); } } }
private void MonsterSkillViewForm_Paint(object sender, PaintEventArgs e) { BorderPainter.Draw(e.Graphics, "", Width, Height); Font font = new Font("黑体", 12 * 1.33f, FontStyle.Bold, GraphicsUnit.Pixel); e.Graphics.DrawString(" 全技能 ", font, Brushes.White, 320, 8); font.Dispose(); cardDetail.Draw(e.Graphics); e.Graphics.FillRectangle(Brushes.DarkGray, 67, 37, cardWidth * xCount - 4, 44); Image img = PicLoader.Read("System", "SearchBack.JPG"); e.Graphics.DrawImage(img, 70, 40, cardWidth * xCount - 10, 38); img.Dispose(); font = new Font("宋体", 9 * 1.33f, FontStyle.Regular, GraphicsUnit.Pixel); e.Graphics.DrawString("分类", font, Brushes.White, 86, 51); font.Dispose(); font = new Font("宋体", 10 * 1.33f, FontStyle.Regular, GraphicsUnit.Pixel); Font fontblack = new Font("黑体", 12 * 1.33f, FontStyle.Bold, GraphicsUnit.Pixel); e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(245, 244, 242)), 65, cardHeight * yCount + 35 + cardHeight, cardWidth * xCount, 93); e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(190, 175, 160)), 65, cardHeight * yCount + 35 + cardHeight, cardWidth * xCount, 20); e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(190, 175, 160)), 65, cardHeight * yCount + 75 + cardHeight, cardWidth * xCount, 20); e.Graphics.DrawString("技能说明", fontblack, Brushes.White, 65, cardHeight * yCount + 37 + cardHeight); if (!string.IsNullOrEmpty(skillDesStr)) { e.Graphics.DrawString(skillDesStr, font, Brushes.SaddleBrown, 65 + 5, cardHeight * yCount + 37 + cardHeight + 21); } e.Graphics.DrawString("所有生物", fontblack, Brushes.White, 65, cardHeight * yCount + 77 + cardHeight); fontblack.Dispose(); font.Dispose(); if (show) { int pages = totalCount / cardCount + 1; int cardLimit = (page < pages - 1) ? cardCount : (totalCount % cardCount); int former = cardCount * page + 1; if (isDirty) { tempImage.Dispose(); tempImage = new Bitmap(cardWidth * xCount, cardHeight * yCount); Graphics g = Graphics.FromImage(tempImage); for (int i = former - 1; i < former + cardLimit - 1; i++) { var cardImg = SkillBook.GetSkillImage(skills[i]); if (cardImg == null) { continue; } g.DrawImage(cardImg, (i % xCount) * cardWidth, ((i / xCount) % yCount) * cardHeight, cardWidth, cardHeight); } g.Dispose(); isDirty = false; } e.Graphics.DrawImage(tempImage, 65, 35 + cardHeight); if (sel != -1 && sel < totalCount) { SolidBrush yellowbrush = new SolidBrush(Color.FromArgb(80, Color.Lime)); int x = (sel % xCount) * cardWidth + 65; int y = ((sel / xCount) % yCount) * cardHeight + 35 + cardHeight; e.Graphics.FillRectangle(yellowbrush, x, y, cardWidth, cardHeight); yellowbrush.Dispose(); Pen yellowpen = new Pen(Brushes.Lime, 3); e.Graphics.DrawRectangle(yellowpen, x, y, cardWidth, cardHeight); yellowpen.Dispose(); } if (tar != -1 && tar < totalCount) { int x = (tar % xCount) * cardWidth + 65; int y = ((tar / xCount) % yCount) * cardHeight + 35 + cardHeight; SolidBrush yellowbrush = new SolidBrush(Color.FromArgb(80, Color.Yellow)); e.Graphics.FillRectangle(yellowbrush, x, y, cardWidth, cardHeight); yellowbrush.Dispose(); Pen yellowpen = new Pen(Brushes.Yellow, 3); e.Graphics.DrawRectangle(yellowpen, x, y, cardWidth, cardHeight); yellowpen.Dispose(); } } }