我遇到了一些奇怪的绘图问题,希望有人能够帮我找出问题所在。
基本上,我有一个左侧停靠的面板,应该有一个渐变背景,但一直无法正常工作。我已经更改了颜色以进行调试。 截图 http://img509.imageshack.us/img509/5650/18740614.png 该面板停靠在左侧,并且有一个透明控件(因此您可以看到沿边缘留下的红色小拐角,透明控件正确地绘制了背景颜色)。
然而,当我慢慢调整面板大小时,底部会留下红色线条,我认为应该被黄色填充覆盖。我使用的代码如下:
这导致我在调整大小时无法得到漂亮的纯色或渐变填充效果。
基本上,我有一个左侧停靠的面板,应该有一个渐变背景,但一直无法正常工作。我已经更改了颜色以进行调试。 截图 http://img509.imageshack.us/img509/5650/18740614.png 该面板停靠在左侧,并且有一个透明控件(因此您可以看到沿边缘留下的红色小拐角,透明控件正确地绘制了背景颜色)。
然而,当我慢慢调整面板大小时,底部会留下红色线条,我认为应该被黄色填充覆盖。我使用的代码如下:
// Construction
sidePanel.Paint += new PaintEventHandler(OnPaint);
private void OnPaint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Panel pb = sender as Panel;
PaintControl(pb.Width, pb.Height, sender, e, true);
}
private static void PaintControl(int width, int height, object sender, PaintEventArgs e, bool sidebar)
{
Rectangle baseRectangle = new Rectangle(0, 0, width -1, height-1);
using (LinearGradientBrush gradientBrush = new LinearGradientBrush(baseRectangle, WizardBaseForm.StartColour, WizardBaseForm.EndColour, 90))
{
e.Graphics.Clear(Color.Yellow);
e.Graphics.DrawRectangle(Pens.Red, baseRectangle);
e.Graphics.FillRectangle(Brushes.Yellow, baseRectangle);
}
}
protected override void OnResize(EventArgs e)
{
base.OnResize(e);
this.Invalidate();
}
这导致我在调整大小时无法得到漂亮的纯色或渐变填充效果。