gpt4 book ai didi

c# - 手动绘画问题

转载 作者:行者123 更新时间:2023-11-30 15:49:38 25 4
gpt4 key购买 nike

我有一些奇怪的绘图人工制品,我希望有人能够帮助我确定。

基本上我有一个左停靠面板,它应该有一个一直没有正常工作的渐变背景。我已经更改了调试的颜色

screenshot 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();
}

这样做的总体效果是,当我调整大小时,我既没有得到漂亮的纯色,也没有得到漂亮的渐变填充。

最佳答案

我建议创建您自己的面板,从面板派生它并将以下内容放入构造函数中:

  this.SetStyle(ControlStyles.AllPaintingInWmPaint 
| ControlStyles.OptimizedDoubleBuffer
| ControlStyles.ResizeRedraw
| ControlStyles.DoubleBuffer
| ControlStyles.UserPaint
, true);

关于c# - 手动绘画问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1327391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com