问题标签 [radialgradientbrush]

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 回答
637 浏览

wpf - 为什么在 VisualBrush 中设置 Stretch 属性时不应用 Ellipse 的填充?

我正在开发一个自定义控件,并且我有一个这样VisualBrushVisual属性:

Stretch属性设置为Uniform而不是使用RadialGradientBrush我创建的时,它会以某种方式SolidColorBrush使用Stroke颜色创建一个。但是,当我明确设置WidthHeight的属性Ellipse而不是使用该Stretch属性时,我得到了我期望的渐变。

有什么奇怪的想法吗?

Ellipse编辑:我刚刚观察到当我将ViewBox.

0 投票
1 回答
559 浏览

c# - C# Windows Phone - 创建圆形遮罩

我需要屏蔽动态创建的图像,以便它们显示为圆圈。图片可以是正方形,但通常是矩形...所以要显示的圆圈可以从它的中心取出...所以显示的圆圈必须内接在图片中并以中心为中心。

这是我现在正在使用的代码:

这一切都很好,但是当图片是矩形而不是正方形时,这会创建一个椭圆而不是圆形......关于如何强制它创建一个圆形的任何想法?

我还尝试指定更多参数,但似乎没有帮助:

0 投票
1 回答
97 浏览

uwp - 在代码中,我如何知道 RadialGradientBrush 是否未正确显示?

我使用 RadialGradientBrush 作为按钮的背景。在一台计算机上,它运行良好。另一方面,背景是透明的。

新电脑:英特尔 i7-8700、16Gb 内存、64 位操作系统、显卡 - Nvidia GeForce GTx1050Ti

OldComputer:英特尔 6300、2Gb 内存、32 位操作系统、显卡 - 英特尔 G965 Express 芯片组系列

两台计算机都运行 Windows 10 Home、1809 (17763.503)、1920x1080 显示器。

在每台计算机上运行相同的程序(如下所示),我没有让 RadialGradientBrush 出现在 OldComputer 上。RadialGradientBrush 处于活动状态 - 我可以从 GradientStop 1获取颜色,并将其用作背景的 SolidColorBrush。

LinearGradientBrush 将在 OldComputer 上正确显示。

G965 的驱动程序来自 2012,它是可用的最新版本。我猜问题出在这个旧的 G965 显卡上,尽管我对此并不肯定。

这是程序中唯一的代码。除了默认的代码之外,没有其他代码。

新电脑:

图片来自 NewComputer

老电脑:

图片来自旧电脑

我有一个解决方法,即在按钮后面放置一个边框,与按钮的形状相同,填充后备纯色。

我宁愿在代码中找到一种方法来知道是否要显示 RadialGradientBrush,然后将按钮背景更改为 SolidColorBrush,也许看看图形系统的功能?
从概念上讲,类似于 Graphics.Capabilities.RadialGradientBrush。
任何想法如何做到这一点?

编辑 1:在 OldComputer 中使用显卡 - 现在可以显示 RadialGradientBrush。貌似是G965显卡。我使用 WindowsCommunityToolkit 打开了一个关于此的问题。