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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/05/30(木) 20:12:06.20
ユーザーインターフェースシステム、Windows Presentation Frameworkについて微に入り語るスレ。

Visual Studio 2012 & 2010
http://www.microsoft.com/visualstudio/jpn/downloads
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 .NET Framework 4.5
http://msdn.microsoft.com/ja-jp/library/vstudio/5a4x27ek.aspx

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

関連スレ
Microsoft Silverlight その9
http://toro.2ch.net/test/read.cgi/tech/1321150267/

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
0653デフォルトの名無しさん2013/10/22(火) 19:34:46.72
silverlightみたいなのを軌道に乗せたいなら子会社で独立した
看板立ててやらないと難しいのかね。MSの企業コンサルティング
なんかする義理もないが。
0654デフォルトの名無しさん2013/10/23(水) 07:26:17.69
>>652
同じだろ
Winに組み込んじゃった時点で今後永久に保守し続けないといけない
0655デフォルトの名無しさん2013/10/23(水) 15:30:09.99
こうやって無駄にリソースを食うOSができるんだな
0656デフォルトの名無しさん2013/10/23(水) 16:17:32.46
>>649
それがset内で値チェックして差分ある時だけ更新にはしているけれども
そもそもSetValue呼んだところでStackOverflowで死亡。デバッガーじゃ追えない。
何か俺のコード側が根本的に間違っている気がするな・・・。
0657デフォルトの名無しさん2013/10/23(水) 16:21:51.58
>>655
ここ暫くWPFのプログラムゴリゴリ書いていて思うのはフレームワーク側を作った人は
リソースを抑える事とかを色々考えてこうなっているんだろうなと思うところを感じる部分も
あるけどmvvmとかのデザインパターンのせいか冗長すぎてうぜーと思う事が多い
論理的に美しいみたいなのって疑問を感じる事が多い
0658デフォルトの名無しさん2013/10/23(水) 16:35:28.14
糖衣構文用意させたらいいんだよ

ヘジをクビにして
0659デフォルトの名無しさん2013/10/24(木) 14:17:18.03
WPFとXAMLってヘジが作ったのか?
0660デフォルトの名無しさん2013/10/24(木) 16:32:17.07
いやあいつがシュガー拒んでるって話じゃねーの。知らんけど(´・ω・`)
0661デフォルトの名無しさん2013/10/24(木) 19:24:31.51
もう正直genericでasyncなWinForms作ってくれたらそれでいいわ
0662デフォルトの名無しさん2013/10/24(木) 22:23:30.34
>>661
いまのXAML系でいいじゃん(´・_・`)
0663デフォルトの名無しさん2013/10/24(木) 22:51:54.16
>>662
XAMLの部分もっと開発しやすくなればねぇ。
関連する所でミスってると全然違うところで意味不明のエラー吐いたりするし。
デバッグの仕方って何かあるのかな?正直printfデバッグ以下の状況だと思うが。
0664デフォルトの名無しさん2013/10/24(木) 22:57:45.90
XAML書いてると俺はいつの間にXcodeを使っていたんだ?ってくらいコード補完やデバッグがしんどい・・・
話かわるけどiOSにOffice提供したんだしOS XにVS提供してくれんかね・・・
MonoDevelopが糞すぎて泣けてくる
0665デフォルトの名無しさん2013/10/25(金) 00:48:13.97
万人向けのC++やC#のエディタ部分と
物好きの玩具の域を出ないWPFのエディタ部分を比べたら
どちらにリキを入れるべきか、火を見るより明らかですよね
0666デフォルトの名無しさん2013/10/25(金) 00:59:21.97
それは因果関係が逆のような気もするけどね。
まあWPFが普及しないのはVSのサポートが弱いせいだけとも思えんけど。

ググるとMVPを中心にWPFをマンセーしてる人が多いけど、個人的には
いちいち設計に疑問に感じる部分が多すぎるように思う。
0667デフォルトの名無しさん2013/10/25(金) 15:56:47.54
そもそもお金になるかならないかで言えばWPFは日本では金にならんのだよな
XAMLの案件ってASPかSilverlightばっかじゃん、WPFの案件って更に少なくなって今ほとんどないしな。
0668デフォルトの名無しさん2013/10/25(金) 16:47:34.63
>>666
ちなみにどの変が疑問?
自分はストアので触っていてこういう時にはこうするっていう逆引き的なのがないとちょっと突っ込んだことやろうとすると分からなくなるってのは有ったけど、
全体的には柔軟な仕組みを作ろうとするとしょうがないよなーとも思ってる。
他にもっといい設計のUIフレームワークってある?
0669デフォルトの名無しさん2013/10/25(金) 17:27:12.31
>>667
使用する技術の観点から案件の検討するの?変わった会社に勤めているんだな・・・。
自分で設計しない(出来ない)下請けさんかね。

WPFは認知度低いというかWinFormsで止まっている会社多いのは確かだし
単にそういう提案出来る技術のある人が少ないだけだと思う。
0670デフォルトの名無しさん2013/10/25(金) 17:56:22.19
ストアアプリはスレチかもしれないけど
設定パネルとかはデフォで準備しておけばいいのにな
柔軟というか全部作らないといけないのは何ともいただけない

カラーピッカーすらない
何を考えているんだか
0671デフォルトの名無しさん2013/10/25(金) 23:46:41.59
>>669
だからそれを客に説明したとしてWinFormsよりWPFの単価が高い理由を仮に理解されたとしても容認されんだろ
客は安くて早いしか望まないんだから
技術力だけで飯が食えるなら日本のIT業界が某社を頂点とした搾取構造になるわけねーだろ
技術力云々いうなら何故日本からGoogleのような会社が出てこないんだ?
競争なんて上澄みだけが美味い汁吸えるんだよ、それともおまえはシリコンバレーで名前が売れてるほどの天才ですか?
0672デフォルトの名無しさん2013/10/25(金) 23:53:04.55
>>671
技術によって金が高くなるんじゃなくて、その技術によって客に高い価値を与えられるから高くなんだろ(´・ω・`)

それが出来ないなら使い慣れた客が望む技術使ってればいいやん
0673デフォルトの名無しさん2013/10/25(金) 23:59:00.50
客に技術的な説明して真に理解されると思ってんの?
行政や一部上場の顧客ほど承認欲求が強いんだよ
IBMや富士通の言うことなら技術力関係なく○○さんが言うならって信用すんだよ
0674デフォルトの名無しさん2013/10/26(土) 00:05:16.87
WPFでWinFormsより早く安く作ることができればいいわけだな
0675デフォルトの名無しさん2013/10/26(土) 00:08:02.95
何の話だよ
0676デフォルトの名無しさん2013/10/26(土) 00:15:08.91
>>673
だからお前は技術とか関係ないとこでやってんだから技術の話に口出さなきゃいいじゃん(´・_・`)

うちは客にSilverlightやWPFやストアアプリとかXAML系で作ったもん納品してるわ
0677デフォルトの名無しさん2013/10/26(土) 00:23:23.90
>>668
一例を挙げればRoutedUICommandとか。

そもそものコマンドの目的からしたらVMのメソッド呼び出しを抽象化したものでなきゃいけないはずなのに、
RoutedUICommandの実装じゃ結局コードビハインドのイベントハンドラを呼び出してるのと
同じことで、あんなの何の意味があるのか。
0678デフォルトの名無しさん2013/10/26(土) 00:33:38.23
>>667
マンセーしてる人、俺も含めてだが、たぶんデフォルトのWPFのみじゃ使ってないぞ
PrismとかのMS製ライブラリ使うと、そういう矛盾感じなくなる
0679デフォルトの名無しさん2013/10/26(土) 00:36:16.84
すまん >>667じゃなくて>>677
0680デフォルトの名無しさん2013/10/26(土) 07:34:56.27
基本ICommandしか使わないし
0681デフォルトの名無しさん2013/10/26(土) 07:53:41.71
nullチェックってなんだろ
あれ毎回しないといけないのかね
0682デフォルトの名無しさん2013/10/26(土) 10:39:52.31
ICommandしか使わないとか、なんでそんな苦しいことをわざわざ……
マゾか
0683デフォルトの名無しさん2013/10/26(土) 11:26:37.85
モデルがいらないようなケースでもコードビハインドのためだけにVM使ったりする?
0684デフォルトの名無しさん2013/10/26(土) 11:29:05.44
目的と手段が逆転してると思うんだよね
健康になるために自殺を厭わない感じ

俺はフォームのデザイナーとバインド機構しか利用してないわ
十分だよ
0685デフォルトの名無しさん2013/10/26(土) 11:50:48.87
>>683
普通コードビハインド書きませんしおすし
0686デフォルトの名無しさん2013/10/26(土) 11:52:05.98
デザイナなんか使ったらクソ汚いXAMLが生成されるから逆に苦しくなる気が
0687デフォルトの名無しさん2013/10/26(土) 11:53:37.60
>>686
WinFormと汚いXAMLしか見たこと無い人には十分なのでは
06886842013/10/26(土) 11:55:49.02
誤解されちゃったけどポトペタは利用しないよ
手書きに決まってる

XAMLはフォームのデザイナーという意識はないんだろうかね
ポトペタエディタだけをさすの?
0689デフォルトの名無しさん2013/10/26(土) 11:58:40.82
「HTMLはWebのデザイナーという意識はないんだろうかね」と言い換えてみたら頭のおかしさが分かるんじゃねえの
0690デフォルトの名無しさん2013/10/26(土) 11:59:46.53
Webフォームのデザイナーではあると思いますけど
そこでWebという言葉を使うならフォームではなくアプリケーションと言うのでは?

>>頭の良いお方
0691デフォルトの名無しさん2013/10/26(土) 12:02:33.64
少なくともこのスレでは誤解した人間の方が多いから
少なくともこのスレの常識からはあなたの方がズレている
0692デフォルトの名無しさん2013/10/26(土) 12:02:49.66
普通に考えて、XAML直書きの事を「フォームのデザイナーを利用する」とか表現しない
これがXAML書いてる事を指す現場が存在するとは思えない
0693デフォルトの名無しさん2013/10/26(土) 12:03:53.00
まあVisual Studioではエディターとデザイナーは厳密に区別されてる
0694デフォルトの名無しさん2013/10/26(土) 12:05:19.40
「HTMLはWebページのデザイナー」だと言われた場合
その「デザイナー」が指すのはデザインの専任者でもホームページビルダーでもないと思うわ。
横槍だけど。
0695デフォルトの名無しさん2013/10/26(土) 12:07:12.96
デザイナはコードを生成する元なんだからデザイナ利用してるならXAML書いてない
XAMLで書いた内容がデザイナに反映されるという文脈なら分かるが明らかにそうじゃないし
0696デフォルトの名無しさん2013/10/26(土) 12:08:26.92
フォームのデザインにXAMLを利用する
なら分かるよ
0697デフォルトの名無しさん2013/10/27(日) 03:39:50.82
>>671
根本的な所でズレている気がするなぁ。
まず同じ物作ろうとした時工数的に WinForms<WPF からスタートなのが違和感あり。
そういう説明したらそらアウトプットが同じになるなら当然安いほうでって言うに決まってる。

うちは最近WPFで開発するようにしているけど>>678の言うようにフレームワークを使う、
常用するコンポーネントを蓄積していくという普通の事をやっていればどっち使っていても
開発速度に差は無いと感じているけど、どういう要素がWPFの方が工数かかるという根拠なの?
単に技術がない(経験のある技術者がいない)だけに見えてしまうんだが。
0698デフォルトの名無しさん2013/10/27(日) 10:19:33.32
経験のある技術者がいないってのは凄い問題だと思う
何年経ってんだよ

入門障壁が高いのも問題
winformsだったらjavaなどから移ってきた技術者でも容易に使える
ほとんどやってることは同じだからちょちょいで使える
0699デフォルトの名無しさん2013/10/27(日) 10:29:33.72
こんな簡単なことも分からないから馬鹿にされるんだよなあ
0700デフォルトの名無しさん2013/10/27(日) 10:35:00.96
WPFみたいな特殊事例で常用するコンポーネントが蓄積されるような状況にあるわけねーじゃん
工数が同じになるのは初期投資償却した後でしょ
大抵の会社は初期投資すらしてないんだよ
0701デフォルトの名無しさん2013/10/27(日) 11:52:08.70
WPFが特殊事例なー
0702デフォルトの名無しさん2013/10/27(日) 11:58:32.49
めくら以外の誰もが特殊事例だと認めるところだろ
0703デフォルトの名無しさん2013/10/27(日) 12:11:44.05
MSもストアアプリメインになってるのが終わってる
0704デフォルトの名無しさん2013/10/27(日) 13:16:20.68
今更UIをFormsでつくってくれいわれてもこまるなー。今日時期やりたくないっす。
標準のコントロールが足りないとかあるかもだけど作りとしては遥かに楽。
0705デフォルトの名無しさん2013/10/27(日) 15:49:09.44
やっぱりWPFは裸の王様だと思う。
0706デフォルトの名無しさん2013/10/27(日) 16:13:40.71
そうやって古い技術に固執するから仕事がどんどんアレになるんじゃないの
0707デフォルトの名無しさん2013/10/27(日) 16:17:23.68
WPFにダメだししてるからって古い技術に固執してるわけじゃないと思うけど。
0708デフォルトの名無しさん2013/10/28(月) 15:25:00.61
>>698 >>700
育てもせず、勉強もせず・・・なら当たり前の結果だと思うんだが
そんなもんWinForms使おうとMFC使おうとJava使おうとなんでも同じじゃね?
WinFormsの基本コンポーネントだけで作れるアプリならそれこそ何使っても一緒だし
0709デフォルトの名無しさん2013/10/28(月) 16:16:38.84
何使っても同じようなものは作れるよ
重要なのは作業効率
WPFで開発すると時間がかかる
0710デフォルトの名無しさん2013/10/28(月) 16:27:37.16
脱線するとアレだからナントカパターンとするけど、そのナントカが
設計しながら製造やるようなとき、マッチしないんだよなぁ。
ありえねーとかはどうでもいい。事実としてそういうときは多い。
0711デフォルトの名無しさん2013/10/28(月) 16:31:18.72
理論は素晴らしいし納得できるが
実際それをやろうとするとアプリのロジック以上に悩まされる結果にw
あのパターンは娯楽だと思うよ
0712デフォルトの名無しさん2013/10/28(月) 17:03:09.41
>>709
うん、だからそれは単にノウハウが無いだけじゃないの?って言ってるの
パターンにハメて(フレームワーク使うというのはそういう事)、スニペット使を使う
そういう事をすれば大して効率は変わらないと感じているけどな
それにメリットを見いだせないという話とWPFは効率悪いはイコールとは思えない
0713デフォルトの名無しさん2013/10/28(月) 17:18:52.77
Formのポトペタでイベントにゴリゴリロジックのやり方でいいならWPFでも普通にかけるよね。
MVVMはユニットテストしたいなら必須だけどな。書きづらいところは素直にコードビハインド入れてなるべくVMに書くようにするぐらいのゆるい感じでやったらそんなにハマるとこもないと思うけど。
0714デフォルトの名無しさん2013/10/28(月) 17:40:14.24
>>713
うん、そう思う。WPFが効率悪いと思っている人はWinFormsみたいな書き方しちゃいけない
という固定観念が原因だろうね。WinFormsよりはコードとデザインが分離し易くなっている
って時点でWinFormsに戻る理由は俺には無いなぁ。
0715デフォルトの名無しさん2013/10/28(月) 17:44:24.23
でもListViewにDisplayIndexが無いのはどうかと思う
0716デフォルトの名無しさん2013/10/28(月) 18:30:22.62
javaはライブラリやツールなどいろんなものが充実してて最先端技術を知るには一番いい
.netは他の言語で流行ったものの型落ちの技術がやってくるところになってしまった
何故だ?
0717デフォルトの名無しさん2013/10/28(月) 21:04:24.27
ListBoxItemにいろいろつっこみたいから
もうWinFormsには戻れない
オーナードローなんてしたくない
0718デフォルトの名無しさん2013/10/28(月) 22:06:30.78
XAML系のUIはそういう柔軟性だけはいいね。
でもやっぱりWPFもXAMLも好きになれない。
0719デフォルトの名無しさん2013/10/28(月) 22:27:16.00
ドカタにわかるくらいにならないと流行らんな
0720デフォルトの名無しさん2013/10/28(月) 22:40:56.56
>>716
ろくにジェネリクスもラムだもないボンクラが何をほざいてるんだ?
0721デフォルトの名無しさん2013/10/28(月) 22:48:56.70
ラムだじゃなくてラムダだっちゃ
0722デフォルトの名無しさん2013/10/28(月) 23:04:10.67
最近はJavaの方がC#パクってる感がある
0723デフォルトの名無しさん2013/10/28(月) 23:42:32.68
インスパイヤしただけだろ。
0724デフォルトの名無しさん2013/10/28(月) 23:57:51.50
飲ま飲まイェイ!
0725デフォルトの名無しさん2013/10/29(火) 00:14:32.90
ダーリンゆるさないっちゃ
0726デフォルトの名無しさん2013/10/29(火) 00:19:12.56
メニューとコンテクストで同じ命令があった場合
コマンド機能ってらくだなーって思った

ListViewにデータぶちこもうとしたら
バインドやマークアップ拡張とかあんまり使ったことないのを学ばされて疲れた
ここらへんもうちょっとシンプルに書けるようにならないのかなー
0727デフォルトの名無しさん2013/10/29(火) 00:34:44.89
ObservalCollectionとか一瞬意味がわかりませんでした
0728デフォルトの名無しさん2013/10/29(火) 01:18:02.20
綴り違うしな
0729デフォルトの名無しさん2013/10/30(水) 22:23:33.57
Formsを簡単に変換できませんかね。できませんよね
0730デフォルトの名無しさん2013/10/30(水) 22:36:24.03
両方の知識があればコンバーターは結構簡単に作れる
0731デフォルトの名無しさん2013/10/30(水) 22:49:08.05
簡単に作れるのにコンバーターツールがないってことは簡単じゃないってことじゃないのか?
0732デフォルトの名無しさん2013/10/30(水) 23:30:27.56
コンバーターってDSL書くってことだろ?
いやー大変でしょw
0733デフォルトの名無しさん2013/10/31(木) 00:01:31.54
つうかまともに動くものとか無理ゲーでしょw
0734デフォルトの名無しさん2013/10/31(木) 21:13:36.55
だって同じ名前のコントロールでもメソッドとか名前変わってたり機能あったりなかったり
互換あるわけじゃないし無理ゲーだと思う。まぁ、あってもいらんけど。
0735デフォルトの名無しさん2013/10/31(木) 23:38:26.41
そもそもコードをxmlにコンバートする時点で
0736デフォルトの名無しさん2013/11/01(金) 00:06:36.03
Xamlを一切使わないでC#コードだけ書くっていうのならできそうじゃね?
0737デフォルトの名無しさん2013/11/01(金) 00:22:12.66
AndroidもiOSもそのやり方でやってるわ。
WPFもそれでいけるよね
0738デフォルトの名無しさん2013/11/01(金) 03:17:13.12
もともと大したコードを書いてないから変換も簡単にできる(キリッ
0739デフォルトの名無しさん2013/11/01(金) 07:58:28.88
まずForm側の情報取得はインスタンス化してプロパティを見るだけでいいんだよ
最初に出現するコントロールと設定されてるプロパティを列挙しておく
それから各コントロールのXElement変換処理を実装するだけ
WPF案件にFormsでデザイン送ってきたアホのソースをコンバートしたときは二時間ぐらいでXAMLが変換できた

コードビハインドは対象にしなかったけど、コード書き換えてコンパイラーを動かせば式木は取れるはず
Graphicsとか触ってる箇所は知らん
0740デフォルトの名無しさん2013/11/01(金) 09:34:27.96
どーも発想がテキストベースにしか行かなかったが、
ターゲットにするコントロールを絞れるなら、リフレクションでなんとかなりそうだな
0741デフォルトの名無しさん2013/11/01(金) 23:05:12.89
>>716

10年前の書き込みかと思った。

ただ、今は .net系のほうが進んでいるけど、でもそれはマイクロソフトが提供する部分で、
周辺ライブラリは javaのような盛り上がりはないだろうね。
0742デフォルトの名無しさん2013/11/01(金) 23:06:42.28
盛り上がってる?
なんか中途半端で使えないものが乱立してるだけのような気がする
0743デフォルトの名無しさん2013/11/02(土) 00:57:35.92
pythonやPHPで流行ったものもjavaまでは容易に移植されるけど
そこからc#には何故か壁があってなかなか来ない
VB?
なにそれ?
0744デフォルトの名無しさん2013/11/02(土) 01:01:12.51
Javaと比較してフレームワークは多いけどライブラリはほんと少ないよね
特に画像系は移植が途中までとかCをC++/CLIで自分でラッパー書けとかばっかw
0745デフォルトの名無しさん2013/11/02(土) 01:19:39.68
VS2010の時はデザイナに表示されるWindowsの右下にWindowを自動サイズにするボタンが
存在したと思うんだけど、これVS2012では廃止された?
0746デフォルトの名無しさん2013/11/02(土) 01:41:34.02
WPFのボタンって糞だな
文字が書いていない余白のところをクリックしても反応しない
0747デフォルトの名無しさん2013/11/02(土) 02:29:04.08
MONOはWPF対応予定ないって創始者が言ってたけど
状況変わったかねー
0748デフォルトの名無しさん2013/11/02(土) 06:35:04.84
> CをC++/CLIで自分でラッパー
あ〜あ。
この一言で無知が露呈しちゃったね。
0749デフォルトの名無しさん2013/11/02(土) 08:54:15.80
>>748
PInvokeがーとか言いたいの?浅知恵乙
0750デフォルトの名無しさん2013/11/02(土) 10:32:31.14
>>746
そんなばかな
0751デフォルトの名無しさん2013/11/02(土) 11:48:11.30
ネイティブのDLLをC++/CLIでラップするのは面倒だったな。
ピン留めとか勝手にやってくれるP/Invokeの方が楽だった。
0752デフォルトの名無しさん2013/11/02(土) 13:02:19.83
Boost.Pythonみたいなの作れよ
■ このスレッドは過去ログ倉庫に格納されています