在 XAML/C# Metro-Style App 中绘制径向渐变背景(也可以更改其颜色)的简单方法是什么?使用 DirectX 是一种选择吗?我尝试查看一些适用于 Windows 8 Consumer Preview 的 SharpDX 示例,但未能编译它们。还没有找到在 Windows 8 上的 C# 中使用 DX 的任何其他示例。有什么想法吗?
问问题
5756 次
3 回答
2
我使用 SharpDx 克服了这个障碍并为我创建了一个 RadialGradient 填充背景
于 2012-05-20T01:41:46.320 回答
2
RadialGradientBrush 尚未添加到 XAML 堆栈中。您可以使用 WriteableBitmapEx 自己将渐变绘制到 WriteableBitmap,然后使用 Image 或 ImageBrush 来显示它 - 尽管如果您有许多要使用不同形状渐变的元素,这可能会非常慢。
您可以只使用在 Photoshop 或 Paint.NET 中创建的常规图像。
使用 DirectX 可能太复杂且没有必要,但您可以将 DirectX 与 XAML 混合使用。如果你真的想去那里 - 你可能需要使用 SurfaceImageSource。这里有 MSDN 上的基本介绍,或者在这里查看 SharpDX 示例。您可能还想使用 Direct2D 来渲染到该表面,因此您需要混合多种技术。
于 2012-04-28T14:56:21.390 回答
-8
径向渐变画笔已经存在了很长一段时间 - 我想我第一次使用是在 2008 年。无论如何,xaml 中的标记非常简单:
<Rectangle Width="200" Height="100">
<Rectangle.Fill>
<RadialGradientBrush
GradientOrigin="0.5,0.5"
Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5">
<RadialGradientBrush.GradientStops>
<GradientStop Color="Yellow" Offset="0" />
<GradientStop Color="Red" Offset="0.25" />
<GradientStop Color="Blue" Offset="0.75" />
<GradientStop Color="LimeGreen" Offset="1" />
</RadialGradientBrush.GradientStops>
</RadialGradientBrush>
</Rectangle.Fill>
</Rectangle>
此处的详细信息:http: //msdn.microsoft.com/en-us/library/ms752281 (v=vs.100).aspx
于 2012-05-01T07:34:57.657 回答