public void tssBase_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; //先画背景 IMyContainer imctl = (IMyContainer)skinEng.GetInterface(tssBase.Owner); g.TranslateTransform(2, 2); imctl.InvokePaintBackground(tssBase, e); g.ResetClip(); Rectangle drawRect = new Rectangle(); drawRect.X = (tssBase.Width - ToolStripSeparatorImage.Width) / 2; drawRect.Y = 0; drawRect.Width = ToolStripSeparatorImage.Width; drawRect.Height = tssBase.Height; //画分隔条 GraphicHelper.DrawImageWithoutBorder(g, TrueToolStripSeparatorImage, drawRect); }
//画图 public void tsbBase_Paint(object sender, PaintEventArgs e) { //先画背景 IMyContainer imctl = (IMyContainer)skinEng.GetInterface(tsbBase.Owner); imctl.InvokePaintBackground(tsbBase, e); Graphics g = e.Graphics; int imageIndex = 0; if (IsMouseOn) { if (IsMouseDown) { imageIndex = 2; } else { imageIndex = 1; } } else { imageIndex = 0; } if (!tsbBase.Enabled) { imageIndex = 0; } //画按钮图片 GraphicHelper.DrawImageWithoutBorder(g, TrueLeftTopImages[imageIndex], ButtonRects[0]); GraphicHelper.DrawImageWithoutBorder(g, TrueTopImages[imageIndex], ButtonRects[1]); GraphicHelper.DrawImageWithoutBorder(g, TrueRightTopImages[imageIndex], ButtonRects[2]); GraphicHelper.DrawImageWithoutBorder(g, TrueLeftImages[imageIndex], ButtonRects[3]); GraphicHelper.DrawImageWithoutBorder(g, TrueCenterImages[imageIndex], ButtonRects[4]); GraphicHelper.DrawImageWithoutBorder(g, TrueRightImages[imageIndex], ButtonRects[5]); GraphicHelper.DrawImageWithoutBorder(g, TrueLeftBottomImages[imageIndex], ButtonRects[6]); GraphicHelper.DrawImageWithoutBorder(g, TrueBottomImages[imageIndex], ButtonRects[7]); GraphicHelper.DrawImageWithoutBorder(g, TrueRightBottomImages[imageIndex], ButtonRects[8]); //准备工作 StringFormat sf = new StringFormat(); sf.Alignment = StringAlignment.Center; sf.LineAlignment = StringAlignment.Center; sf.FormatFlags = StringFormatFlags.NoWrap; SolidBrush sb = null; Color textColor; Rectangle rect = new Rectangle(new Point(0, 0), tsbBase.Size); RectangleF rectF = new RectangleF(new Point(0, 0), tsbBase.Size); string displayText = GraphicHelper.GetAppropriateString(g, tsbBase.Text.Replace("&", string.Empty), tsbBase.Font, rectF); //文字大小 SizeF stringSize = g.MeasureString(displayText, tsbBase.Font); Image toDrawImage; if (tsbBase.Enabled) { int hue, sat, bri; ColorHelper.RGB2HSB(skinEng.BackColor, out hue, out sat, out bri); textColor = ColorHelper.HSB2RGBColor(hue, sat, 49); toDrawImage = tsbBase.Image; } else { imageIndex = 0; textColor = Color.DarkGray; toDrawImage = ImageHelper.RemoveColor(tsbBase.Image); } //画背景图片 if (tsbBase.BackgroundImage != null) { GraphicHelper.DrawImage(g, tsbBase.BackgroundImage, rect, tsbBase.BackgroundImageLayout); } sb = new SolidBrush(textColor); //画前景 switch (tsbBase.DisplayStyle) { case ToolStripItemDisplayStyle.Image: { if (tsbBase.Image != null) { GraphicHelper.DrawImage(g, toDrawImage, rect, ImageLayout.Center); } break; } case ToolStripItemDisplayStyle.Text: { g.DrawString(displayText, tsbBase.Font, sb, rectF, sf); break; } case ToolStripItemDisplayStyle.None: { break; } case ToolStripItemDisplayStyle.ImageAndText: { if (tsbBase.Image == null) { g.DrawString(displayText, tsbBase.Font, sb, rectF, sf); } else { int totalWidth = (int)stringSize.Width + tsbBase.Image.Width; Rectangle rectImage = new Rectangle((tsbBase.Width - totalWidth) / 2, (tsbBase.Height - tsbBase.Image.Height) / 2, tsbBase.Image.Width, tsbBase.Image.Height); RectangleF rectText = new RectangleF(rectImage.Right, (tsbBase.Height - stringSize.Height) / 2, stringSize.Width, stringSize.Height); g.DrawImage(toDrawImage, rectImage); g.DrawString(displayText, tsbBase.Font, sb, rectText, sf); } break; } } }
void tsBase_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; GraphicHelper.DrawImageWithoutBorder(g, TrueToolbarImage, new Rectangle(new Point(0, 0), tsBase.Size)); }
void ssBase_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; GraphicHelper.DrawImageWithoutBorder(g, TrueStatusBar, new Rectangle(new Point(0, 0), ssBase.Size)); }
private void DrawScrollbar() { Graphics g = Graphics.FromImage(bmpBuffer); Point pt = Form.MousePosition; pt = hsbBase.PointToClient(pt); //背景 GraphicHelper.DrawImageWithoutBorder(g, TrueBackImage, new Rectangle(new Point(0, 0), hsbBase.Size)); //左按钮 int leftButtonIndex = 0; if (LeftButtonRect.Contains(pt) && MouseDownIndex == 0) { if (IsMouseDown) { leftButtonIndex = 2; } else { leftButtonIndex = 1; } } //右按钮 int rightButtonIndex = 0; if (RightButtonRect.Contains(pt) && MouseDownIndex == 4) { if (IsMouseDown) { rightButtonIndex = 2; } else { rightButtonIndex = 1; } } //滚动按钮 int scrollButtonIndex = 0; if (ScrollButtonRect.Contains(pt) && MouseDownIndex == 2) { if (IsMouseDown) { scrollButtonIndex = 2; } else { scrollButtonIndex = 1; } } for (int i = 0; i <= LeftButtonRects.Length - 1; i++) { GraphicHelper.DrawImageWithoutBorder(g, TrueLeftButtonImages[leftButtonIndex, i], LeftButtonRects[i]); GraphicHelper.DrawImageWithoutBorder(g, TrueRightButtonImages[rightButtonIndex, i], RightButtonRects[i]); GraphicHelper.DrawImageWithoutBorder(g, TrueScrollButtonImages[scrollButtonIndex, i], ScrollButtonRects[i]); } g = FakeScrollBar.CreateGraphics(); g.DrawImage(bmpBuffer, 0, 0); }
private void DrawScrollbar() { Graphics g = Graphics.FromImage(bmp); Point pt = Form.MousePosition; pt = vsbBase.PointToClient(pt); //背景 GraphicHelper.DrawImageWithoutBorder(g, TrueBackImage, new Rectangle(new Point(0, 0), vsbBase.Size)); //上方按钮 int topButtonIndex = 0; if (TopButtonRect.Contains(pt) && MouseDownIndex == 0) { if (IsMouseDown) { topButtonIndex = 2; } else { topButtonIndex = 1; } } //正方按钮 int bottomButtonIndex = 0; if (BottomButtonRect.Contains(pt) && MouseDownIndex == 4) { if (IsMouseDown) { bottomButtonIndex = 2; } else { bottomButtonIndex = 1; } } //滚动按钮 int scrollButtonIndex = 0; if (ScrollButtonRect.Contains(pt) && MouseDownIndex == 2) { if (IsMouseDown) { scrollButtonIndex = 2; } else { scrollButtonIndex = 1; } } if (TopButtonRects != null) { for (int i = 0; i <= TopButtonRects.Length - 1; i++) { GraphicHelper.DrawImageWithoutBorder(g, TrueTopButtonImages[topButtonIndex, i], TopButtonRects[i]); GraphicHelper.DrawImageWithoutBorder(g, TrueBottomButtonImages[bottomButtonIndex, i], BottomButtonRects[i]); GraphicHelper.DrawImageWithoutBorder(g, TrueScrollButtonImages[scrollButtonIndex, i], ScrollButtonRects[i]); } } g = FakeScrollBar.CreateGraphics(); g.DrawImage(bmp, 0, 0); }
//画图 void btnBase_Paint(object sender, PaintEventArgs e) { //Debug.Print("btnBase_Paint,ButtonText:" + btnBase.Text); Graphics g = e.Graphics; int imageIndex = 0; if (IsMouseOn) { if (IsMouseDown) { imageIndex = 2; } else { imageIndex = 1; } } else { imageIndex = 0; #warning 当按钮得到焦点时 //当按钮得到焦点时 if (btnBase.Focused) { imageIndex = 1; } } StringFormat sf = new StringFormat(); sf.Alignment = StringAlignment.Center; sf.LineAlignment = StringAlignment.Center; sf.FormatFlags = StringFormatFlags.NoWrap; SolidBrush sb = null; Rectangle rect = ButtonRects[4]; RectangleF rectF = ButtonRects[4]; string displayText = GraphicHelper.GetAppropriateString(g, btnBase.Text.Replace("&", string.Empty), btnBase.Font, rectF); Color textColor; if (btnBase.Enabled) { textColor = ButtonTextColor; } else { imageIndex = 3; textColor = ButtonDisableTextColor; } //画按钮图片 GraphicHelper.DrawImageWithoutBorder(g, TrueLeftTopImages[imageIndex], ButtonRects[0]); GraphicHelper.DrawImageWithoutBorder(g, TrueTopImages[imageIndex], ButtonRects[1]); GraphicHelper.DrawImageWithoutBorder(g, TrueRightTopImages[imageIndex], ButtonRects[2]); GraphicHelper.DrawImageWithoutBorder(g, TrueLeftImages[imageIndex], ButtonRects[3]); GraphicHelper.DrawImageWithoutBorder(g, TrueCenterImages[imageIndex], ButtonRects[4]); GraphicHelper.DrawImageWithoutBorder(g, TrueRightImages[imageIndex], ButtonRects[5]); GraphicHelper.DrawImageWithoutBorder(g, TrueLeftBottomImages[imageIndex], ButtonRects[6]); GraphicHelper.DrawImageWithoutBorder(g, TrueBottomImages[imageIndex], ButtonRects[7]); GraphicHelper.DrawImageWithoutBorder(g, TrueRightBottomImages[imageIndex], ButtonRects[8]); //画背景图片 if (btnBase.BackgroundImage != null) { GraphicHelper.DrawImage(g, btnBase.BackgroundImage, rect, btnBase.BackgroundImageLayout); } //画前景图片 if (btnBase.Image != null) { GraphicHelper.DrawImage(g, btnBase.Image, rect, btnBase.ImageAlign); } sb = new SolidBrush(textColor); g.DrawString(displayText, btnBase.Font, sb, rectF, sf); }