问题标签 [lineargradientbrush]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
635 浏览

xaml - 在 Expression Blend UI 中更改线性渐变画笔的起点/终点

看起来很简单,但我无法在帮助或在线中找到它。

我知道如何更改 XAML 以设置 LinearGradient 画笔的 StartPoint 和 EndPoint,但我不知道您是如何使用 Expression Blend 中的 IDE 执行此操作的 - 有人知道您用来执行此操作的键盘/鼠标操作吗?

0 投票
2 回答
2275 浏览

wpf - SVG -> WPF 线性渐变

有谁知道WPF中SVG的“gradientUnits = userSpaceOnUse”是否有一个LinearGradientBrush的等量属性?我似乎找不到这个。

如果没有,有人知道如何在(C# 或 VB.NET)中计算它吗?例如,如果我在 100x100 的 Rectangle 上的 StartPoint 为 0,0,EndPoint 为 1,1,则角度为 45 度。但是,当我更改 Rectangle 的宽度或高度时,例如 Width=150,轴不再是 45 度。我如何计算以使非正方形的矩形中的角度保持在 45 度,以便它从左下角到右上角的中间梯度停止。

0 投票
1 回答
2471 浏览

c# - 如何在 C# 中使用 LinearGradientBrush 绘制精确的渐变?

我正在使用 GDI 在 C# 中绘制这个对象,我需要进行精确的像素绘制。但是,这不起作用...我不知道这是否重要,但我正在绘制的对象是 ToolStrip,我正在执行自定义 ToolStrip 渲染。

我在 y 像素 1 处画了一条蓝色水平线,在 y 像素 2 处画了一条黄色线,在 y 像素 3 处画了一条红色线。这些不是真实的颜色,只是为了让我看得更清楚。

像这样:

然后,在 y 像素 4 处,我开始使用 LinearGradientBrush 填充一个矩形,如下所示:

问题是渐变画在红线上方。蓝色和黄色的都可以,但是红线,应该是RGB=255,0,0,实际上是RGB=255,111,111。

我不明白为什么...我玩过 SmoothingMode、InterpolationMode、CompositionMode、CompositionQuality 但我就是无法正确...

有什么想法吗?

0 投票
1 回答
897 浏览

vb.net - 基于 VB.Net 表单中的渐变的数据网格中的颜色代码行

我有一个网格,其中包含标记有不同优先级的行。我想将高优先级的行染成红色,低优先级的行染成蓝色等。

我想根据数学计算的渐变设置阴影,而不是随意将颜色分配给特定的优先级。如何从沿渐变的单个点提取单一颜色?

0 投票
2 回答
1211 浏览

silverlight - 您可以在silverlight 中为listboxitem 背景设置渐变画笔吗?

我正在寻找一种将渐变画笔设置为列表框项目背景的方法。我定义了一个 DataTemplate 并指定了一个渐变画笔,但它始终显示为列表框背景(即它从不显示为渐变画笔)。

我已经能够设置列表框本身的背景,并且可以使用“setter”对象将列表框的背景设置为标准颜色……但这些都不是我所追求的。

我真的希望每个列表项的背景都是渐变画笔。

下面是我构建的数据模板。

有什么想法吗?

0 投票
0 回答
723 浏览

silverlight - 来自 LinearGradientBrush 的 OpacityMask 与 Silverlight 3 中的绝对 GradientStops

我的问题与类似。

但是,该线程中的答案对我不起作用,因为我使用 LinearGradientBrush 作为不透明蒙版。

我有一个三行网格:

网格的内容在网格的顶部和底部(第一行和第三行)应该是半透明的。

我知道我不能使用剪辑,因为这不允许调整不透明度。所以我想我必须使用不透明蒙版。他们将图像或画笔作为内容,后者对于这个问题更有意义,但提出了如何将 GradientBrush 的偏移设置为网格高度的绝对值的问题。

另外,我正在使用 MVVM 模式。绑定偏移量不起作用,因为它不是从 FrameworkElement 派生的。我现在能看到的唯一解决方案是将完整的画笔绑定到我的视图模型,并在每次网格大小发生变化时对其进行调整。不太好,有没有更优雅的解决方案?

我想做的是这样的(RowDefinitions 和内容被跳过)

伪代码

我不能拆分网格或类似的东西,因为内容跨越三行。我猜 DrawingBrush 会很好地解决它,但这不是住在 SL 房子里。

我正在使用 Silverlight 3。

0 投票
2 回答
1582 浏览

c# - 如何更改 GDI+ LinearGradientBrush 的颜色?

我必须写几个小的垂直渐变(在一个循环上),所以我认为重新使用现有的 LinearGradientBrush 更快(对吗?)

但这不是我所期望的……

那么,上面的代码是否存在错误,或者是在循环中获得多个垂直渐变的更好方法,或者是改变 LinearGradientBrush 颜色的不同方法?

谢谢 :)

0 投票
1 回答
1563 浏览

wpf - 是否可以在 WPF 中为 LinearGradientBrush 设置动画?

是否可以为 LinearGradientBrush 的 StartPoint 或 EndPoint 设置动画?如果是这样,用于为点设置动画的 Storyboard 对象的类型是什么,因为当我尝试以下操作时,我得到“0,1”不是 Double 的有效值,我确实意识到我不应该使用 DoubleAnimationUsingKeyFrames类型。

当前代码:

0 投票
3 回答
172 浏览

wpf - 一次将画笔应用于两个对象

我想一次将画笔(在本例中为 LinearGradientBrush)应用到两个或多个对象(TextBlocks)。我想要的效果是这样的:

替代文字

编辑 我不能简单地将相同的画笔应用于两个对象,因为这会使它们都从红色开始变为蓝色(而不是第二个从紫色阴影开始)。

替代文字

我确定我忽略了一些快速简单的东西......

谢谢,wTS

0 投票
2 回答
620 浏览

rotation - 使用旋转的 LinearGradientBrush 时如何在 GDI+ 中获得一致的渐变填充?

我在我的应用程序中使用 GDI+,我需要使用旋转的 LinearGradientBrush 以完全相同的方式绘制多个矩形。然而,虽然我调用相同的代码来填充每个矩形,但结果并不是我所期望的。这是创建渐变填充的代码,其中 rcDraw 是包含要为每个矩形绘制的区域的矩形。这些坐标位于父窗口的坐标中,因此它们对于 2 个矩形并不相同。

g_hbrLinear = new LinearGradientBrush( Rect( 0, rcDraw.top, 0, rcDraw.bottom - rcDraw.top ), clrStart, clrEnd, (REAL) 80, FALSE );

我在屏幕上看到的内容是这样的(http://www.nnanime.com/bugs/LinGradBrush-rotate10.png)。您可以看到,就好像从第一个矩形填充到第二个矩形一样。我真正想要的是让 2 个矩形看起来相同。如果我使用自己的客户端坐标分别绘制每个矩形,我想我可以做到这一点,但为了我的应用程序的目的,我需要使用父窗口的坐标。

我想我要问的是,GDI+ 如何计算填充的“原点”?它总是基于您使用的坐标系中的 0,0 吗?有没有办法改变它?我尝试了 TranslateTransform,但它似乎并没有以我认为可预测或可理解的方式改变填充。