マークアップと分離コード:LinearGradientBrush

マークアップと同様の結果が得られる、分離コードについて解説します。


<!-- exBrush.xaml -->


<Ellipse
Stroke="Blue" StrokeThickness="2"
Width="100" Height="50">







<Polygon
Stroke="Blue" StrokeThickness="2"
Points="0,28 80,28 12,80 40,0 68,80">









マークアップでは、<LinearGradientBrush ... に続いて、さまざまなプロパティーを指定します。これを分離コードでは、次のように記述します。


# exBrush.py
def _linearGradientBrush(self):
brush = LinearGradientBrush()
for color, offset in [
("Yellow", 0.0), # follow me ..)^.^)
("Green" , 1.0),
]:
brush.GradientStops.Add(GradientStop(
Color=getattr(Colors, color),
Offset=offset,
))
return brush

複数の GradientStop を指定すると、グラデーションの変化を制御できます。ここでは、Yellow/Green の2つを指定しているだけなので、その間を連続的に変化します。試しに、コメント # follow me ... )^.^) のある行に続いて、任意の項目を追加してみると、その違いが分かります。
マークアップでは、文字列("Yellow" など)を使って色情報を指定できますが、分離コードでは、クラス属性(Colors.Yellow など)を使って指定する必要があります。


Previous|1/5|Next