しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

Silverlight 探検

We are sorry, the page you requested cannot be found.
を入れて Silverlight 開発を試してみました。クラスの数やメソッドなど細かいところで違いがあったので、思ったより戸惑いました。
一番戸惑ったのは、アタッチプロパティかもしれません。WPF では

Canvas.SetLeft(obj, 10);

Canvas の静的メソッドを使って書けますが、Silverlight には Canvas.SetLeft などのメソッドがないので

obj.SetValue(Canvas.LeftProperty, 10);

と書く必要がありました。XAML では変わらず書けます。
後は、System.Threading.Thread は用意されてるんですが、UIElement を別スレッドから叩く方法が見つからなかったり。WPF では

Dispatcher.Invoke(...);

のように Dispatcher 経由で叩けてたんですが、ちょっと見つけられませんでした。
ちょっと触ってみた感想としては、レイアウトシステムが WPF と違いすぎる*1ので慣れてると面倒ですが、やはり C# でロジックを書けるってのが大きいですね。
追記
大事なことを忘れてました。内蔵フォントに日本語が存在しないらしいので表示できません、表示するには画像にするかグリフを持つしか方法がないみたいです。
メニューなど固定の場合は画像にしてもいいんですが、動的に扱う必要がある場合は 2.0 を待つしかなさそうです。

*1:Grid など Canvas 以外のパネルがない。