问题标签 [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.
xaml - 在 Expression Blend UI 中更改线性渐变画笔的起点/终点
看起来很简单,但我无法在帮助或在线中找到它。
我知道如何更改 XAML 以设置 LinearGradient 画笔的 StartPoint 和 EndPoint,但我不知道您是如何使用 Expression Blend 中的 IDE 执行此操作的 - 有人知道您用来执行此操作的键盘/鼠标操作吗?
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 度,以便它从左下角到右上角的中间梯度停止。
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 但我就是无法正确...
有什么想法吗?
vb.net - 基于 VB.Net 表单中的渐变的数据网格中的颜色代码行
我有一个网格,其中包含标记有不同优先级的行。我想将高优先级的行染成红色,低优先级的行染成蓝色等。
我想根据数学计算的渐变设置阴影,而不是随意将颜色分配给特定的优先级。如何从沿渐变的单个点提取单一颜色?
silverlight - 您可以在silverlight 中为listboxitem 背景设置渐变画笔吗?
我正在寻找一种将渐变画笔设置为列表框项目背景的方法。我定义了一个 DataTemplate 并指定了一个渐变画笔,但它始终显示为列表框背景(即它从不显示为渐变画笔)。
我已经能够设置列表框本身的背景,并且可以使用“setter”对象将列表框的背景设置为标准颜色……但这些都不是我所追求的。
我真的希望每个列表项的背景都是渐变画笔。
下面是我构建的数据模板。
有什么想法吗?
silverlight - 来自 LinearGradientBrush 的 OpacityMask 与 Silverlight 3 中的绝对 GradientStops
我的问题与此类似。
但是,该线程中的答案对我不起作用,因为我使用 LinearGradientBrush 作为不透明蒙版。
我有一个三行网格:
网格的内容在网格的顶部和底部(第一行和第三行)应该是半透明的。
我知道我不能使用剪辑,因为这不允许调整不透明度。所以我想我必须使用不透明蒙版。他们将图像或画笔作为内容,后者对于这个问题更有意义,但提出了如何将 GradientBrush 的偏移设置为网格高度的绝对值的问题。
另外,我正在使用 MVVM 模式。绑定偏移量不起作用,因为它不是从 FrameworkElement 派生的。我现在能看到的唯一解决方案是将完整的画笔绑定到我的视图模型,并在每次网格大小发生变化时对其进行调整。不太好,有没有更优雅的解决方案?
我想做的是这样的(RowDefinitions 和内容被跳过)
伪代码:
我不能拆分网格或类似的东西,因为内容跨越三行。我猜 DrawingBrush 会很好地解决它,但这不是住在 SL 房子里。
我正在使用 Silverlight 3。
c# - 如何更改 GDI+ LinearGradientBrush 的颜色?
我必须写几个小的垂直渐变(在一个循环上),所以我认为重新使用现有的 LinearGradientBrush 更快(对吗?)
但这不是我所期望的……
那么,上面的代码是否存在错误,或者是在循环中获得多个垂直渐变的更好方法,或者是改变 LinearGradientBrush 颜色的不同方法?
谢谢 :)
wpf - 是否可以在 WPF 中为 LinearGradientBrush 设置动画?
是否可以为 LinearGradientBrush 的 StartPoint 或 EndPoint 设置动画?如果是这样,用于为点设置动画的 Storyboard 对象的类型是什么,因为当我尝试以下操作时,我得到“0,1”不是 Double 的有效值,我确实意识到我不应该使用 DoubleAnimationUsingKeyFrames类型。
当前代码:
wpf - 一次将画笔应用于两个对象
我想一次将画笔(在本例中为 LinearGradientBrush)应用到两个或多个对象(TextBlocks)。我想要的效果是这样的:
编辑 我不能简单地将相同的画笔应用于两个对象,因为这会使它们都从红色开始变为蓝色(而不是第二个从紫色阴影开始)。
我确定我忽略了一些快速简单的东西......
谢谢,wTS
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,但它似乎并没有以我认为可预测或可理解的方式改变填充。