トップページtech
1001コメント283KB

WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part8

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん2010/12/05(日) 22:08:33
あたらしいユーザーインターフェースシステム、Windows Presentation Frameworkについて語るスレ。
.NET4 もリリースされて盛り上がってまいりますた。

Visual Studio 2010
http://www.microsoft.com/japan/msdn/vstudio/
Microsoft .NET Framework 4 (Web インストーラー)
http://www.microsoft.com/downloads/details.aspx?familyid=9CFB2D51-5FF4-4491-B0E5-B386F32C0992&displaylang=ja
Microsoft .NET Framework 4 (スタンドアロンインストーラー)
http://www.microsoft.com/downloads/details.aspx?familyid=0A391ABD-25C1-4FC0-919F-B21F31AB88B7&displaylang=ja

前スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part7
http://hibari.2ch.net/test/read.cgi/tech/1282479113/

関連スレ
Microsoft Silverlight その7
http://hibari.2ch.net/test/read.cgi/tech/1288613056/

過去スレ
Part6 http://hibari.2ch.net/test/read.cgi/tech/1274423236/
Part5 http://pc12.2ch.net/test/read.cgi/tech/1261879110/
Part4 http://pc12.2ch.net/test/read.cgi/tech/1245384489/
Part3 http://pc12.2ch.net/test/read.cgi/tech/1231506876/
Part2 http://pc11.2ch.net/test/read.cgi/tech/1211453941/
Part1 http://pc11.2ch.net/test/read.cgi/tech/1162950198/

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
0809デフォルトの名無しさん2011/02/28(月) 02:34:47.70
XAMLでアニメーション書くのコードに比べたら楽ちんだけど、
アプリの設定項目としてアニメーションを無効にできるようにしたいとき、
どういうふうに書くといいのかな。コードならストーリーボードの追加・削除はわかるんだけど。
0810デフォルトの名無しさん2011/02/28(月) 09:03:20.95
>>809
細かいことはリソースディクショナリとして別のXAMLファイルに分離しておいて
スタイルを入れ替える
0811デフォルトの名無しさん2011/02/28(月) 22:25:55.85
「WinFormのMS Pゴシック 12ptでのTextBox」と、

「WPFのTextBox」
<TextBox Name="textBox1" FontSize="16" AcceptsReturn="True" FontStretch="Normal" FontFamily="MS PGothic" />

の表示に文字幅の差異が生じるのですが、どうすればWinFormと同じように表示できますか?
左がWinFormの望ましい表示で、右がWPFの文字幅がズレた表示です

http://www1.axfc.net/uploader/Img/so/108711.bmp

また、表示しているのは以下の文字列です

|  | 半角で「&emsp;」、全角スペース+半角スペース
| _ | 半角スペース2個+_
| .| 全角スペース+ドット
| . | 半角スペース2個+ドット
| ~| 半角スペース+~
| | 全角スペース
| _| 半角スペース+_
| ゙| 半角スペース+゙
| .| 半角スペース+ドット
|~| 
|..| 
| | 半角スペース
|゙| 
|.| 
| | (「&thinsp;」)
0812デフォルトの名無しさん2011/03/01(火) 00:40:23.77
2chブラウザでも作るの?
GDI+に強く依存した表示だから再現するのは大変。
WinFormsで作ったコントロールをホストするのが一番簡単じゃないかな。
0813デフォルトの名無しさん2011/03/01(火) 05:03:46.42
せめてpngに変換しろw
ttp://tsushima.2ch.at/s/news2ch126984.png
0814デフォルトの名無しさん2011/03/01(火) 05:10:01.30
ttp://tsushima.2ch.at/s/news2ch126990.png
この辺の話か
0815デフォルトの名無しさん2011/03/01(火) 19:56:35.39
MVVMで、*.xaml.csをViewModel用途にしてはいけない理由がよくわかりません。
別途ViewModelを作って、*.xaml.csの中身は空にするというのが。
0816デフォルトの名無しさん2011/03/01(火) 20:00:34.16
そこはコードビハインドを書く部分だからViewだよ
0817デフォルトの名無しさん2011/03/01(火) 20:04:04.06
>>815
コードビハインドに書いてしまうとUIがくっついてくるから単体テストしづらい
VMはプレーンなクラスなので、できるだけそちらに書いておけば単体テストしやすい
それだけ
0818デフォルトの名無しさん2011/03/01(火) 20:17:03.24
初心者はまずMVVMとか気にしないでどんどん書いたらいいと思うよ…
0819デフォルトの名無しさん2011/03/01(火) 20:23:09.76
MVVMするなら、ファイルを開くダイアログを表示してVMで処理するだけでも
IDialogServiceインターフェイスとか作ってDIしたりとか
かなり大掛かりな仕組みが必要になるんだよな
面倒だからといって、絶対にVMから直接ダイアログを開いたりしてはいけない
理由はとにかく「単体テストの邪魔になるから」
そこまでする気がないならMVVMなんか何の意味もないんですよ
0820デフォルトの名無しさん2011/03/01(火) 20:31:51.53
MVVMでも切り離せない部分あるし、何の意味もないは言いすぎのような。
少なくとも個人ならコストかかる部分だけやる選択肢もある。
0821デフォルトの名無しさん2011/03/01(火) 20:37:22.83
じゃあ意味って何?
バインディングは実際>>815で普通に使えるわけでMVVMのメリットではないよ
0822デフォルトの名無しさん2011/03/01(火) 20:39:59.16
1行目だけ読んで書いたのかよ。
相手すんのもアホらしい。
0823デフォルトの名無しさん2011/03/01(火) 20:44:03.43
教条主義なんで
0824デフォルトの名無しさん2011/03/01(火) 20:44:41.21
>>821
意味がわからないうちは*.xaml.csにイベント書いたりしてていいんじゃないの?

そのうちバインド使った方がいろいろ楽できることに気がつくから

その辺が見えない人に利点を説いても無駄
08258152011/03/01(火) 20:50:40.46
概念としてのMVVMがわからないとか、コードビハインドがどうというよりは、
空の*.xaml.csに何の意味があるかがよくわからないという話です。
08268212011/03/01(火) 20:50:40.89
>>824
そうじゃなくて、.xaml.csに書いたらバインディングが使えないというわけではないってこと
ビュー自身のプロパティにバインドすることも普通に可能
>>815の「なぜVMを別のクラスにするのか」という質問に対して、
「バインディングが便利だから」は回答になってないよ
08278152011/03/01(火) 20:52:37.25
>>826
そういう話です、よくわからないのは。
0828デフォルトの名無しさん2011/03/01(火) 20:52:57.80
だからコード書けって
0829デフォルトの名無しさん2011/03/01(火) 20:55:01.51
>>827
ウインドウの*.xamlに書くべきだけど書けない(またはスゲー量になる)部分をコードとしてそこに書くんだと思ってな
0830デフォルトの名無しさん2011/03/01(火) 20:57:03.89
つか>>821は何で突然バインディングなんて言い出したん?
5日前から誰もバインディングの話なんかしてないが
0831デフォルトの名無しさん2011/03/01(火) 20:57:59.23
バインドという仕組みを利用しないと自分でごりごりコード書いて
そのコード全部をテストしないといけないが、バインドをうまく利用すれば
書くコード量も減るので、自分で面倒みる部分もかなり減る

つまりバグの作りこみも減る

この辺は理屈で言ったところで納得しないだろうから
コード書けって言ってる

ネットで転がってるサンプル程度ではなくてもうちょっと大きなのを
0832デフォルトの名無しさん2011/03/01(火) 21:02:00.82
ウィンドウの一部分だけにMVVMパターンを利用しても、全く意味がないってことはないだろう、って話。
別にダイアログ呼んだっていいんだよ。それでトータルコストが浮くのなら。

正義は何だ?MVVMパターンを100%適用することか?
ちげーだろ。
0833デフォルトの名無しさん2011/03/01(火) 21:05:36.66
>>832
>正義は何だ?MVVMパターンを100%適用することか?
バインド使うことを覚えると将棋の最短手を考えるようにバインドだけで何とかできないか?
とコード減らすことばっかり考える奇妙な状態になるけどなw

それだけ便利
0834デフォルトの名無しさん2011/03/01(火) 21:06:04.45
正義(笑)JUSTICE(笑)
0835デフォルトの名無しさん2011/03/01(火) 21:07:00.45
なんか熱くなってるぞ
08368152011/03/01(火) 21:10:15.33
自分が聞きたいこととは少し話が違う方向にいっているので、再度聞きたいことを書きます。
バインドを使わないとか、コードビハインドで書きたいとかいっているわけではなくて、
単純になぜ*.xaml.csとは別のViewModel.csを用意するのかという話です。
*.xaml.csにバインドするプロパティやコマンドを定義しては駄目なの?、っという所が出発点です。
0837デフォルトの名無しさん2011/03/01(火) 21:10:24.83
>IDialogServiceインターフェイスとか作ってDIしたりとか
>かなり大掛かりな仕組みが必要になる

なんてのは確かに手間考えるとどっこいな気もする
0838デフォルトの名無しさん2011/03/01(火) 21:11:53.22
>>836
ぶっちゃけIDEの仕様
0839デフォルトの名無しさん2011/03/01(火) 21:14:48.26
そこに書いたらMVVMにならないから

が一番シンプルな答えじゃないの
最初の質問で「MVVMで」って言ってるんだから
0840デフォルトの名無しさん2011/03/01(火) 21:16:49.64
>>836
バインディング使いたいだけなら別にそれでも構わない
クラスを分けるのは、単体テストのしやすさと
どうせならクラスごと分けてしまったほうが役割分担や設計がはっきりするから
0841デフォルトの名無しさん2011/03/01(火) 21:18:48.43
InitializeComponentを何だと思ってんの?
0842デフォルトの名無しさん2011/03/01(火) 21:21:03.16
思い切りgolden hammer patternに嵌ってんな。
0843デフォルトの名無しさん2011/03/01(火) 21:25:15.20
方法は別にして、ファイルダイアログくらいはUIに依存しないで開けるようにしないとそれこそMVVMにならんよ
それくらいは最低限必要
0844デフォルトの名無しさん2011/03/01(火) 21:27:20.52
かまってちゃんが沸いてるのか
0845デフォルトの名無しさん2011/03/01(火) 21:28:57.42
VからもVM(面倒だからといって、絶対にVMから直接ダイアログを開いたりしてはいけない>>821)からも開かないでどっから開くん?
0846デフォルトの名無しさん2011/03/01(火) 21:31:41.49
Mだろ。
08478152011/03/01(火) 21:32:29.19
- 責務的には*.xaml.csはあくまでViewでしょ
- なので、責務を考えればViewModelは別クラスにするのが当然
- InitializeComponentしかない*.xaml.csが出来ちゃうのは開発環境的な都合
- *.xaml.csが空なのは気にすんな
- 逆に、MVVM的な責務を気にしないなら、*.xaml.csにコマンドやプロパティを定義するのはあり(別にそうやりたいわけではないですが)

っという認識で合っていますでしょうか?
これで合っているのなら、自分的には納得ですが。
0848デフォルトの名無しさん2011/03/01(火) 21:33:33.59
・InteractionRequestでViewに通知してViewのビヘイビアで受けてダイアログ開いてViewModelに結果を返す。
・インターフェイスを被せておいて、その実装クラスでダイアログ開く。VMからはインターフェイス経由で扱う。
ファイルダイアログなら後者のほうがいいと思う
特定のビューでしか使わないダイアログなら前者でもおk
0849デフォルトの名無しさん2011/03/01(火) 21:36:42.17
>>847
>InitializeComponentしかない*.xaml.cs
もしかしてXAMLでイベントハンドラを指定すれば
*.xaml.csにイベントハンドラのコード部分がかかれるんだが・・・

*.xaml.csってWinFormでいうところのForm1.csと同等に扱えるぞ
*.xamlはWinFormでいうところのデザイナーが勝手に書き換えするやつ(名前忘れた)と同等
0850デフォルトの名無しさん2011/03/01(火) 21:45:09.94
俺はコードビハインドにプロパティ書いて、DataContextに入れてバインディングしてるよ。
Modelに関係ない、純粋にViewでしか使わないようなプロパティばかりだからViewModelに
書くってのはなんか違うような気もするし。
0851デフォルトの名無しさん2011/03/01(火) 21:46:43.42
WPFっていってもXAMLで配置した部品に名前付けて
コードビハインド側で名前を頼りにWinFormのころのようにコードを
ごりごり書くってやり方も可能なんだが、そういうのもよくわかってないのかな?
0852デフォルトの名無しさん2011/03/01(火) 21:53:19.86
>>850
>Modelに関係ない、純粋にViewでしか使わないようなプロパティ
ViewModelはそういうのを置くための場所
ViewModelはModelのラッパーじゃなくて文字通りViewのModelなんだよ
08538152011/03/01(火) 21:54:38.29
>>851
いや、さすがにそれは分かっています。
*.xaml.csが空と言っているのは、VMを作ってコマンドやプロパティを定義したり、
Blendでビヘイビアとか使えば*.xaml.csってほとんど空になりますよね、っという話です。
0854デフォルトの名無しさん2011/03/01(火) 21:57:58.54
>ほとんど空になりますよね
そうだよ

WinFormのころはForm1.csにごりごり書いてたビュー関連の
コードを書く必要がなくなる仕組みがあるんだからw

だから何?って話だけど

0855デフォルトの名無しさん2011/03/01(火) 22:00:05.32
>>852
なるほど。
あとはコードビハインドなら初めから依存プロパティを宣言できるってのもある。
ViewModelでもDependencyObjectを継承すればいいけど、ネット上で見つかるViewModel
の実装はなぜかINotifyPropertyChangedの方ばかりだね。
0856デフォルトの名無しさん2011/03/01(火) 22:04:27.17
>>855
モデルが特定の実装技術に依存するのは糞
っていうのが最近の流行りだから
POCOってやつ
0857デフォルトの名無しさん2011/03/01(火) 22:15:36.30
INotifyPropertyChangedを継承するにしてもほぼ定型なので
もうちょっと手抜きさせてもらえないのかねw
微妙に定型をまいど書くのがなんかしっくりこないw
0858デフォルトの名無しさん2011/03/01(火) 23:58:53.47
コードスニペットから初めて自動生成に飽き足らずAOPとかIL書き換えとか
0859デフォルトの名無しさん2011/03/02(水) 00:06:49.04
いろいろあって訳わからなくなるな
0860デフォルトの名無しさん2011/03/02(水) 00:19:55.42
訳分からなくなるなら使わなければいい。
使わなくても作れる。
0861デフォルトの名無しさん2011/03/02(水) 01:09:07.60
INotifyPropertyChanged自体が、依存関係プロバティーの代替えだからね
0862デフォルトの名無しさん2011/03/02(水) 01:18:11.85
INotifyPropertyChangedより依存プロパティの方がパフォーマンスも機能も優れてるけど
ViewModelではなんで使わないの?>>856のいうモデルとは違うだろうし。
0863デフォルトの名無しさん2011/03/02(水) 03:22:05.38
EventTriggerで使えるのはアニメーション要素だけ。
Style.Triggersはいろんなトリガ使える。
FrameworkElement.TriggersはEventTriggerだけ。

このへんの関係がよくわからん。EventTriggerでXAML内でさくっとプロパティ値変えたいのに、
それはハンドラでやれってか。
0864デフォルトの名無しさん2011/03/02(水) 04:58:17.45
複数のViewが必要になった時点でViewModelを作ることにしてる
最初からViewModelも作るのは不必要な抽象化だと思うし
既存コードを再利用する必要があるとかでない限り
ViewModelには依存プロパティすればいいと思う
0865デフォルトの名無しさん2011/03/02(水) 07:13:23.79
実際のところダイアログ部分だけコードビハインドに書いても
テストに大きな影響は無いと思うんだが。
0866デフォルトの名無しさん2011/03/02(水) 09:35:53.69
>>863
トリガは過去の遺物
VisualStateManagerを使う
0867デフォルトの名無しさん2011/03/02(水) 17:03:22.24
>>866
じゃあアニメーションはそれでやる。
イベントに対して(他の要素の)プロパティを変えるのはやっぱコードからしかないか。
ようやくXAMLでできる動的なことの限界が見えてきた気がする。
0868デフォルトの名無しさん2011/03/02(水) 19:41:03.74
>>867
一瞬で終わる離散キーフレームのアニメーションにする
0869デフォルトの名無しさん2011/03/02(水) 20:15:51.25
アニメーション適用してるプロパティに直接値入れてもアニメーションがプロパティ値を上書き
してる状態なので、アニメーションを削除しないとその値は有効にならない。
アニメ化したいプロパティはユーザーの希望でアニメーション無効にしてても、
実装自体は終始アニメーションで固めてしまったほうがいいってことかなあ。
0870デフォルトの名無しさん2011/03/03(木) 00:52:02.94
見た目に関する遷移は全部アニメーションでいい
Blend使うとそんな感じになる
論理的な状態の変化はVMかコードビハインドで
0871デフォルトの名無しさん2011/03/04(金) 15:29:43.00
VisualStateManagerの使い方が謎
0872デフォルトの名無しさん2011/03/04(金) 15:30:56.19
>>871
え・・・
そんなに難しくはないだろ
0873デフォルトの名無しさん2011/03/04(金) 15:43:45.76
XAMLで困るのは構文だな
やっぱBlend依存でやるしかないのかな?
どうもBlendいやなんだよな・・・
0874デフォルトの名無しさん2011/03/04(金) 17:16:29.68
嫌なら手書きでやれば
0875デフォルトの名無しさん2011/03/05(土) 22:13:21.54
アニメーションというか画像処理みたいなのしたいなぁ
画像にぼかしかけたり、モザイクとアニメーションを同時にやるとか

そういうのは結構難しいんだよな
0876デフォルトの名無しさん2011/03/05(土) 22:16:00.80
>>875
XAMLだけでやろうとしなければそれほどでもなくね?
一旦コードビハインド側でコード書いてXAMLに直せそうならやってみればいいし
0877デフォルトの名無しさん2011/03/05(土) 22:16:06.68
そういうのはピクセルシェーダを使う
仕組みが分かれば超簡単でクソ速い
0878デフォルトの名無しさん2011/03/05(土) 22:21:06.22
>>875
Effectじゃだめじょん?
0879デフォルトの名無しさん2011/03/05(土) 22:23:02.88
>>875
http://wpffx.codeplex.com/
ピクセルシェーダのサンプル
0880デフォルトの名無しさん2011/03/06(日) 08:30:27.44
>>871
Blend 使えば簡単なんだけどね。
Visual Studio のライセンスで Blend 自由に使えればいいのに・・・
0881デフォルトの名無しさん2011/03/06(日) 08:33:51.09
パワーマシン上で仮想マシン構築して90日間のお試しを・・・

実行するかどうかはあなた次第
というかそんなに難しいか?

というかそういうtipsサイトってないのかな?

みんなツール依存なの?
0882デフォルトの名無しさん2011/03/06(日) 16:37:22.47
MVVMのコマンド内で、処理分岐してWindow クローズするか、別Window起動するか、もしくはメッセージ表示して処理抜けるか考えてみたけど、
Windowクローズするならイベントハンドラにしないと無理そうなんだと思うんですが、どうよ?
0883デフォルトの名無しさん2011/03/06(日) 16:45:25.31
>>881
きっちりMVVM的にやるなら、
PrismのInteractionRequestなりMVVM LightのMessengerなりつかって
VMからViewへメッセージ投げるべき。

View 内に完結してやるにしても、
Button.Click とかのイベントハンドラーで Close() するのはいまいちで、
Button.Command に ApplicationCommands.Close を指定した上で、
CommandBindings で Close() する方がいいと思う。
0884デフォルトの名無しさん2011/03/06(日) 17:01:13.76
>>882
インターフェイスを使うのもアリ
interface IWindowService {
void CloseWindow(string windowName);
void ShowWindow(string windowName);
}
例えばこういうのを実装してViewModelのIWindowService型のプロパティに渡しておく
これだとウィンドウ剥き出しすぎるからもうちょっと抽象的な名前のほうがいいかもしれん
メッセージよりはわかりやすくて使い回しも利く
0885デフォルトの名無しさん2011/03/08(火) 10:09:04.22
メニューに割り当てるショートカットキーについて質問です。

↓みたいにXMLファイルをバインディングするのと
<MenuItem Header="{Binding Source={StaticResource Strings},XPath=String[@name\=\'menu1\']/@value}" >

↓みたいにショートカットを指定するのを両立させるにはどうしたらいいでしょうか?
<MenuItem Header="File(_F)"/>
0886デフォルトの名無しさん2011/03/08(火) 10:42:16.42
ファイル分けたいだけなんだったら
そのXMLファイルをResourceDictionaryのXAMLにすればいい
XAMLが嫌で俺XMLで書きたいなら
XSLTでXAMLに変換するとかXLINQでコードでMenuItem作るとか
メニューなんてアプリ中にいくつもあるもんじゃないんだから、
悩んでる暇があったらそれくらいコード書け
0887デフォルトの名無しさん2011/03/08(火) 11:59:57.33
ウィンドウに貼り付けた画像の指定色を透過させるにはどうすればいいんですか?

C#

Window2 w2 = new Window2();

Background = Transparent;
AllowsTransparency = true;
OpacityMask = White;

w2.Show();


XAML

<Grid>
<Image Source="test.jpg" />
</Grid>

これでtest.jpgの画像で白い部分を透過させたいんですが透過しません
jpgもC#で違う画像を指定して入れ替えて使いたいんですが、どう書けば良いんですか?
0888デフォルトの名無しさん2011/03/08(火) 12:09:23.63
OpacityMaskはそのブラシでコントロール全体を塗りつぶしたと仮定したときのアルファチャンネルの値が
コントロールの透明度として使われるというもの。特定の色を透明にするというようなことはできない。
だいたい、jpgは白で塗りつぶしても正確に白にはならないのでそういう用途には不向き。
アルファPNG使いましょう。
0889デフォルトの名無しさん2011/03/08(火) 12:09:42.54
jpgの白く見える部分は白じゃない
0890デフォルトの名無しさん2011/03/08(火) 12:30:39.62
すげーかっこいいーできたありがとう!
0891デフォルトの名無しさん2011/03/08(火) 12:56:49.74
WPFは結局流行らなかったね
0892デフォルトの名無しさん2011/03/08(火) 13:13:47.25
マイブームきてんよ
0893デフォルトの名無しさん2011/03/08(火) 13:16:14.57
ほんまにね
0894デフォルトの名無しさん2011/03/08(火) 13:16:25.75
XPが消える頃に流行りはじめるんじゃね
0895デフォルトの名無しさん2011/03/08(火) 14:12:27.70
なんでWPFはゲームに向かないの?
サンプルにゲームがあるんだけど
0896デフォルトの名無しさん2011/03/08(火) 14:14:27.69
WPFが流行らない理由

Microsoftが「かっこいい見た目」を前面にだしすぎたため
「かっこいいのを作るだけが目的」と誤解されている

C#だけでなく、ザムルも覚える必要がある

勉強ページや勉強本が少なく、自分で考えても車輪の再発明よりむしろ劣化にしかならない
0897デフォルトの名無しさん2011/03/08(火) 14:26:18.40
業務で使いそうなDataGridなんか特に重い
JavaのJTableは重くならないために中はコンポーネントじゃなくて独自実装になってるというに
WPFのはスクロールしただけで中のコンポーネントの幅をみな再計算するため酷い重さ
0898デフォルトの名無しさん2011/03/08(火) 14:47:31.55
>>895
ゲームの描画なんて画像と文字と線を指定位置に描画することさえできれば充分なので
Direct3DやXNAのような低レベルなAPIでも無問題だから
Silverlightならクロスプラットフォームだしブラウザ上で動かせるのでメリットはあるが
WPFでゲームを作るメリットはない
ベクターベースのゲームならメリットはあるかもしれないけどね
0899デフォルトの名無しさん2011/03/08(火) 14:53:18.36
>>896
またオサレGUIかw
0900デフォルトの名無しさん2011/03/08(火) 15:12:57.98
表現力と聞いてRIAに対するflasherと同じ発想しかできないのが悲しい。
0901デフォルトの名無しさん2011/03/08(火) 15:34:31.13
業務向けの便利コントロールは完全にSilverlight優先
WPFの次のバージョンではSilverlightのホスティングに対応するらしいから、
いずれはWPFのUIといえばウィンドウいっぱいにSilverlightHostコントロールを貼り付けただけになるんだろうなw
0902デフォルトの名無しさん2011/03/08(火) 15:41:54.19
>>901
>WPFのUIといえばウィンドウいっぱいにSilverlightHostコントロールを貼り付けただけになるんだろうなw
それでいいと思うよw
0903デフォルトの名無しさん2011/03/08(火) 15:45:03.42
.NET Frameworkのサブセットの機能で十分なやつはSilverlightでいいよ。
0904デフォルトの名無しさん2011/03/08(火) 15:48:22.00
描画と入力だけSilverlight使えばいいわけでしょ
SilvelrightはActiveXコントロールとしてホスティングできるから、
フルセットの.NETからSilverlightのVisualTreeを操作できるように橋渡ししてやればいいだけ
現在のSilverlight4+.NET4でも実現は難しくないはず
0905デフォルトの名無しさん2011/03/08(火) 16:33:17.89
Blendのストーリーボードで卵を消しても範囲だけ残るんですがこれはどうすれば消えますか?
0906デフォルトの名無しさん2011/03/08(火) 20:30:00.92
<Style TargetType="Button">...

みたいにx:Keyを付けないと
private void Button_Click(object sender, RoutedEventArgs e)
{
var resource = (ResourceDictionary)Application.LoadComponent(new Uri("Dictionary1.xaml", UriKind.Relative));
grid.Resources = resource;
}
のように動的にリソースを入れ替えても瞬時に切り替わるけど、
x:Keyを明示的に付けてStaticResourceとして参照してると切り替わらない(DynamicResourceならOK)。
x:Keyを付けないときはDynamicResourceと同じ扱いになるのかな?
0907デフォルトの名無しさん2011/03/08(火) 20:57:37.77
>>895
正確には、アクションゲームみたいなフレームごとに描画しなおすタイプのゲームに向かない。
WPFはイベント駆動で画面再描画することを前提にパフォーマンス最適化されてる。
0908デフォルトの名無しさん2011/03/08(火) 22:54:21.15
>>896
実際、資料が少ないのが厳しいな
WPF解説してるサイトとかほとんどないし、とっかっかりが無い
Googleで「WPF 入門」で検索しても、1ページ(10件)目に出てくるのは
上から順に

企業サイト
http://www.atmarkit.co.jp/fdotnet/chushin/introwpf_index/index.html
http://msdn.microsoft.com/ja-jp/library/ms771449(v=vs.80).aspx
http://codezine.jp/article/detail/910
http://codezine.jp/article/detail/928

個人サイト
http://d.hatena.ne.jp/hilapon/20100520/1274374572
http://z80a.blog48.fc2.com/blog-category-38.html
http://blogs.wankuma.com/kzt/category/2039.aspx

これくらいしか有用なページ無いもんな
2ページ以降は似たようなちょっとした情報ばかりだし
レス数が900を超えています。1000を超えると表示できなくなるよ。