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

WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2009/12/27(日) 10:58:30
あたらしいユーザーインターフェースシステム、Windows Presentation Frameworkについ
て語るスレ。.NET3.5 SP1 もリリースされて盛り上がってまいりますた。

Visual Studio 2008
ttp://www.microsoft.com/japan/msdn/vstudio/
Microsoft .NET Framework 3.5 Service Pack 1
ttp://www.microsoft.com/downloads/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=ja
WPF Toolkit - June 2009 Release
ttp://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29117
Visual Studio 2010
ttp://www.microsoft.com/japan/msdn/vstudio/2010/overview/

関連スレ
Microsoft Silverlight その4
ttp://pc12.2ch.net/test/read.cgi/tech/1244812356/

過去スレ
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
ttp://pc12.2ch.net/test/read.cgi/tech/1245384489/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
ttp://pc12.2ch.net/test/read.cgi/tech/1231506876/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング
ttp://pc11.2ch.net/test/read.cgi/tech/1211453941/
【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】
ttp://pc11.2ch.net/test/read.cgi/tech/1162950198/
0226デフォルトの名無しさん2010/02/02(火) 13:45:51
MVVMって流行だけどさ、
例えば、読み込むModelが複雑かつ長大な入れ子構造になっている様なとき、
ViewModelを作るコーディング時間と、実行時のコストって大変なものになると思うけど、
それでも分離しなくてはならないの?
0227デフォルトの名無しさん2010/02/02(火) 14:05:59
>>226
テストによる品質保持にかかるコストがそれらを上回るなら。
0228デフォルトの名無しさん2010/02/02(火) 14:19:23
ModelがINotifyPropertyChangedをしっかり実装してるなら、
そのままか同型のコピーをViewModelやViewに引き回しても問題ない。
0229デフォルトの名無しさん2010/02/02(火) 15:40:50
最近はそれを見越して始めから依存関係プロパティ付けて実装することが多いな・・・
0230デフォルトの名無しさん2010/02/02(火) 22:04:52
WPFはまだ仕事では使ってないけどみんなはどう?
0231デフォルトの名無しさん2010/02/02(火) 22:12:19
当分縁がなさそう。
クライアントアプリを開発する案件がそもそも無いっす。
0232デフォルトの名無しさん2010/02/04(木) 01:28:18
クライアントアプリを開発する人に聞いてるんだと思うよ
0233デフォルトの名無しさん2010/02/04(木) 06:35:44
そういう人が居ないんじゃない?
0234デフォルトの名無しさん2010/02/04(木) 07:04:51
よく”まだ”使ってませんって聞くけどいつになったら使う日が来るんですか?
0235デフォルトの名無しさん2010/02/04(木) 08:21:35
VS2010、.NET4のbetaがとれたくらいか、
VS2010SP1、.NET4.5がでるころ
0236デフォルトの名無しさん2010/02/04(木) 08:24:51
Win2kが根絶されるまでは無理ぽ
0237デフォルトの名無しさん2010/02/04(木) 13:34:40
タブページとかXPで表示するとひどい目に遭うけどね
0238デフォルトの名無しさん2010/02/04(木) 20:00:09
NT6が天下を取る頃
0239デフォルトの名無しさん2010/02/05(金) 01:12:51
楽だから選択権があれば使ってるよ
でも重いから客には嫌われてるみたい
0240デフォルトの名無しさん2010/02/05(金) 02:22:05
directx9が満足に動かないビジネス機じゃ重いかもな
0241デフォルトの名無しさん2010/02/05(金) 07:52:21
・・ということは私を含めみんな趣味レベルでWPFやってるってことか・・・。
主流になってくれとまでは言わんが、日の目を見ることなく自然消滅ということにはならんことを祈る
0242デフォルトの名無しさん2010/02/05(金) 08:45:02
いや、趣味レベルでやってるのはあんただけだとおもうぞw
0243デフォルトの名無しさん2010/02/05(金) 09:12:23
VS2010、Expression Encoder 3、Evernoteとかビジネスアプリの事例も増えてきてる
0244デフォルトの名無しさん2010/02/05(金) 09:33:08
MDXやXNA臭がするのは事実
0245デフォルトの名無しさん2010/02/05(金) 09:38:54
> XNA臭
するするwwww
0246デフォルトの名無しさん2010/02/05(金) 09:42:25
わざわざageて自演ですか?
0247デフォルトの名無しさん2010/02/08(月) 22:32:50
>>228
そこまでやったら、Modelを直接バインドしたいなw
0248デフォルトの名無しさん2010/02/08(月) 22:49:34
エッセンシャルWPFのP324にあるTreeViewとHierarchicalDataTemplateの
例がさっぱり分かんねーーーーー。
Binding Path='.'ってなんぞ。
0249デフォルトの名無しさん2010/02/08(月) 22:58:47
そこにバインドされているDataContext自体。
0250デフォルトの名無しさん2010/02/08(月) 23:01:54
綺麗さよりもスピード重視したWPFがあればいいのに
0251デフォルトの名無しさん2010/02/08(月) 23:02:37
DirectXで直接ゴリゴリやればいいじゃん
0252デフォルトの名無しさん2010/02/08(月) 23:10:06
DirectXわかんない
0253デフォルトの名無しさん2010/02/08(月) 23:14:50
WPFはバインドで動的にリフレクションの黒魔術で
エロイムエッサイムしている時点でどうがんばっても速度は限界があるだsろ。
0254デフォルトの名無しさん2010/02/08(月) 23:17:57
フレームワーク全体としてはともかく描画だけなら速くできるだろ
そこ分離するためにDrawingみたいなちょっと低レベルなレイヤがあるんだから
0255デフォルトの名無しさん2010/02/08(月) 23:35:42
>>247
そこまでやったら、俺のItemを美人Modelに直接バインドしたいなw
0256デフォルトの名無しさん2010/02/09(火) 00:10:06
面白いと思って書いてるんだろうか
0257デフォルトの名無しさん2010/02/09(火) 00:17:26
たくさんレス付いてると思ってわくわくしながらリロードしてるんだろな
0258デフォルトの名無しさん2010/02/09(火) 00:28:51
少しつれた...
0259デフォルトの名無しさん2010/02/09(火) 00:30:59
今時こんなレスでも釣れたって言うのか
0260デフォルトの名無しさん2010/02/09(火) 05:07:34
十分大漁です(´・ω・`)
0261デフォルトの名無しさん2010/02/09(火) 06:08:29
>>249
DataType="{x:Type io:DirectoryInfo}"で指定した型をコンバーターで返しているから、
返ってきたDirectoryInfo[]もHierarchicalDataTemplateの対象になってるってことですか?
IsExpandとかどう処理してんのか謎。

snipet
<UserControl.Resources>
<HierarchicalDataTemplate DataType="{x:Type io:DirectoryInfo}">
<HierarchicalDataTemplate.ItemsSource>
<Binding Path='.'>
<Binding.Converter>
<local:GetFileSystemInfoConveter />
</Binding.Converter>
</Binding>
</HierarchicalDataTemplate.ItemsSource>
<TextBlock Text="{Binding Path=Name}" />
</HierarchicalDataTemplate>
</UserControl.Resources>

<TreeView ItemsSource="{Binding}" />
0262デフォルトの名無しさん2010/02/09(火) 06:58:15
> <HierarchicalDataTemplate DataType="{x:Type io:DirectoryInfo}">
> <HierarchicalDataTemplate.ItemsSource>
> <Binding Path='.'>
型を返しているんじゃなくて、DataType=...は、「この型を表示要素に変換するDataTemplateだよ」と書いているだけ。
リソースに書いてあるデータテンプレートがあれば、明示的にデータテンプレートを書かなかった場合に
その型のインスタンスをバインドしたときに自動的に適用される。

> 返ってきたDirectoryInfo[]もHierarchicalDataTemplateの対象になってるってことですか?
このコンバータはDirectoryInfoから、IEnumerable<DirectoryInfo>に変換するのかな?
ならば、上と同様に型が一致すれば適用される。あとは再帰的に。
0263デフォルトの名無しさん2010/02/09(火) 10:40:42
>>262
後出しになってすいません。
コンバータはreturn ((DirectoryInfo)value).GetDirectories();です。
レスありがとうございます。理解が進みました。
0264デフォルトの名無しさん2010/02/10(水) 00:48:39
VS2010RC出たね
WPFは作る方は楽なんだろうけど
使う方から見ると悪夢だな
0265デフォルトの名無しさん2010/02/10(水) 00:50:17
>>264
そう?
0266デフォルトの名無しさん2010/02/10(水) 10:30:27
VS2010に関して言えばレンダリングにWPF使ってるだけなので
WPFだから特に楽って事もないだろう
0267デフォルトの名無しさん2010/02/10(水) 15:12:52
WPFでフリーソフト作ってるけどWinXPは動作保障外にしてる
間違ってないよね俺
0268デフォルトの名無しさん2010/02/10(水) 15:19:44
>>267
間違ってます
0269デフォルトの名無しさん2010/02/10(水) 15:21:37
フリーソフトで動作保証なんてあるんか?
0270デフォルトの名無しさん2010/02/10(水) 15:24:47
>>269
上手く動かなくても知らんってこと
0271デフォルトの名無しさん2010/02/10(水) 15:46:09
フリーソフトなんだから好きにしたらいいよ
0272デフォルトの名無しさん2010/02/10(水) 19:30:19
XPなんて臭いもん外すだろ…>>267は正しい
0273デフォルトの名無しさん2010/02/10(水) 19:33:19
WPFを使っているとXPとVista/7で細かい部分で挙動が違うことがままあるからなぁ…
XPを保証外ってのは賢明だな。
0274デフォルトの名無しさん2010/02/10(水) 19:36:04
XPは臭いのか

まあそれはいいとして確かにXP->Vistaでかなり変わってるからなあ
0275デフォルトの名無しさん2010/02/10(水) 20:59:02
そろそろ保証外にしてもいいんじゃないの?フリーソフトなら。
仕事だとなかなかそうはいかんかもしれないけど。
0276デフォルトの名無しさん2010/02/10(水) 21:43:12
>>266
VS2010で再変換が使えるようになったのはWPF採用のおかげだと思う。
0277デフォルトの名無しさん2010/02/10(水) 21:54:37
再変換って?
0278デフォルトの名無しさん2010/02/10(水) 21:56:43
え?
0279デフォルトの名無しさん2010/02/10(水) 21:59:35
再変換って言われてもIMEの再変換くらいしか思いつかない
0280デフォルトの名無しさん2010/02/10(水) 22:11:42
違うのか?
0281デフォルトの名無しさん2010/02/10(水) 22:26:36
VS2010で再変換できるのがそんなにうれしいのかなと
0282デフォルトの名無しさん2010/02/12(金) 15:11:04
WPFで、Silverlightアプリをホストできますか?
0283デフォルトの名無しさん2010/02/12(金) 16:43:40
できるよ
0284デフォルトの名無しさん2010/02/12(金) 20:12:47
codeplexにあったな
0285デフォルトの名無しさん2010/02/17(水) 15:39:06
マウスクリックしてPopup表示するのどうすればいいんだ?
最初から表示させとくことしかできないの?
0286デフォルトの名無しさん2010/02/17(水) 15:57:18
tooltipなのかダイアログかはっきり汁
0287デフォルトの名無しさん2010/02/17(水) 16:03:08
Popupクラスだよ
イベントハンドラかいて出来たけど
0288デフォルトの名無しさん2010/02/18(木) 13:05:12
DataGridで右寄せにするにはどうすればいいですか?
あるサイトにあった

<Style x:Key="NumberColumnStyle" TargetType="{x:Type my:DataGridCell}">
<Setter Property="HorizontalAlignment" Value="Right" />
</Style>

をそのまま書くとPropertyDescriptorの値が無効ですといわれてしまいます
0289デフォルトの名無しさん2010/02/18(木) 13:45:39
・・・忘れてください
0290デフォルトの名無しさん2010/02/18(木) 14:30:15
忘れられるもんか
0291デフォルトの名無しさん2010/02/18(木) 17:01:05
あなたのことが忘れられないの///
0292デフォルトの名無しさん2010/02/18(木) 19:15:11
俺が忘れさせてやるよ
0293デフォルトの名無しさん2010/02/18(木) 20:21:05
金属バットで頭をバコーン☆! か
0294デフォルトの名無しさん2010/02/19(金) 05:29:22
http://msdn.microsoft.com/ja-jp/library/bb613591.aspx#Images
ここの解説で、
>この不要なオーバーヘッドを回避するには、
>WPF に対して、イメージをサムネイル サイズにデコードするように要求するか、

これはBitmapSourceを生成する時点で大きさを指定することで、

>サムネイル サイズのイメージを読み込むように要求します。

これはもとから小さいサイズの画像を用意しておくってことでいい?
ImageコントロールのWidth/Heightでの指定は非効率つーことだよね
0295デフォルトの名無しさん2010/02/19(金) 05:35:55
>>294
その辺はメモリやディスクの場所とCPU(GPU)の演算資源とのトレードオフだよ

どの段階でサムネイルを用意するかはソフト次第ってところだけど
たとえば3Dゲームなんかだとミップマップというのがそれっぽい
画像の管理かなあ
0296デフォルトの名無しさん2010/02/20(土) 11:48:58
質問です。

画像読み込み用スレッドにて作成した System.Windows.Media.Imaging.BitmapImage
クラスを、ウィンドウのある元スレッドにて使用したいのですが、
InvalidOperationException が発生し、動作しませんでした。

別のスレッドからWPFエレメントを操作しようとすると、
同様の例外が発生することから多分無理だろうと思っていましたがやはりダメでした。

読み込む画像のサイズが大きくそれなりに数があるので、
できれば読み込みは非同期で行いたいと思っております。

どのような解決方法がございますでしょうか?
0297デフォルトの名無しさん2010/02/20(土) 12:09:35
>>296
BitmapImage読み込み後にFreezeすればスレッド間で共有できる筈
0298デフォルトの名無しさん2010/02/20(土) 12:55:58
>>297
早速調べてみます、ありがとうございます!
0299デフォルトの名無しさん2010/02/20(土) 13:17:10
>>297
無事成功しました。

操作したい場合はCloneで置き換えればよいみたいですね。
ありがとうございました。
0300デフォルトの名無しさん2010/02/20(土) 17:52:46
最近WPF使ってるが、バインディングやらテンプレートのせいで
ちょっと規模が大きくなってくるとコードの見通しが絶望的に悪くなってくる。
せっかくC#なのに・・・
0301デフォルトの名無しさん2010/02/20(土) 17:57:45
そりゃ本来XAMLは人が読み書きするもんじゃないから
0302デフォルトの名無しさん2010/02/20(土) 17:59:44
>>301
じゃ、どーやってつくるんだよ
0303デフォルトの名無しさん2010/02/20(土) 18:01:34
XAMLでプログラムとデザインや設定が綺麗に分離されたのは素晴らしいんだが
WPFの本領を発揮しようとすると途端に至る所で色んな処理を書かなきゃいけなくなって死ぬ
0304デフォルトの名無しさん2010/02/20(土) 18:03:25
XAMLはGridだけで充分
0305デフォルトの名無しさん2010/02/20(土) 18:05:28
>>304
表示も入力もできないよママン
0306デフォルトの名無しさん2010/02/20(土) 18:36:38
XAMLはエディタが全プロパティきっちり書けるようになってからが本領発揮だと思う。
いまはどうしても手で書き足さないとだめだもんな。

Expression Blendは使ったことないからわからない。
0307デフォルトの名無しさん2010/02/23(火) 11:52:03
WPF Toolkit - February 2010 Release
0308デフォルトの名無しさん2010/02/23(火) 11:58:44
>>307
kwsk
0309デフォルトの名無しさん2010/02/23(火) 12:37:08
>>307
うぉ、マジだ…
http://wpf.codeplex.com/releases/view/40535
0310デフォルトの名無しさん2010/02/23(火) 12:38:50
Ratingってなーに?
0311デフォルトの名無しさん2010/02/23(火) 12:48:42
iTun○sのアレ
0312デフォルトの名無しさん2010/02/23(火) 18:08:56
・18歳未満使用禁止になりました
とかだとは流石に思わなかった
0313デフォルトの名無しさん2010/02/28(日) 16:59:57
WPF始めてサンプル作ってみたが、UI外観のカスタマイズやアニメーションがタグ要素だけでできて実行ファイルサイズも小さいんだな
リソースどうなってん?
XAMLがUI要素だけのための超高級言語っぽくて正直とっつきにくいが、日本語解説サイトもっと増えてくれー!
ついでにasp.net使える無料スペースも増えてくりゃれ、ドメインはいらんのです

0314デフォルトの名無しさん2010/03/04(木) 19:53:39
WPFは無くなると思うよ。
もともと.NET FrameworkにGUIアプリ向けのライブラリが混入してること自体が間違いだし、それをSilverlightで是正しようとしてるね。
0315デフォルトの名無しさん2010/03/04(木) 21:22:57
えっ?
0316デフォルトの名無しさん2010/03/04(木) 21:25:15
何それこわい
0317デフォルトの名無しさん2010/03/04(木) 21:27:31
WPFは無くならん

何を勘違いしてるのか知らんが、.NETをはじめとしたMSの言語群は「短期間で高品質な生産」を行うためにある
つまりアイデアが最も重要で、使い方を考えられない人間は価値を見いだせていないだけだ
0318デフォルトの名無しさん2010/03/04(木) 21:37:58
なくならないだろうけど
クライアントアプリはなんかどんどん微妙な立ち位置になってきてる気はするね。
0319デフォルトの名無しさん2010/03/04(木) 22:09:13
WPFはGridだけ残るよ
0320デフォルトの名無しさん2010/03/04(木) 22:38:42
Silverlightでもクライアントアプリ作れるし、将来的に完全にWPFに置き換わるようになっていくってこと。
WPFにある程度追いついてしまったらSilverlightの方が幅広く活用されるのはは当然です。

Gridありますし。
0321デフォルトの名無しさん2010/03/04(木) 22:54:37
Silverlight も WPF も基本は一緒だもんな。
0322デフォルトの名無しさん2010/03/04(木) 22:56:26
設計は全然違うけどな
Silverlightの勝利はマネージコードの敗北です
0323デフォルトの名無しさん2010/03/04(木) 23:30:53
>>320
>Silverlightでもクライアントアプリ作れるし、将来的に完全にWPFに置き換わるようになっていくってこと。

将来Visual Studioの実装がSilverlightで置き換えられるって? んなアホな。
Visual Studioの軽量版がSilverlightで実装されることはあるかもしれないが、
それは新規需要の開拓であって今のVisual Studioの置き換えでは無かろうよ。
0324デフォルトの名無しさん2010/03/04(木) 23:58:39
Vistaを7で無かったことにするのと同じですよ
0325デフォルトの名無しさん2010/03/05(金) 00:13:44
エッセンシャルの先頭10ページを読めばどうしてWPFが必要か理解できて、そんな寝言など出てこないはずなんだが
キミがそう思うのは自由だがひとには話さないことだな
0326デフォルトの名無しさん2010/03/05(金) 00:26:27
WPFで作られたアプリが起動しなくなった
WPFじゃないアプリじゃこんなことなかったのに
■ このスレッドは過去ログ倉庫に格納されています