public static Image GetHeadImage(int pid) { if (pid > 0) { return(PeopleBook.GetPersonImage(pid)); } if (pid == -1) { if (head == null) { head = PicLoader.Read("Player", string.Format("{0}.PNG", UserProfile.InfoBasic.Face)); } return(head); } return(null); }
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(); } } }