/// <summary> /// 渲染背景色特效 /// </summary> public void RenderBackColorAero() { if (this.m_State == State.Hidden || !RectangleEx.IsVisible(this.m_BackColorRect)) { return; } //绘制模糊效果 if ((this.m_BackColorAeroStyle & AeroStyle.Blur) != 0) { Rectangle blurRect = this.CurrentBackColorPathRect; int blurWidth = 0; int blurHeight = 0; switch (this.m_BackColorAlign) { case TabAlignment.Top: blurHeight = (int)(this.CurrentBackColorPathRect.Height * this.m_BackColorAeroPos); blurRect.Height = blurHeight; break; case TabAlignment.Bottom: blurHeight = (int)(this.CurrentBackColorPathRect.Height * this.m_BackColorAeroPos); blurRect.Y = blurRect.Bottom - blurHeight; blurRect.Height = blurHeight; break; case TabAlignment.Left: blurWidth = (int)(this.CurrentBackColorPathRect.Width * this.m_BackColorAeroPos); blurRect.Width = blurWidth; break; case TabAlignment.Right: blurWidth = (int)(this.CurrentBackColorPathRect.Width * this.m_BackColorAeroPos); blurRect.X = blurRect.Right - blurWidth; blurRect.Width = blurWidth; break; default: //同Top blurHeight = (int)(this.CurrentBackColorPathRect.Height * this.m_BackColorAeroPos); blurRect.Height = blurHeight; break; } //绘制 RenderEngine.DrawAeroBlur(this.m_Graphics, blurRect, this.m_BackColorAeroBlurColor); } //绘制玻璃效果 if ((this.m_BackColorAeroStyle & AeroStyle.Glass) != 0) { Rectangle glassRect = this.CurrentBackColorPathRect; int blurWidth = 0; int blurHeight = 0; switch (this.m_BackColorAlign) { case TabAlignment.Top: blurHeight = (int)(glassRect.Height * this.BackColorAeroPos); glassRect.Y += blurHeight; //底部 glassRect.Height = (glassRect.Height - blurHeight) * 2; //圆的一半 break; case TabAlignment.Bottom: blurHeight = (int)(glassRect.Height * this.BackColorAeroPos); glassRect.Y -= (glassRect.Height - blurHeight); //顶部 glassRect.Height = (this.CurrentBackColorPathRect.Height - blurHeight) * 2; //圆的一半 break; case TabAlignment.Left: blurWidth = (int)(glassRect.Width * this.BackColorAeroPos); glassRect.X += blurWidth; //右侧 glassRect.Width = (glassRect.Width - blurWidth) * 2; //圆的一半 break; case TabAlignment.Right: blurWidth = (int)(glassRect.Width * this.BackColorAeroPos); glassRect.X -= (glassRect.Width - blurWidth); //左侧 glassRect.Width = (glassRect.Width - blurWidth) * 2; //圆的一般 break; default: //同Top blurHeight = (int)(glassRect.Height * this.BackColorAeroPos); glassRect.Y += blurHeight; //底部 glassRect.Height = (glassRect.Height - blurHeight) * 2; //圆的一半 break; } //绘制 RenderEngine.DrawAeroGlass(this.m_Graphics, glassRect, this.BackColorAeroGlassCenterColor, this.BackColorAeroGlassSurroundColor); } }