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

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

■ このスレッドは過去ログ倉庫に格納されています
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/
0424デフォルトの名無しさん2010/12/20(月) 08:18:16
その三つの中で生き残るのはどれよ?
ちゃんと理由も一緒に書いてよ
0425デフォルトの名無しさん2010/12/20(月) 10:22:00
なんか伸びてると思ったら宗教論争か
0426デフォルトの名無しさん2010/12/20(月) 10:58:29
WPF終了
0427デフォルトの名無しさん2010/12/20(月) 13:51:10
WPFを技術的な面で批判できないから程度の低い荒らししかできない。
0428デフォルトの名無しさん2010/12/20(月) 13:53:26
なんか自分の悩みみたいなレスだな。
0429デフォルトの名無しさん2010/12/20(月) 14:21:39
Silverlightで事足りるってことになっちゃったからなあ。
0430デフォルトの名無しさん2010/12/20(月) 15:08:24
だからってWinFormsには戻りたくない
0431デフォルトの名無しさん2010/12/20(月) 15:17:20
批判してるのは使えない人だけだな。
0432デフォルトの名無しさん2010/12/20(月) 15:43:51
と、思いたい人だらけだな。
0433デフォルトの名無しさん2010/12/20(月) 15:53:12
だからQtを引き合いに出すような的外れの事をしてしまう。
0434デフォルトの名無しさん2010/12/24(金) 04:03:52
xamlとC#を
htmlとjavascriptのようにホームページでも使えたらいいのに

デスクトップアプリ、WEBサイト両対応の言語ってないのかしら
0435デフォルトの名無しさん2010/12/24(金) 04:13:19
Javaは?ActionScriptは?SilverLightは?
0436デフォルトの名無しさん2010/12/24(金) 09:01:06
JavaScript が VM 層の標準持たなかったのはガンだよなぁ。
0437デフォルトの名無しさん2010/12/24(金) 09:17:12
WPFやっててSilverlight知らない人がいるんだな
一般的な知名度はSilverlightの方がずっと上だと思うけど
0438デフォルトの名無しさん2010/12/24(金) 09:31:13
javascriptは、巨大なプログラムを作るようには設計されていないから。
0439デフォルトの名無しさん2010/12/24(金) 09:50:14
JavaScriptはオフにしましょう!
と言われてた10年前からえらく出世したもんさ。
0440デフォルトの名無しさん2010/12/24(金) 09:52:51
その設計時の見通しの甘さがガンというか。
作られた当時、今みたいな使われ方なんて想像もつかなかったし、誰も責めようはないんだけども。
無理な使われ方してる方がガンか。
0441デフォルトの名無しさん2010/12/24(金) 11:38:54
JavaScriptなんか本来Viewのコードビハインドどころか
XAMLでトリガやバインディング書いたりする程度のもんだろ
0442デフォルトの名無しさん2010/12/24(金) 13:36:44
Silverlightってjavascriptみたいな
htmlファイルに直書きでできるの?
CGIみたいに対応している鯖じゃないと無理なんじゃないの?
って思って全く勉強してなかった
0443デフォルトの名無しさん2010/12/24(金) 13:56:51
サーバーは関係ない。クライアントサイドで完結。Flashと一緒。
クライアントでプラグインのインストールは必要。でも.NETはいらんしサイズも極めて小さいしMacでも動く。
0444デフォルトの名無しさん2010/12/24(金) 14:02:38
あとSilverlightにはアプリケーションをデスクトップにインストールして
ブラウザの外で動かす機能がある。Flash + AIR + .NET(のサブセット, WPF含む)と思えばいい。
0445デフォルトの名無しさん2010/12/24(金) 14:10:00
ほうそれはいいね
でもXAMLみたいなものなんでしょ?
javascriptが使える意義って
何か計算せてプログラムを走らせることなんだけど
それもできるの?

ホームページ上に電卓を作って
入力された数字で計算

なんてことSivlerLightだけでできるの?
0446デフォルトの名無しさん2010/12/24(金) 14:12:03
>>445
>ホームページ上に電卓を作って
>入力された数字で計算
できる

ここでぐだぐだ言ってないでVWDダウンロードしてきて作ってみろよ
ただでできるし

それにSL+JSの連携も可能みたいだしな
0447デフォルトの名無しさん2010/12/24(金) 14:17:04
できるよ
C#からブラウザにJavaScriptのコードをevalさせることもできるしHTMLのDOM操作も自由自在。
マネージコードの中でやりたかったらIronRubyやIronPythonをアプリに組み込んでしまうことも可能。
数式を計算するだけだったら数式評価のC#で書かれたサンプルなんかたくさん落ちてるから
そういうのを使ってもいいし。
0448デフォルトの名無しさん2010/12/24(金) 15:16:57
XAMLは HTML & CSS & JavaScript(を使ったDHTML) をXMLで定義できるようにした物。
コードを書かなくてもXAMLだけでDHTMLみたいな動的なページが作れる。

計算にはデスクトップアプリで一般的なC#やVB.NETを使う。
実行時にネイティブコードにコンパイルされる(JIT)ので動作も速い。

さらにWindows向けの開発環境で独占的なシェアを持つVisual Studioが使える。
無料版のVWD(Visual Web Developer 2010 Express)も提供されているため無料で開発できる。(当然、商用利用もOK)

これに諸々の機能が乗っかったものがSilverlight。

普通はHTMLに貼り付けてFlashみたいにして使うけど、
ブラウザ外実行すればHTMLに張られたSilverlightが"そのまま"デスクトップアプリになる。
クリック3回でインストール/アンインストールの超お手軽配布。(右クリック→インストールする→インストールしていい?OKの3回)
0449デフォルトの名無しさん2010/12/24(金) 17:23:02
じゃあ、ちょっとした小物ツールはSilverLightの方がお手軽ってことか
WPFだといきなりexeファイル実行しろって感じだけど
これなら安心感があるな
0450デフォルトの名無しさん2010/12/24(金) 21:01:39
更に言えば、WPFでもSilverlightでも無いLooseXAMLなんてのも有る。
.NET Frameworkがインストールされてる必要は有るが
.xamlファイルを、IEでそのまま閲覧する事が出来る。

これって、SEO的にはどうなんだろうね。
クローラーでxaml内のテキストを拾ってくれたりはしないんだろうか。
0451デフォルトの名無しさん2010/12/24(金) 21:23:39
なんでお前らいっつも宗教論争してるの?
0452デフォルトの名無しさん2010/12/24(金) 21:24:26
>>451
したいのが2chに集まってくる。
0453デフォルトの名無しさん2010/12/24(金) 21:27:37
>>450
loose xamlはwpfだろ。
0454デフォルトの名無しさん2010/12/24(金) 21:31:47
技術的にはwpfだわな
exeでもxbapでも無いだけで
0455デフォルトの名無しさん2010/12/24(金) 23:41:15
SilverlightとFlashなら宗教論争だがWPFとは親子げんかみたいなもの
0456デフォルトの名無しさん2010/12/25(土) 01:45:39
全然喧嘩もしてないよ。
にこやかな話し合いだよ。
0457デフォルトの名無しさん2010/12/25(土) 02:18:45
南斗鳳凰拳的な伝承の儀だよ。
全てを伝えた後で WPF 死ぬ。
全てを伝えきらないうちは生きる。
0458デフォルトの名無しさん2010/12/26(日) 23:19:28
モデルであるIList<Customer> をViewModelのプロパティで
ObservableCollection<CustomerViewModel>としてUIにバインドしようと思うと、
new ObservableCollection<略>(customers.Select(c => new CustomerViewModel(c)))
とかやって自分で変換するの?
0459デフォルトの名無しさん2010/12/26(日) 23:36:52
そうやっているが、モデルのアイテムの追加削除の時とか泣きたくなるなw

可能な時は限られているけどこれを回避できることもある。
Modelのリストを直接Viewに公開してしまって、ViewModel的な処理が必要な時は
そのコレクションを管理しているViewModelクラス側で処理すればおk。
0460デフォルトの名無しさん2010/12/27(月) 00:21:24
適当なラッパー作って使いまわせばおk
自作が面倒ならObservableListでググるとMs-PLで丁度いいやつが見つかる。
0461デフォルトの名無しさん2010/12/27(月) 01:53:28
WPF世界チャンピオン
0462デフォルトの名無しさん2010/12/27(月) 13:15:48
亀田はんやないか
0463デフォルトの名無しさん2010/12/27(月) 15:46:33
マウスの戻るボタンにMouseBindingを関連づける方法ってありますか?
MouseAction列挙体見ると、右、左、真ん中ボタンとホイールしかないのですが。
0464デフォルトの名無しさん2010/12/27(月) 15:49:17
>右、左、真ん中ボタンとホイールしかない
基本はこれでこれ以上はマウス側の独自拡張じゃないの?
増えたボタンも結局はキーボードのショートカットキーのパターンを
送り出してるとかそんなんだよね
0465デフォルトの名無しさん2010/12/27(月) 15:58:33
XButton1, XButton2(大抵のマウスは進む/戻るボタンに割り当てる)はWindowsがサポートしてる
MouseAction と XButton1 で検索するといくつか方法が見つかるようだ
04664592010/12/27(月) 17:07:37
>>458-459
ありがとう
どうせ小規模だしモデルは元々全部INotifyPropertyChanged/ObservableCollectionだし
ビューモデル固有の操作もほとんど必要ないのでMVVM無視して
全部 class ViewModel { public Model Model { get; set; } }
でいい気がしてきた
0467デフォルトの名無しさん2010/12/28(火) 08:10:04
はじめて4日目だが、 ObservableCollectionがソートできなくてびっくりしたわ
0468デフォルトの名無しさん2010/12/28(火) 08:23:18
ソートー使えないな!
相当使えないな!

バカウケ
0469デフォルトの名無しさん2010/12/28(火) 09:10:49
今朝は寒いな
0470デフォルトの名無しさん2010/12/28(火) 11:19:52
フォームではプロパティやイベントを
選択、マウスオーバーするとの説明が出たのですが
WPFでは出ません。仕様でしょうか??
0471デフォルトの名無しさん2010/12/28(火) 11:25:14
デザイナでは出ない
0472デフォルトの名無しさん2010/12/28(火) 12:32:47
しようがない
0473デフォルトの名無しさん2010/12/28(火) 12:41:06
VSのXAMLデザイナ使ったバインディングの設定、
今まで使い物にならないと思い込んでて放置してたけど意外とまともに使えるね
d:DesignProperties.DataContext要素でダミーのデータを定義してやれば
ちゃんとデザイナからバインドを設定できるし結果をプレビューしてくれる
0474デフォルトの名無しさん2010/12/28(火) 13:09:59
だからBlend使えと何度言えば
0475デフォルトの名無しさん2010/12/28(火) 15:13:53
買ってくれよ
0476デフォルトの名無しさん2010/12/28(火) 16:21:34
いいよ
0477デフォルトの名無しさん2010/12/28(火) 17:10:29
なんでVSのプレビュー機能あんなに貧弱なの?
0478デフォルトの名無しさん2010/12/28(火) 17:11:43
プレビューは十分だろ
デザイナは貧弱だけど
0479デフォルトの名無しさん2010/12/28(火) 19:36:12
Blendが使えないならWPFで作る意味はないな。
0480デフォルトの名無しさん2010/12/28(火) 21:39:34
>>467
CollectionViewSource.GetDefaultViewつかえ
0481デフォルトの名無しさん2010/12/28(火) 23:01:53
>>479
Silverlightとの相互運用とか、SL→WPFの移植とか
0482デフォルトの名無しさん2010/12/30(木) 01:14:02
Webシステムのリプレース案件に年明けから入ることになったんだけど、どうやら
WPF+MVVMバターンでの開発になるらしいです。WPFは簡単なツール作成でちょ
こっと触ったことがある程度。疎結合なデザインパターンは面白そうだけど、MSDN
のMVVMに関する記事読んでも今ひとつピンとこないんですが、年末年始で勉強する
のにいいところ、どっかありませんか?
0483305 ◆Jzt/EX0TGY8T 2010/12/30(木) 04:14:08
「コマンド」と「MVVMパターン」を理解する − @IT
http://www.atmarkit.co.jp/fdotnet/chushin/introwpf_06/introwpf_06_03.html
[WPF][C#]Model View ViewModelパターンでハローワールド
http://blogs.wankuma.com/kazuki/archive/2009/02/23/168586.aspx
WPF のための MODEL-VIEW-VIEWMODEL (MVVM) デザイン パターン
http://msdn.microsoft.com/ja-jp/magazine/dd419663.aspx
WPFアプリケーションに最適なアーキテクチャ「M-V-VM」とは | グレープシティ株式会社
http://www.grapecity.com/japan/events/handouts/mvvm.htm
【WPF】【Silverlight】 MVVMは各人に合ったレベルで実装すれば良いのではないかと思う
http://blogs.wankuma.com/trapemiya/archive/2009/10/14/182101.aspx

俺がMVVM理解するのに参考にしたサイト
特にリンク先のpdfが参考になった
0484デフォルトの名無しさん2010/12/30(木) 11:12:42
>>483
サンクス!!
0485デフォルトの名無しさん2010/12/30(木) 12:16:07
Blend評価版試してみてるけど
なんかデザイナ向けというよりVSのデザイナのそのまま兄貴分って感じだなあ
これくらいならVSに組み込めばいいのに
VSでスタイルとテンプレートの編集さえ出来れば要らないと思う
0486デフォルトの名無しさん2010/12/30(木) 12:22:11
ビジュアルステートとアニメーションだけはVSじゃ厳しい。
0487デフォルトの名無しさん2010/12/30(木) 12:28:38
それは同意
他にもパスでお絵描したりとか、そういう完全にデザインな部分だけに
特化したツールとして分離したほうがいいんじゃないかと思う
ビヘイビアとか完全にプログラミングだし、ごっちゃごちゃな印象
0488デフォルトの名無しさん2010/12/30(木) 12:40:07
Blendの使い方解説してる良いサイトある?
なかったら誰か作って!
アフィ貼りまくってくれていいから
0489デフォルトの名無しさん2010/12/30(木) 12:53:29
アフィ貼りまくってくれていいから(広告はカットするけどw)

の間違いじゃね?
0490デフォルトの名無しさん2010/12/30(木) 14:44:15
回転が出来ません!

Quaternion xz = new Quaternion(new Vector3D(1, 0, 1), degreexz);
A.Rotate(xz);

回転角degreexz[°]でXZ軸でAを回転させたいのですが、どこがおかしいでしょうか。ご指南お願いします。
0491デフォルトの名無しさん2010/12/30(木) 14:47:15
マルチなのでスルーで
0492デフォルトの名無しさん2010/12/30(木) 20:40:08
マルチってどこ?
Silverlighgtスレかと思ったら違うようだし、
他にXAML/WPfの話題のスレってあったっけ?
0493デフォルトの名無しさん2010/12/30(木) 21:21:21
ふらっとC#,C♯,C#(初心者用) Part67

  >481 名前: デフォルトの名無しさん [sage] 投稿日: 2010/12/30(木) 14:45:16
  >回転が出来ません!

  >Quaternion xz = new Quaternion(new Vector3D(1, 0, 1), degreexz);
  >A.Rotate(xz);

  >回転角degreexz[°]でXZ軸でAを回転させたいのですが、どこがおかしいでしょうか。ご指南お願いします。
0494デフォルトの名無しさん2010/12/31(金) 10:27:00
とん、ってよりによって、そんなところかいww
0495デフォルトの名無しさん2010/12/31(金) 10:46:32
かっこいいUIが作れる以外のメリットが分からん。
生産性が良くなるとも思えんし。UIとロジックの分離なんて設計次第だろ。
0496デフォルトの名無しさん2010/12/31(金) 10:51:08
はいはいそうだねー
0497デフォルトの名無しさん2010/12/31(金) 11:21:20
でも、その通りだよな・・・
0498デフォルトの名無しさん2010/12/31(金) 11:25:34
オサレスキンを使ったWinForm風アプリを作るならその程度だな。
自由度が高くなっても必要としていない人には関係ない。
0499デフォルトの名無しさん2010/12/31(金) 13:30:34
自由度って何の?
0500デフォルトの名無しさん2010/12/31(金) 13:45:01
プロパティ、イベント、データバインド、UIデザイン…

めんどくさいから全部でいいよ
0501デフォルトの名無しさん2010/12/31(金) 13:55:12
3Dやアニメーションができますって
DirectX使えば普通にできるが?
0502デフォルトの名無しさん2010/12/31(金) 13:57:40
それが楽に感じるなら、WPF なんて必要ないよ
0503デフォルトの名無しさん2010/12/31(金) 14:36:54
Direct3DなんかちょっとしたGUI作るだけでもアホみたいに手間かかるぞ
0504デフォルトの名無しさん2010/12/31(金) 14:43:01
QT使えばいい
0505デフォルトの名無しさん2010/12/31(金) 15:34:09
Qtスレへどうぞ
0506デフォルトの名無しさん2010/12/31(金) 16:05:55
Popupの上にマウスが移動するとPopupが消えるんだけど消えないようにするにはどうすればいいですか?
0507デフォルトの名無しさん2010/12/31(金) 16:11:28
親コントロールでMouseLeaveしたらPopupのIsOpen=falseにしてるのが原因でした
失礼しました
0508デフォルトの名無しさん2010/12/31(金) 21:09:43
>>499
ボタンの中にチェックボックスを入れてそれをマルチ選択可能なリストボックスに入れるとか
アホなことがし放題。フリーダム!!
もはやどう動くのか想像もつかない状態になるがなw
0509デフォルトの名無しさん2011/01/03(月) 08:38:52
webbrowser使おうと思ったら「DocumentはComオブジェクトにキャストして使ってね」とはふざけてるわ
まだ未完成じゃないか(シルバーライトバージョンはちゃんとしているみたい)
0510デフォルトの名無しさん2011/01/03(月) 10:25:25
dynamic使うんだよ
気に入らなかったらWinFormsのWebBrowserをWindowsFormsHostで使えばいい
どっちを使おうが空域問題は避けられなくて
SilverlightのようにWebページをパズルにしたりはできない
0511デフォルトの名無しさん2011/01/03(月) 21:12:30
ProgressBarの上にProgressBar.Value + "%"を表示させています。
中央に固定位置で表示させるのはTextBlockを2つ(Value値と"%"で2つ)使ってできたのですが
ProgressBar.Widthが変化したときにも自動で中央にする方法が分かりません。
お願いします。
0512デフォルトの名無しさん2011/01/03(月) 21:52:09
> 分かりません。お願いします。


何をお願いしたいのか微塵たりとも分からないし、情報が足りなすぎるが
適当なコントロールにHorizontalAlignmentを設定すればいいじゃないか。
あとTextBlockはネストできるし、BindにはStringFormatを指定できる。
0513デフォルトの名無しさん2011/01/04(火) 23:36:07
WPF初心者です・・
ViewModelやModelのプロパティ更新時のエラーはIDataErrorInfoを使用してViewに通知するのはいろんなhpを見て分かったのですが
ICommand.Executeでのエラー通知はどうやるのがMVVMパターンなのでしょうか・・・
今のところViewModelにCommandエラー通知専用のプロパティを作ってバインドしてViewに知らせています
0514デフォルトの名無しさん2011/01/04(火) 23:40:33
インジケータみたいなもので画面にエラーを示すだけなら
通知というよりViewModelにHasErrorとかErrorMessageとかプロパティ定義してバインドするだけ
ダイアログ出したかったらInteractionRequestでググる
0515デフォルトの名無しさん2011/01/05(水) 00:31:16
MVVMやるならまずPrismのドキュメント読むべき
英語だけどこれ以上の情報はないと思う
0516デフォルトの名無しさん2011/01/05(水) 18:26:38
以前、Prisnの資料をググール先生頼りで探してみたけど結局どこから見ればいいのやら…
お勧めのサイトがあったら是非とも教えて欲しい
0517デフォルトの名無しさん2011/01/05(水) 19:03:02
あきらめてQt使うわ
0518デフォルトの名無しさん2011/01/05(水) 19:15:35
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=3453ab2b-2067-41e4-b087-312d8385cf1b&displaylang=en
の中のPrism4.chm
0519デフォルトの名無しさん2011/01/05(水) 19:54:01
>>518
トン
0520デフォルトの名無しさん2011/01/05(水) 20:10:58
日本語の充実したドキュメントとか、やっぱ欲しいよなあ
0521デフォルトの名無しさん2011/01/06(木) 02:32:08
WPF終了っぽいね
0522デフォルトの名無しさん2011/01/06(木) 02:40:21
何を根拠に?

WPF が終わるのは、WPF のほぼ全機能が Silverlight に移った時だと思うんだけど。
0523デフォルトの名無しさん2011/01/06(木) 09:02:39
WPFはSilverlightのゴールですか
最初からSiliverlight一本でやってたほうがよかったんじゃないの?
二本立てにすることにメリットあったのかな?
■ このスレッドは過去ログ倉庫に格納されています