2

XAML / C#Metro-Styleアプリで放射状のグラデーションの背景を描画する(色を変更することもできる)簡単な方法は何でしょうか?DirectXを使用することはオプションですか?Windows 8 Consumer Preview用のSharpDXサンプルをいくつか見てみましたが、コンパイルできませんでした。Windows 8のC#でDXを使用する他のサンプルは見つかりませんでした。何かアイデアはありますか?

4

3 に答える 3

2

SharpDxを使用してこのハードルを克服し、RadialGradientで満たされた背景を作成しました

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

于 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 に答える