WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part7
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/08/22(日) 21:11:53Windows Presentation Frameworkについて語るスレ。
パワフルで柔軟すぎるのが敗因か? 正直ついていけないよね…。
Visual Studio 2010
ttp://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
関連スレ
Microsoft Silverlight その6
ttp://pc12.2ch.net/test/read.cgi/tech/1271580489/
過去スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part6
http://hibari.2ch.net/test/read.cgi/tech/1274423236/
WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5
http://pc12.2ch.net/test/read.cgi/tech/1261879110/
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/
コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
0526デフォルトの名無しさん
2010/11/11(木) 22:18:200527デフォルトの名無しさん
2010/11/11(木) 22:25:10またおまえか
0528デフォルトの名無しさん
2010/11/11(木) 22:28:50気持ち悪い、早くやめればいいのに
0529デフォルトの名無しさん
2010/11/11(木) 22:29:300530デフォルトの名無しさん
2010/11/11(木) 22:46:490531デフォルトの名無しさん
2010/11/12(金) 00:07:34>コントロールの背景色を変えることです。
この説明があって動かないっていったら十分すぎる説明だろ
おまけに貼っつけてあるコードだって大して長くないし
最初から教える気ないのに偉そうなこと言うな
まあ俺も教える気ないけどな
0532デフォルトの名無しさん
2010/11/12(金) 00:12:570533デフォルトの名無しさん
2010/11/12(金) 00:23:230534デフォルトの名無しさん
2010/11/12(金) 00:28:540535デフォルトの名無しさん
2010/11/12(金) 20:20:420536デフォルトの名無しさん
2010/11/13(土) 09:16:53http://compositewpf.codeplex.com/releases/view/55576
Prism 4.0 Readme
http://msdn.microsoft.com/en-us/library/gg405471(PandP.40).aspx
What's New in Prism 4.0
http://msdn.microsoft.com/en-us/library/gg430871(PandP.40).aspx
0537デフォルトの名無しさん
2010/11/13(土) 15:17:03Windows Formとは作り方がかなり異なってるな
依存関係プロパティとか、以前はなかったものがあるみたいだし。
解説サイトも少ないし、C#5.0が出るくらいまで様子見しててもよさそうだな。
0538デフォルトの名無しさん
2010/11/13(土) 15:36:45その姿勢だと一生やらないに一票
0539デフォルトの名無しさん
2010/11/13(土) 15:47:070540デフォルトの名無しさん
2010/11/13(土) 15:49:040541デフォルトの名無しさん
2010/11/13(土) 16:06:10まったく同じ機能のFormアプリケーションとWPFアプリケーションを比べた場合、
どちらが好まれるの?
0542デフォルトの名無しさん
2010/11/13(土) 16:28:260543デフォルトの名無しさん
2010/11/13(土) 16:37:29機能が同じでUXが違うということ?
無駄に重くて面倒くさいUIになってればWPFは避けられるし
美しくスッキリ見やすくなっていればWPFを選ぶでしょ
0544デフォルトの名無しさん
2010/11/13(土) 16:43:160545デフォルトの名無しさん
2010/11/13(土) 16:44:50GF9800だとfpsが30しかでない
スクロールするとfpsは一桁
相当重いね
0546デフォルトの名無しさん
2010/11/13(土) 17:01:080547デフォルトの名無しさん
2010/11/13(土) 17:30:59クソワロタ
<Button>
<Button>
</Button>
</Button>
ってやったらボタンの中にボタンが入った
0548デフォルトの名無しさん
2010/11/13(土) 17:31:50機能もUIも完全に同一のアプリケーションが二種類有ったら、
一般ユーザは 「どっちでも良い」 って言うだろう。
一部のナード層は、 「実行速度が」「メモリ消費量が」 とか言うかも知んないけど
未だにIEのシェアが6割も有る様に、多数のユーザはそこまで気にしない。
(強いて挙げるとすれば、古いOSを使ってるユーザだと
.NET Framework必須な点が、若干面倒に思われるかもだが)
WinFormかWPFかってのは、ユーザ視点でどうこうじゃなく
開発側が、生産性を考えてどちらを使うか選ぶ物なんじゃないか?
0549デフォルトの名無しさん
2010/11/13(土) 17:37:35ならわざわざ間口が狭いWPFは使わんだろう。
何かしらWPFならではの機能を使って快適・高機能になるとかの理由で使うんじゃないの。
あとは将来webに持っていく可能性有りとかならSilverlightへの移植がしやすいとかで使うかもしれない
0550デフォルトの名無しさん
2010/11/13(土) 17:40:29ああ、あるある。
ComboBoxの中にDataGridが入ったりとか、マジでキモいUIが作れるよな…w
0551デフォルトの名無しさん
2010/11/13(土) 17:49:42エッセンシャルWPF読むまで理解できなかった
0552デフォルトの名無しさん
2010/11/13(土) 18:02:06でもエラー0で普通に起動できて普通に動いて・・・
って2時間悩んだ末、VS再起動したら直った。
ふざくんな!
0553デフォルトの名無しさん
2010/11/13(土) 18:07:03この辺の問題な気がする
相対パスが役立たずになるのはどうにかして欲しいものだ
0554デフォルトの名無しさん
2010/11/13(土) 20:54:40コンテンツモデルの柔軟さは認めるけど、結局見た目の組み合わせじゃろくなもんで
きないんだよなあ。コントロールの振る舞いは組み合わせじゃどうにもならないか
ら、実はあまり柔軟でも簡単でもない。WPFのコンボボックス一つとっても最初
はリストボックス使って実装しようとしたけど、結局スクラッチから作ってるし。ボ
タンの中にボタンみたいな、なんの意味もないもんしかできない。
0555デフォルトの名無しさん
2010/11/13(土) 20:58:410556デフォルトの名無しさん
2010/11/13(土) 20:59:150557デフォルトの名無しさん
2010/11/13(土) 21:17:50GridやStackpanelは便利だと思う
0558デフォルトの名無しさん
2010/11/13(土) 21:30:03結局部品の中身を理解していないと使いこなせない。
0559デフォルトの名無しさん
2010/11/13(土) 21:48:230560デフォルトの名無しさん
2010/11/13(土) 21:53:310561デフォルトの名無しさん
2010/11/13(土) 21:55:110562デフォルトの名無しさん
2010/11/13(土) 22:13:380563デフォルトの名無しさん
2010/11/13(土) 22:16:280564デフォルトの名無しさん
2010/11/13(土) 22:25:060565デフォルトの名無しさん
2010/11/13(土) 22:30:56そうだけど、コメントにした瞬間に萎える
0566デフォルトの名無しさん
2010/11/13(土) 22:33:54ぼのぼののおとうさんみたいだな
0567デフォルトの名無しさん
2010/11/13(土) 22:34:55カスタムコントロール作ってるけど、なんか作り方が独特な感じで難しい。
Xaml側でイベントハンドラ登録できないので、要素のName属性使ってコード側から
インスタンス取得、そしてハンドラ登録という流れになる。
処理を結びつけるのはコマンドでやれってことなんだろうけど、
コマンドは発生タイミングを細かく制御できないよね?
例えば、2桁入力できるTextBoxを横に何個も並べたとして、
2桁入力した時点で自動的に右にフォーカス移動させるようにしたいときって
イベントだとTextBoxChangedとか使えばいいけど、コマンドではどうするのか。
なんだかいつものWindowとかUserControlでやる書き方とは違って、
コード側の記述が増えてしまってる。
0568デフォルトの名無しさん
2010/11/13(土) 22:38:14できるだろ
0569デフォルトの名無しさん
2010/11/13(土) 22:38:57クラックソフトでも作ろうとしてるの?
0570デフォルトの名無しさん
2010/11/13(土) 22:41:05どうやるの?
>>569
扱いやすいコントロールをつくろうとしてるんだけど、なんでそう思ったの?
0571デフォルトの名無しさん
2010/11/13(土) 22:43:05ちゃんとしたコントロールを作るためのもの。WinFormsでもカスタムコントロールは
OnPaintオーバーライド必須だっただろ。
0572デフォルトの名無しさん
2010/11/13(土) 22:45:50ボタン作ってダブルクリックしてみ
0573デフォルトの名無しさん
2010/11/13(土) 22:49:27ResourceDictionaryに書いてるからデザイナ使えないよ。
<Button Click= って書いても候補すらでないしコードビハインドが無いから指定できない。
これはカスタムコントロールの話だからね。
>>571
やっぱエレガントに書くのは諦めたほうがいいかな。
WinFormsやったことないからどうなってたのかわからん。
0574デフォルトの名無しさん
2010/11/13(土) 22:51:32SilverLight4をインストールしたらできる
0575デフォルトの名無しさん
2010/11/13(土) 22:54:14流れ的にちょっと分かりにくいので何が出来るのか詳しく頼んます。
デザイナ使ってのデザイン?
0576デフォルトの名無しさん
2010/11/13(土) 23:01:43SilverLight 銀の光ワロタ
0577デフォルトの名無しさん
2010/11/13(土) 23:07:22Silverlight使わないとしてもWPF使うなら必ずインストールしましょう
0578デフォルトの名無しさん
2010/11/13(土) 23:10:460579デフォルトの名無しさん
2010/11/13(土) 23:17:07無くても普通にインテリセンス機能してるけど?
例えばブラシのカラー候補とか出る
自前のプロパティなどは候補には出てこないけど
Silverlight4 Toolkit 入れたらそれもできるようになる?
0580デフォルトの名無しさん
2010/11/13(土) 23:51:060581デフォルトの名無しさん
2010/11/13(土) 23:52:52データ項目に対応するものならバインド元のデータを消す
0582デフォルトの名無しさん
2010/11/13(土) 23:56:56List<string>にボタン名の一覧が入っていて
一覧から削除すると、そのボタンが削除されるといったこともできますか?
0583デフォルトの名無しさん
2010/11/13(土) 23:58:43DataTemplateでググれ
0584デフォルトの名無しさん
2010/11/14(日) 00:03:07ObservableCollectionじゃなくて?
0585デフォルトの名無しさん
2010/11/14(日) 00:05:06どうやったらできなかったの?
0586デフォルトの名無しさん
2010/11/14(日) 00:05:150588582
2010/11/14(日) 00:33:18データクラスで保持してるコレクションデータを
ObservableCollectionに毎回追加しないといけないから
やっぱりList<string>のボタン名でそれぞれのボタンで表示して
任意のボタンを削除するならDataTemplateですか?
0589デフォルトの名無しさん
2010/11/14(日) 00:59:03List をラップした INotifyCollectionChanged 実装クラス作るのがいいと思うけど、
面倒だからよく ObservableCollection にコピー持たせる。
モデルとかビューモデル側でコレクションに要素足したときに
即座にビューに反映されて欲しければ INotifyCollectionChanged 必須。
0590デフォルトの名無しさん
2010/11/14(日) 01:19:59カスタムコントロールのXamlはルート要素がResourceDictionaryだからハンドラ指定はできないはずだが。
0592デフォルトの名無しさん
2010/11/14(日) 01:30:04さすがにそんな上のレベルでListに依存するのは設計としてまずい
0593582
2010/11/14(日) 01:38:57ビューモデルにINotifyCollectionChangedを実装しても
List<T>.Addでは変更通知されないですね
List<T>クラスを自作してそこにINotifyCollectionChanged入れるしかないのかな
そうなるとObservableCollectionでプロパティ公開してデータクラスのList<T>の値を追加していく方が楽なのかな
0594デフォルトの名無しさん
2010/11/14(日) 03:57:45そうだった
0595デフォルトの名無しさん
2010/11/14(日) 04:53:27<ItemsControl ItemsSource="{Binding Names}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Content="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</WrapPanel>
上記だとただ縦に並ぶだけです
パネルのデータテンプレートってどうすればいいですか?
かれころ5時間ぐらいぐぐってもわかりません
助けて
0596デフォルトの名無しさん
2010/11/14(日) 05:29:43もっと柔軟に、レイアウト方法を自作したいなら
Panel クラス継承して MeasureOverride とかを自作。
0597デフォルトの名無しさん
2010/11/14(日) 06:02:38質問する前からその単語でもぐぐってます
ItemsPanelTemplateでもぐぐってるけど
同じようなコードが見つからないんです
前にテスト用に作った時はあっさり作れたのでメモってなかったのが失敗
0598デフォルトの名無しさん
2010/11/14(日) 06:30:440599デフォルトの名無しさん
2010/11/14(日) 07:06:02世界的に見て日本のプログラマのスキルが低い所以なんだろうね
優秀なソフトはいつも海外
ゲームも海外
日本は自社製の糞重いフレームワークで時代遅れのゲームしか作れない
0600デフォルトの名無しさん
2010/11/14(日) 07:25:420601デフォルトの名無しさん
2010/11/14(日) 08:29:47むしろ基礎すら理解できていないコード切り貼り魔がいることが原因だと思う。
5時間ググる前に何が足りないか3分考えろ。
0602デフォルトの名無しさん
2010/11/14(日) 08:34:220603デフォルトの名無しさん
2010/11/14(日) 14:38:39データクラスでList<T>公開して
周りから弄繰り回すこと自体が間違ってるよ
実際に実装の変更に対応できてないわけで、publicフィールド公開してんのと一緒だぞそれ
0604デフォルトの名無しさん
2010/11/14(日) 18:39:16お前はデータクラスの値をVMで毎回コピーしてVに公開してんのか?
0605デフォルトの名無しさん
2010/11/15(月) 07:58:04頭使えよ。。。
0606デフォルトの名無しさん
2010/11/15(月) 20:41:58<Button Height="3*"/>
<Button Height="2*"/>
みたいに。
今までだとちょっとだけ面倒だったな
0607デフォルトの名無しさん
2010/11/15(月) 22:22:570608デフォルトの名無しさん
2010/11/15(月) 22:40:570609デフォルトの名無しさん
2010/11/15(月) 23:10:23多言語対応したりフォントサイズ変更したりに強いし。
0610デフォルトの名無しさん
2010/11/15(月) 23:12:350611デフォルトの名無しさん
2010/11/15(月) 23:18:050612デフォルトの名無しさん
2010/11/16(火) 01:53:34古いWindows Formアプリケーションだと
デザイナで変更された部分は基本的に隠されててキモかった。
Button1.click += button1_Click;
この部分が隠されてて
button1_Click(object,eventargs)
だけ現れててマジきもい
0613デフォルトの名無しさん
2010/11/16(火) 06:46:06WPFの方が別ファイルでコソコソ作られててキモイ。
0614デフォルトの名無しさん
2010/11/16(火) 07:08:07WinFormsも別ファイルだろ
0615デフォルトの名無しさん
2010/11/16(火) 07:27:200616デフォルトの名無しさん
2010/11/16(火) 08:01:22直接弄れるWPFのが便利
0617デフォルトの名無しさん
2010/11/16(火) 10:24:090618デフォルトの名無しさん
2010/11/16(火) 11:04:03どこが隠蔽されてるって?XAMLが理解できないって話か?だとしたらお前が悪いw
あれは宣言型言語でオブジェクト ツリーを構築しているだけ。
全てWinFormsに似た等価な手続型言語で表すことができるが、
誰もやろうとしないのはそれがメンテナンス性を著しく損ねてしまう結果に終わると知っているから。
ま、WPF使った事ない人は表面だけ見て隠蔽されてるように感じるのだろう。
0619デフォルトの名無しさん
2010/11/16(火) 11:21:09プログラミングにどっぷりつかってる人間ってコミュニケーション能力低いってよく言われるが
こういうことなのでしょうな。
0620デフォルトの名無しさん
2010/11/16(火) 12:18:550621デフォルトの名無しさん
2010/11/16(火) 13:38:02最初、C#の文法だけでなくこっちも覚えなきゃならないのかよ
とか思ってたら案外簡単だった。
<Button Height="200">
みたいに書けばいいだけみたいだ。
むしろButton button1=new Button();button1.Height=100;
とかやるより簡単かもしれんね。
0622デフォルトの名無しさん
2010/11/16(火) 13:51:170623デフォルトの名無しさん
2010/11/16(火) 13:58:12トグルのIsCheckedとメニューのIsOpenをバインドして、表示させることはできたけれど、
右ボタンで、通常通りポップアップさせたときにはContextMenuService.Placementで指定したならびになるのに
左ボタンで、バインディング通して表示させたら、マウスカーソルの位置にポップアップされてしまう
どうすればいいの? プログラム書いたらすむんだろうけど
0624デフォルトの名無しさん
2010/11/16(火) 14:01:52何じゃこの気持ち悪い書式はー!!
とプリプリした。
0625デフォルトの名無しさん
2010/11/16(火) 14:23:21煽りだけで本題書いてないwww
■ このスレッドは過去ログ倉庫に格納されています