何が問題か:分離コードを使って

XAML と比べて、分離コードを素の IronPython(--before--)で記述すると、冗長になりがちです。そこで、これを拡張した IronPython(--after--)で記述したものとを比較検討します。

# apeStackPanel.py ------------------------------------ before ---
parent = StackPanel(
Orientation=Orientation.Horizontal, ...)
child = StackPanel(Orientation=Orientation.Vertical)
parent.Children.Add(child)

# catStackPanel.py ------------------------------------ after ----
parent = ExStackPanel(None,
orientation="Horizontal", ...)
child = ExStackPanel(parent, orientation="Vertical")

分離コードでは、プロパティー Orientation= の値を指定するときには、静的プロパティー Orientation.Vertical を指定する必要があります。このとき、XAML と同様に文字列を指定できると便利です。そこで、新たにキーワード orientation= を導入して、その値に文字列 "Horizontal" を指定できるようにします。
分離コードでは、親子関係を築くのに、親要素のプロパティー Children を介して、子要素を追加 Add する必要があります。このとき、XAML と同様の入れ子構造を指定できると便利です。そこで、新たな引数を導入して、子要素を生成するときに親要素 parent を指定できるようにします。ただし、親要素が不要なら、None を指定します。

# apeStackPanel.py ------------------------------------ before ---
e = Button(Content="red")
child.Children.Add(e)

# catStackPanel.py ------------------------------------ after ----
ExButton(child, "red")

分離コードでは、ボタンに表示する文字列を指定するときに、プロパティー Content= を利用する必要があります。このとき、XAML と同様に文字列だけで指定できると便利です。そこで、キーワードを省略すると、表示する文字列を指定したものと見なされるようにします。