WPFとSilverlight 2 Betaで異なるコントロールの階層構造

基本的にはWPFのサブセットとなっているSilverlightのコントロールですが、その階層構造は微妙に異なっています。


WPF



Silverlight 2 Beta



たとえば、WPFの場合UserControlはContentControlの派生クラスですが、Silverlight 2 BetaではControlの派生クラスとなっています。また、フォント関係のプロパティについては、WPFはControlクラスで定義されているのに対して、Silverlight 2 BetaではContentControlで定義されています。


このため、WPFのUserControlではFontFamilyといったプロパティを設定することができますが、Silverlight 2 BetaのUserControlではできません。


他にも、FrameworkElementの派生クラスであるContentPresenterがControlの派生クラスになっていたり、Thumbの派生クラスであるGridSplitterがControlの派生クラスになっていたりと、異なった構造となっている部分がいくつか存在しますので、注意が必要です。


なお、Silverlight 2 Betaの詳細なコントロール階層構造については、下記のblogに掲載されている図が非常に参考になります。

Silverlight Control Hierarchy | Silverlight and other cool things ...