Tag: 渐变

winforms中的多色对角线渐变

我试图用winforms中的多色对角线渐变填充一个矩形,如下例所示: 对角线渐变我知道这是一个WPF示例,但是有可能在winforms中获得类似的结果吗?

c#XAML ProgressBar正确设置渐变填充

如何将XAML中ProgressBar的渐变设置为动态填充? 目前它像: 两个进度条的代码: 但是我希望上部ProgressBar的“结束”颜色呈绿黄色,就像正下方一样。 意思是我希望进度条像第二个栏一样完全填充,然后“剪掉”其余部分(例如,当我有60%时,我想要右边的40%未显示) 我该怎么做呢? 编辑(找到解决方案): 尝试了几种方法(在条形图上绘制一个默认颜色的矩形等)后,我发现我可以通过代码修改GradientStop的offset : color_UL.Offset = 2.0 – ul_val / 100; 意味着我减去我要显示的百分比,例如30%( ul_val = 30 ),偏移设置为170%(1.7),但条形本身显示30%,具有平滑和正确的颜色渐变。 如果我在条上100%计算2.0 – 1.0即1(正常情况下,如图1中的条#2所示)。 我知道这听起来很混乱,所以这里的图片就像我想要的那样:

渐变面板在最小化时显示红叉,然后恢复

我不知道为什么会这样,但我创建了下面的代码,它是一个渐变面板,然后面板停靠在屏幕的左边。 当窗体重新resize时,它会正确显示,但是如果最小化窗体然后恢复它,则会得到一个大的红色X而不是渐变。 谁能发现错误? using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Drawing2D; using System.Text; using System.Windows.Forms; public class GradientPanel : Panel { private Color ColorA = Color.LightBlue; private Color ColorB = Color.Red; private LinearGradientMode GradientFillStyle = LinearGradientMode.ForwardDiagonal; private Brush gradientBrush; public Color colourStart { get { return ColorA; } set { ColorA […]

线性渐变画笔淡化WPF

我有一个刷子,用于为标题的背景着色。 我喜欢画笔的外观,但希望它在底部三分之一处淡出透明。 任何想法如何做到这一点?

永远不会为从Button派生的控件调用OnPaintBackground方法

我已经制作了一个GradientButton类,它假设是一个充满渐变背景的Button。 我在OnPaintBackground()方法中绘制渐变填充。 不幸的是,它永远不会被调用,当然我通过工具箱向Form添加了一个GradientButton : public class GradientButton : Button { public Color Color1 { get; set; } public Color Color2 { get; set; } public float Angle { get; set; } public GradientButton() { Color1 = Color.YellowGreen; Color2 = Color.LightGreen; Angle = 30; } protected override void OnPaintBackground(PaintEventArgs e) { base.OnPaintBackground(e); Debug.WriteLine(“This never prints”); using […]

沿圆形路径创建渐变画笔

我需要沿圆形路径创建一个多步梯度,如下图所示: 有没有人对如何在XAML而不是代码中实现这一点有任何想法? 是否可以使用现有的渐变画笔或以某种方式合成它们来实现这种效果?

如何在C#中获得彩虹色渐变?

我想根据彩虹颜色(红色……黄色……绿色……蓝色……)列出颜色。 我基本上看到两种方法: 创建一个包含一些重要参考颜色的查找表,并在它们之间进行插值。 我完全不喜欢这个想法。 应用一些或多或少花哨的数学。 可能更少,但我不太明白它是如何工作的。 有任何想法吗? (哦,当我做了一些SO研究时,我发现没有好结果。如果这个问题已经发布,请指出我的位置,我会删除它。) 编辑:我更喜欢这个独立于使用的技术来显示渐变。 例如,类似GetRainbowColor(float f)的f(范围从0(红色)到1(紫色))会很有效。

WinForms中的多色线性渐变

如何在WinForms中创建多色线性渐变? System.Drawing.Drawing2D.LinearGradientBrush只允许两种颜色。