C#-图片框中图片的渐变

丹尼尔·约根森

我已经在VB.NET中开发了一个应用程序,现在我将其移至C#。

到目前为止,一切进展顺利,但是我面临一个问题。

我有一个在其中有图片的pictureBox。在此图片框上,我希望渐变是从顶部透明到颜色“控件”的渐变,以与表单背景色融合。我已经准备好在VB.net中完成此工作,但是当我尝试在C#中进行此操作时,似乎绘制了渐变,但是在图片后面。

这是我尝试过的:

private void PictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
    Color top = Color.Transparent;
    Color bottom = Color.FromKnownColor(KnownColor.Control);

    GradientPictureBox(top, bottom, ref PictureBox1, e);
}

public void GradientPictureBox(Color topColor, Color bottomColor, ref PictureBox PictureBox1, System.Windows.Forms.PaintEventArgs e)
{
    LinearGradientMode direction = LinearGradientMode.Vertical;
    LinearGradientBrush brush = new LinearGradientBrush(PictureBox1.DisplayRectangle, topColor, bottomColor, direction);
    e.Graphics.FillRectangle(brush, PictureBox1.DisplayRectangle);
    brush.Dispose();
}   

但是,这实际上似乎确实可行,但是它再次在图片后面绘制了渐变。在VB.net中,它无需任何额外代码即可将其绘制在图片顶部。

我是否需要添加任何其他内容?

如果有关系,请在C#2010 Express中进行即时编码。

范围蠕变

下面的代码可以做到这一点。

我可能会考虑使其成为自己的控件,并使用以下代码作为其Paint事件。

    private void pictureBox1_Paint(object sender, PaintEventArgs e)
    {
        e.Graphics.DrawImage(pictureBox1.Image, 0, 0, pictureBox1.ClientRectangle, GraphicsUnit.Pixel);

        Color top = Color.FromArgb(128, Color.Blue);
        Color bottom = Color.FromArgb(128, Color.Red);
        LinearGradientMode direction = LinearGradientMode.Vertical;
        LinearGradientBrush brush = new LinearGradientBrush(pictureBox1.ClientRectangle, top, bottom, direction);

        e.Graphics.FillRectangle(brush, pictureBox1.ClientRectangle);
    }

此代码产生以下图像

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

图片未显示在图片框C#中

来自分类Dev

C#更新图片框中的位图

来自分类Dev

C#在图片框中制作游戏

来自分类Dev

在Visual Studio C ++的图片框中缩放图片

来自分类Dev

从 C# 中的图片框中获取位图源

来自分类Dev

图片框中的C#随机图像并分配值

来自分类Dev

如何在图片框C#中更改图像

来自分类Dev

我无法更改图片框C#中的图像

来自分类Dev

如何在C#中构造图片框?

来自分类Dev

从数组添加多个图片框以在 C# 中形成

来自分类Dev

将图片从图片框保存到png C#

来自分类Dev

在图片框C#中加载图片时出现错误

来自分类Dev

检测图片框边缘C#

来自分类Dev

更改“图片框”的 C# 方法

来自分类Dev

C# - 更改图片框的 SizeMode

来自分类Dev

如何使用C#在Visual Studio中访问图片框中的图像名称

来自分类Dev

尝试在C#中的板子的数组中创建图片框网格

来自分类Dev

C#绘制图片框中的类中的图形,只需单击鼠标

来自分类Dev

C#中的动态图片

来自分类Dev

如何获取图像的最后一行的像素并将其显示在图片框中。C#

来自分类Dev

C# 使一个图片框远离另一个图片框

来自分类Dev

C#:调整图片框大小以适合图像

来自分类Dev

可以配置位图/图片框数组吗?C#

来自分类Dev

可以配置位图/图片框数组吗?C#

来自分类Dev

在图片框C#内部绘制某些区域

来自分类Dev

C#自定义图片框控件

来自分类Dev

C#:创建一堆图片框

来自分类Dev

不断移动一组图片框 C#

来自分类Dev

C#用鼠标绘制Windows窗体图片框