1read 100read
2013年02月プログラム29: WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part15 (243) TOP カテ一覧 スレ一覧 2ch元 削除依頼
[Java]JBuilder5[Java] (783)
【消しゴム】MONOを使ってみるスレ4【じゃない】 (323)
文字コードの種類は何故複数あるのでしょうか? (346)
疑似乱数2 (439)
【SICP】計算機プログラムの構造と解釈 Part3 (545)
【上流社会】MSDNサブスクリプション総合【最先端】 (646)

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


1 :2013/02/03 〜 最終レス :2013/02/11
ユーザーインターフェースシステム、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プログラミング Part14
http://toro.2ch.net/test/read.cgi/tech/1351322296/
関連スレ
Microsoft Silverlight その9
http://toro.2ch.net/test/read.cgi/tech/1321150267/
コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/

2 :
Part13 http://toro.2ch.net/test/read.cgi/tech/1334300003/
Part12 http://toro.2ch.net/test/read.cgi/tech/1324366825/
Part11 http://toro.2ch.net/test/read.cgi/tech/1320589318/
Part10 http://hibari.2ch.net/test/read.cgi/tech/1315648327/
Part9 http://hibari.2ch.net/test/read.cgi/tech/1301122694/
Part8 http://hibari.2ch.net/test/read.cgi/tech/1291554513/
Part7 http://hibari.2ch.net/test/read.cgi/tech/1282479113/
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/

3 :


4 :
WPFでソケット通信を実行するときは、その手続きはどこに書くべきなんですかね?
MVVMだとDB接続はモデルに書くらしいんですが
今回はソケット通信でデータ受信するだけでなく、短い文言も送信しますし
相手方の応答に応じて、分岐とかあったりします

5 :
View:なるべく書かない。画面遷移くらい。
ViewModel:画面で完結する処理を書く
Model:他はすべてここ

6 :
VMに書け
以上

7 :
文言もモデル化できるとしてModelが妥当

8 :
メッセージパッシングとかまさにそんなんだろ

9 :
>>5
>>7
そうなんですか・・・
MVVMのモデルってでかいんですね

10 :
モデルをDBのレコードとしか考えない
理由が無い

11 :
画面と処理を分離させるのがポイント
画面がいくら変わっても表示させたいデータが変わらない限りはModelは何も変えなくて良いように設計する
だから、データの見せ方に関わる動きはViewModelに書く

12 :
なるほど
DBからDataTableを持ってくる処理はModelに書くとして、Viewではそれを行列反対にして表示する場合
その行列を組み替える処理はViewModelなんですかね?

13 :
そんな感じ

14 :
ありがとうございました。

15 :
言っとくけど、俺はWPFでアプリを作ったことがない

16 :
VS2012でx64のWPF開発してるんですが、未だにデザイナはx64に対応しないの?

17 :
語弊がありそうな書き込み発見

18 :
>>17
どれ?
WPFのプロの方、教えてください。

19 :
WPFは終了しました

20 :
Borderの中にコントロールを入れて、そのコントロールが水平・垂直に真ん中に配置されるプロパティーってないんですか?
なんかAndroidとかと比べて、コントロールに親子関係がないような

21 :
子要素のHorizontalAlignment/VerticalAlignment

22 :
3.5までしか触ってないんだけど、セパレータって縦置きできるようになった?

23 :
確認してないけどできない

24 :
>>21
それをやっても、ボーダーに対して真ん中にならず、恐らくGridに対して真ん中になるです

25 :
なんだか状況がおかしい気がする

26 :
ほっといても真んR
gridに対して真ん中って表現もおかしい
だったらグリッドのマス目のコラムの幅変えてみて場所が変わるか?

27 :
Borderと子コントロールの話だったのにどっからGridが出てきたのか

28 :
すいません
勘違いしてました
全てのコントロールがGridに対して子になっていただけで、Border →StackPanel → 子コントロールと入れ子にしてから、
各子コントロールのプロパティーをいじらないといけなかったようです
ありがとうございました

29 :
ずこ

30 :
Settings.settingsってそのままModelとして使ってもいいんでしょうか
それともラップするクラスを作るべきでしょうか

31 :
別にそのままでいいよ

32 :
多角形のボタンってどうやって作るの?

33 :
wpf 丸いボタンで検索して丸を多角形に変えればいい

34 :
マルチスレッドって、Backgroudworkerあればあとは使わない感じ?

35 :
NotificationWindowってどうやって使えばいいかわかりますか?
AndroidのToastみたいなポップアップを出してみたいです

36 :
あんまBackgroundWorkerこそ使わなくなったな
専らTaskとDispatcher.Invokeで済ます

37 :
WPFでBackgroudworker使ったことないな

38 :
非同期とかRxしかねーだろ

39 :
WPFというより4.0ではいらない

40 :
Rxはオワコン
非同期はasync,awaitの方が使いやすいし、
リアクティブプログラミング支援ライブラリとしても使いにくい。

41 :
他におすすめのライブラリあるのか?

42 :
必ずライブラリを使わないといけない強迫観念にでも落ちいってんのか?

43 :
Rx自前とかアホか

44 :
今度はRx教ですか
MVVM教といいしなねーかな
殺したい

45 :
LINQ教もあるの?

46 :
たぶんあるね

47 :
C#はC/C++の代用としてがっつりデスクトッププログラム書きたい奴と
JavaScriptとかPHPとかの代用としてWEBアプリとか書きたい奴がいて
お互いに相容れなそう
設計思想とか全然違っちゃうしな

48 :
おいおい、MVVMは定義が曖昧すぎて理解不能で利便性の欠片も感じられないが、Rxは最高だろおい

49 :
.NET Framework内にReactiveって単語が含まれたらRx戦争終戦で
ViewModelって単語が含まれたらMVVM戦争終戦にしよう

50 :
LINQは別に宗教じゃなくてすでに言語の一部だろ
WPF用にプロパティ作るのもメソッド作るにも普通に使う
LINQなら一行でサクっと済むのが、
使わないと同じことするのに行数と文字数が何倍にもなるし。

51 :
EF教ならまだ分かるがLINQ持ち出すあたりにわかすぎw

52 :
>>40
リアクティブとして他に良いのが有るならぜひ教えてくれ。
RxとMVVMの組み合わせはすこぶる良い感じです(´・ω・`) 

53 :
まだLINQ敬遠してる土方もいるしな

54 :
なんで新しいこと覚えられないのにWPFやろうと思うんだろう

55 :
スレ違いは承知の上、ついでだから教えて欲しいんだがLINQをキチッと勉強するのにいい教材とか何かない?
上っ面程度のことは分かるんだけど、何ができて何ができないか、全体が把握できてない
用途は主にLINQ to Object

56 :
普通のSQL覚えればいいと思うよ
プログラミングやるなら何にでも使える必須知識

57 :
今時LINQ == クエリ構文って認識は古いってレベルじゃないと思うな

58 :
Rxとの組み合わせがいいって
ReactivePropertyのこと?

59 :
LINQはコレクションというかデータソースとでもいうのか
そういうのを簡潔に回すが全てじゃね?見つけるでもいいけど

60 :
簡単なもの(横1920のモニタでメソッド形式でなら1行で書ける程度レベル)ならメソッド形式がいい
でも複数のコレクションを結合させて混み入った条件つけて抽出したり、
メソッド式でも一行で収まらないくらい長くなる場合はクエリ式の方がいいよ

61 :
1920なら220文字は行けそうだ

62 :
Update2 CTPのBlendより前からでてたPreviewの方ができがいいな・・・

63 :
コードビハインドに書くのって画面遷移とコントロールの設定くらい?

64 :
ソケット通信の受信結果をListBoxで表示するプログラムを書いています。
受信時間の昇順に並べて、
スクロールが最下部にある場合に新しいデータを受信したら、
スクロールを一番下に移動して最新データを表示させたいと考えています。
これをやるにはListBoxのテンプレートをいじらないといけない感じでしょうか

65 :
>>64
なんかすげー似たようなアプリ作ってるな
俺もソケット通信の小さなアプリ、WPFで作っているわ
質問には答えられんがタイムリーなので

66 :
テンプレートまったく関係なくない

67 :
>>64
ListBox.ScrollIntoView じゃ駄目かい?

68 :
>>65
案外同じアプリ作ってるかもしれませんね
>>66
ListBoxのScrollViewerいじってるんですがどうもうまく機能しないんですよね
それでテンプレートいじったらなんとか実現できないかと思った次第です

69 :
>>67
常に下スクロールするのであればそれでよいと思います。
しかし、ユーザが上にスクロールしている場合には下スクロールさせたくないのです。
上のデータを見ているときにいきなり最下部にスクロールしてしまってはユーザが困惑してしまうと思うので。
まあ、素直に受信した降順に並べれば悩む必要ないんですが

70 :
スクロールが一番下にあるときだけScrollIntoViewするBehaviorでも書けばいいんじゃないですかね

71 :
そんな特殊な振る舞いをわざわざBehaviorにする意味は?
コードビハインドとなんも変わらんというか無駄に複雑になるだけ

72 :
FormにしろWPFにしろリストボックスは遅いんだよ
これはWindowsそのもののGUIがプアだからどうしようもない
OS X最強なんだなこれが

73 :
勝手にUITableViewDataSourceでも使ってろ

74 :
>>68
ScrollViewer がうまく機能しないっていうのは、どういう状況で何が機能しない?

75 :
>>58
ん、そんな感じの。
ReactveUIでも良いかもね

76 :
>>74
あまりうまく説明できないかもですが、
今はScrollViewerのScrollChangedが発生した時に、受信データ数が増えていて、スクロールバーの高さが以前のスクロールバーサイズ以上の値だった場合に最下部にスクロールするようにしているのですが、
これだと連続で複数のデータを受信した場合にきちんと最下部にスクロールしません。

77 :
LivetでVMからのMessenger.RaiseでBringIntoViewするものを即席で作ってみたけど
ListBoxのItemsPanelがVirtualizingStackPanelだから
VMがコントロールと結びついてないと反応しねぇ。
こういう場合どうするんだろう。

78 :
>>76
ListBox.UpdateLayout を使って強制的にレイアウトを再計算させるか、
Dispatcher.BeginInvoke(hoge, DispatcherPriority.Loaded) を使ってレイアウト計算後にスクロール処理を走らせてみては?
もしくは、ListBox.ItemContainerGenerator の StatusChanged イベントを待つとか。
最初の ScrollChanged が発生した段階では、後に受信したデータの ListBoxItem 要素が生成されてないのかも。

79 :
WPF初心者なんですが、ユーザーコントロール作る場合は、元々のユーザーコントロールを相対配置して作らないといけないんですかね?

80 :
XAMLからViewModelのメソッドってどうすれば呼べますか?
Click="ViewModel.Ok"とかでいけます?

81 :
いけません

82 :
>>78
即レスありがとうございます。
それだといけそうな気がしてきました。
改修長くなりそうなので結果報告は明日当りになると思います。

83 :
>>81
じゃどうするんですか?
わざわざコードビハインドにViewModelのメソッドを呼ぶメソッドを作る感じ?

84 :
>>80
これ読んで。
Model-View-ViewModel デザイン パターンによる WPF アプリケーション
http://msdn.microsoft.com/ja-jp/magazine/dd419663.aspx

85 :
いけません。じゃねーんだよw CallMethodActionくらい教えたれやw

86 :
CallMethodActionなんてクソ冗長なもの使わなくても添付プロパティで
<Button CallMethod.EventName="Click" CallMethod.MethodName="Ok"/>
みたいに書けるようにするのは割と簡単にできる
添付プロパティの勉強には丁度いい

87 :
ここでFWの上に自作FW載せる的な解はどうかと思うんだがw 確かに可能だし簡潔だが
86やるなら、MSのPasswordHelperあたり見たらいいぜ

88 :
76ですが、受信のたびにUpdateLayoutかけると一番したにスクロールさせることができました。
ただ、自分がListBox内に重い処理をしていることもあり、かなりもっさりしてしまいました。
なので無理に昇順にひょうじさせるのではなく、降順にならべてスクロールしない方向でいこうかと思います。

89 :
>>84
そいつはWPF切った裏切り者だぞ

90 :
複数の画面で全く同じリストを選択させるリストボックスがあって、そのリストの値ををXAMLのResourcesDictionaryに書く場合は、
XAMLをコンパイルする段階で値が決まっている必要がありますか?

91 :
ユーザーコントロールにしろ

92 :
<StackPanel Orientation="Horizonal">
<RadioButton HorizontalAlignment="Center"/>
<RadioButton HorizontalAlignment="Center"/>
</StackPanel>
これでラジオボタンが水平方向に二つ、並ぶはずが左寄せです
原因はなんでしょうか

93 :
親がHorizontalなStackPanelであること

94 :
すげーワラタ

95 :
>>93
ありがとうございます。
確かにOrientatinはずしたら真ん中に寄りましたが、垂直方向に二つ連なりました
水平方向に、二つのラジオボタンを中央よりに配置させる方法はないんでしょうか?
AndroidのXMLだったらできたのですが・・天井

96 :
StackPanelのHorizontalAlignmentをCenterにするとか
既定ではStretchなのでStackPanelの横幅は親コントロールと同じになる(マージンとか除く)
CenterにするとStackPanelの横幅は子コントロールを描画するのに十分な横幅だけになる

97 :
>>95
Grid.ColumnDefinitions使ったほうがいいんじゃないの?

98 :
やっぱりWPFはだめですね

99 :
>>96-97
やってみます
ありがとうございました

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part15 (243)
【モダン推奨】Perlについての質問箱 50箱目 (405)
インテルC++コンパイラ9.0発表! (586)
Borland Developer Studio 2006 No.13 (279)
【独学】一人で勉強する奴らのスレ【自習】 (387)
HSPプログラムコンテスト総合【part 3】 (628)
--log9.info------------------
【エミュ鯖】N-Age Online【回帰その3】 (444)
Paperman チートスレ15 (200)
ラグナロク シリアルクレクレスレ (431)
【splax.net】おらおら学園 4殴目【Rカフェ】 (492)
ELSWORD エルソード ネタ保管庫01 (555)
【おみくじ】名前欄に!omikuji !dama【お年玉】 (614)
女神転生IMAGINE 垢クレクレスレ8 (226)
ブレイブリーデフォルトプレイングブレージュ解析 (480)
【FF11】 ProjectXI 【エミュ鯖】 (322)
【本家】サミー777タウンendlessブラック88【クレクレ厳禁】 (385)
機動戦士ガンダムオンライン クレクレスレ2 (719)
機動戦士ガンダムオンライン チートスレ (233)
【永久に】砂城鯖1170砦目【不滅】 (782)
ネトゲで恋をしてしまいました【77】 (553)
【Roエミュ】Twice Moon Tower【ローグ系】 2F (381)
アスガルドエミュ鯖スレ8 (285)
--log55.com------------------
【社会】 長野・上田のモスバーガーでO121
【速報】みなかみ町長が辞任表明
中国家電大手「TCL」が日本市場へ本格参入 65型4K HDR液晶TVが12万円!JBLサウンドバー装備、55型は8万円★2
【北海道地震】液状化は沢を埋めた造成地で発生か 札幌 清田区
【相模原市】駐車中の車からインパクトドライバーを盗んだとして、自称建設作業員の39歳男を逮捕
【ロボット】「鉄腕アトム」再現ロボ完成 10月より全国一斉発売
【朝日新聞】なぜ若者は安倍政権を支持しているのか? 今の政権でいいんですかの問い掛けに「いいでーす」★10
【船舶】レクサス初の豪華ヨット、発売へ 定員15人・客室三つ