地铁风格应用程序中的简单径向渐变背景

本文关键字:渐变 背景 简单 风格 应用程序 地铁 | 更新日期: 2023-09-27 18:32:36

XAML/C# 地铁样式应用中绘制径向渐变背景(也可以更改其颜色)的简单方法是什么?使用 DirectX 是一种选择吗?我尝试查看Windows 8 Consumer Preview的一些SharpDX示例,但未能编译它们。没有找到在 Windows 8 上的 C# 中使用 DX 的任何其他示例。有什么想法吗?

地铁风格应用程序中的简单径向渐变背景

RadialGradientBrush 尚未添加到 XAML 堆栈中。您可以使用 WriteableBitmapEx 自己将渐变绘制到 WriteableBitmap,然后使用 Image 或 ImageBrush 显示它 - 尽管如果您有许多元素想要使用不同形状的渐变,这可能会非常慢。

您可以只使用在Photoshop或 Paint.NET 中创建的常规图像。

使用 DirectX

可能太复杂且并非真正必要,但您可以将 DirectX 与 XAML 混合使用。如果你真的想去那里 - 你可能需要使用SurfaceImageSource。这里有一个关于MSDN的基本介绍,或者在这里查看一个SharpDX示例。你可能还希望使用 Direct2D 呈现到该图面,因此需要混合使用相当多的技术。

我使用SharpDx克服了这个障碍,并为我创建了一个RadialGradient填充的背景

http://advertboy.wordpress.com/2012/05/20/radial-gradients-mini-path-geometry-sprites-infinite-scrolling-inertial-canvas/

向渐变画笔已经存在了很长一段时间 - 我想我第一次使用是在 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