Silverlightで使い回しうんぬんはまだ難しい?

ピンポイントな話題ながらSilverlightとWPFの大きな違いを垣間見ることができたのでまとめてみました
2
遥佐保 @hr_sao

普通の人は必要ないけど、わたしには必要。SLで作ったXAMLを増やす方法 : LayoutRoot.Children.Add(XAMLのnewしたクラス);

2010-12-13 01:45:03
++C++; // 管理人: 岩永 @ufcpp

@hr_sao XAMLを増やす?XAML中で書いたUI要素のクローンを作るってことですか?

2010-12-13 01:49:42
遥佐保 @hr_sao

多分そうかなぁ?xamlのGridにLayoutRootの名前の場合がさっきのん。例えばa.xamlが玉の絵。それを画面いっぱいで花火みたいに使うとかしたい。RT @ufcpp: @hr_sao XAMLを増やす?XAML中で書いたUI要素のクローンを作るってことですか?

2010-12-13 01:53:33
++C++; // 管理人: 岩永 @ufcpp

@hr_sao WPFならDrawingをリソースに持っておいて、DrawingImage作るとかでできそうなものの、今調べてみたらSilverlightにはない… 都度XAMLをロードってことになりそうな予感が。

2010-12-13 02:02:38
遥佐保 @hr_sao

都度ロード?RT @ufcpp: @hr_sao WPFならDrawingをリソースに持っておいて、DrawingImage作るとかでできそうなものの、今調べてみたらSilverlightにはない… 都度XAMLをロードってことになりそうな予感が。

2010-12-13 02:06:47
遥佐保 @hr_sao

@ufcpp 初回だけ使う予定だよー あとは透明度を操作して使いまわしww

2010-12-13 02:07:06
遥佐保 @hr_sao

@ufcpp でも知らなかった。WPFは出来るのか。。。ちょっとくやしい。ちなみに、300個くらいロードしたら、結構重いです。画像張ったりしてるんだけど、早いPCでないと、画面が引きつるwww

2010-12-13 02:09:19
++C++; // 管理人: 岩永 @ufcpp

@hr_sao WPF/Silverlightのビジュアルツリーって同じインスタンスを2度以上Children.Addできないので、インスタンスはクローンしないと使いまわせず。同じ花火を何個も表示する場合は、同じファイルを何度もロードして、別インスタンスを作らないとダメかも。

2010-12-13 02:10:14
++C++; // 管理人: 岩永 @ufcpp

@hr_sao いっそ、一度WriteableBitmapに描画して、それを使いまわすとかがいいかもしれないです。BitmapSourceはVisualじゃないので使いまわし可能だったはず。

2010-12-13 02:11:29
遥佐保 @hr_sao

ええええー??そうなの??そりゃ困るよー><RT @ufcpp: @hr_sao WPF/Silverlightのビジュアルツリーって同じインスタンスを2度以上Children.Addできないので、インスタンスはクローンしないと使いまわせず。

2010-12-13 02:12:48
遥佐保 @hr_sao

そ、そんな凝ったことしないと、使いまわせないの??? RT @ufcpp: @hr_sao いっそ、一度WriteableBitmapに描画して、それを使いまわすとかがいいかもしれないです。BitmapSourceはVisualじゃないので使いまわし可能だったはず。

2010-12-13 02:13:59
++C++; // 管理人: 岩永 @ufcpp

@hr_sao そのためのDrawingなんですけどもねぇ<ベクター画像の使いまわし。Silverlightになかったのは結構衝撃。

2010-12-13 02:16:59
++C++; // 管理人: 岩永 @ufcpp

@hr_sao まあ、Flashなんかでもビットマップ化してキャッシュしておかないとパフォーマンス出ないんですけども。Flashに至っては、テキスト描画すらそのままだと遅いから一度ビットマップ化しておくこと推奨とかだったはずで。

2010-12-13 02:17:41
遥佐保 @hr_sao

@ufcpp @ufcpp 1画面のみだったら今のやり方でも出来るけど、別画面になったらChildren.Addできない。なのでWriteablebitmpを使って画像をオンメモリに置いておく。このbitmap、ちゃんと加算処理してくれるかな??綺麗に重なって欲しいんですよぉ

2010-12-13 02:20:42
遥佐保 @hr_sao

@ufcpp ま、そもそもSilverlightはゲームに向いてないから、仕方がないかぁ。。(Drawingなし、つまり使いまわしという発想がない)

2010-12-13 02:23:00
++C++; // 管理人: 岩永 @ufcpp

@hr_sao WriteableBitmapはちゃんとαチャネル持てたと思います。

2010-12-13 02:23:27
++C++; // 管理人: 岩永 @ufcpp

@hr_sao いや、むしろFlashリスペクトかとw<ビットマップキャッシュ化しとけよというお達し。

2010-12-13 02:24:43
遥佐保 @hr_sao

今調べました!アルファ持ってますネ! RT @ufcpp: @hr_sao WriteableBitmapはちゃんとαチャネル持てたと思います。

2010-12-13 02:25:20
遥佐保 @hr_sao

あぁ、処理しようという気になれない。。こんな基本的なところで苦労するなんて。。結局は手作業かいっ!って突っ込みたくなる RT @ufcpp: @hr_sao いや、むしろFlashリスペクトかとw<ビットマップキャッシュ化しとけよというお達し。

2010-12-13 02:28:59
++C++; // 管理人: 岩永 @ufcpp

@hr_sao 今、WPFの未来を感じましたw まあ、あと、Silverlightがクロスプラットフォームの優先度下げたのは、その辺りのパフォーマンスとクロス対応が両立しないからってのもあると思います。

2010-12-13 02:33:12
遥佐保 @hr_sao

ほんまやねぇwwひとまずレスありがとうございまーす♪ RT @ufcpp: @hr_sao 今、WPFの未来を感じましたw まあ、あと、Silverlightがクロスプラットフォームの優先度下げたのは、その辺りのパフォーマンスとクロス対応が両立しないからってのもあると思います。

2010-12-13 02:36:55
++C++; // 管理人: 岩永 @ufcpp

Silverlightがどんどん高機能化してるといっても、たぶんあと2・3バージョンくらい(数年スパン)はWPFに分があるなぁ。こないだ出てた5の情報を以てしてもまだまだ。だいぶ楽さが違う。

2010-12-13 03:01:25