aGrid
または aDockPanel
を使用してから、Line
またはを使用Rectangle
して 4 つの塗りつぶされた異なる領域を作成することができます。ただし、この場合は RadialGradient を使用できません。これは、伸びて見栄えが悪くなるためです。したがって、代わりに、必要な 4 つの異なる方向に卒業するように設定された 4 つの異なる LinearGradients を作成することもできます。 ..そして、これはそれをしません。
そう...
...GradientPath
パスに沿ってグラデーションを描画する方法を知っているこのコントロールを試してみることができます。
注意してください、私はそれに多くの時間を費やすことができなかったので、それを適切に使用する方法を考え出していませんでした.長方形の開始キャップと終了キャップは完全に正しくありません.
RectangleGeometry の代わりに PathGeometry を使用しても、同じ問題が発生することに注意してください。
考えられる回避策の 1 つは、GradientPath を使用して 2 つの四角形を作成し、(適切なクリップ定義を使用して) 対角線で切り取り、それぞれが四角形の適切な部分 (つまり、開始/終了アーティファクトなし) に寄与するようにし、それらをオーバーレイすることです。グリッドで。
または、GradientPath コードを掘り下げることもできます。
このアプローチを採用したい場合は、いくつかのアイデアが得られるはずです...そして、自分の好きなようになるまで、自由に遊んだり実験したりしてください。
<gpl:GradientPath Name="gradientPath2"
StrokeThickness="30"
>
<gpl:GradientPath.Data>
<RectangleGeometry Rect="0,0,200,200" />
</gpl:GradientPath.Data>
<gpl:GradientPath.GradientStops>
<GradientStop Offset="0" Color="Blue" />
<GradientStop Offset="0.5" Color="Red" />
<GradientStop Offset="1" Color="Green" />
</gpl:GradientPath.GradientStops>
</gpl:GradientPath>
