WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part14
片山ってWPFもやってんのかよ
手広いな
スレ立て乙
Windows8, VS2012で作成したWPFアプリケーションはXPでも動きますか?
1乙
前スレ落ちたの?
980越えて全然レス無いから落ちたよ
そうなんだ、ネタが無いね。
WindowsRTとか8とか出てきたけどWPFの未来はいかに
>出荷係クラスの新しい方法
w
>WPF は Ribbon の 4.5 隻の出荷制御します。
なにを言ってるか分からない
わろた
機械翻訳ネタかよw
しかし話題ないな
ボタンのコンテントにスタックパネルを入れて、
ラベルと子ボタンがあるようなコントロールテンプレートを含む
スタイルをリソースで定義して、コードでButtonオブジェクトを
生成してからStyleプロパティにいれても、
Styleプロパティに入れた段階ではContentの中身は空な様です。
親ボタンのClickイベントと子ボタンのクリックイベントに個別の
イベントを割り当てたいのですが、子供のボタンにイベントを
割り当てる為にインスタンスを取得できるタイミングが
良くわかりません。良い方法はあるでしょうか?
やったことないから知らないけど、動的だから論理ツリー内には居ないだろうし、
ビジュアルツリーはOnRender後じゃないと探せないんじゃないの?
>17
ありがとうございます。
ボタンの中の子ボタン自体はUIElementなので論理ツリーに
いると思ってるんですが、テンプレートで動的に生成された場合に
違うことはあるでしょうか?
今のところオブジェクトのStyleやTemplateプロパティに
入力すると.NETが全て上手くやってくれるくらいの認識しか
無いのですが、論理/ビジュアルツリー関係をもう少し
勉強してみます。
非同期での処理について質問があります。
ボタンをクリックするとexeもしくはbatを起動します。
起動前にボタンのisenabledをfalseにして
実行中になんども実行されないようにします。
ModelにCanExecuteというプロパティを用意し
バインドして実現しています。
ここまではよいのですが、exeが終了したら
CanExecuteをtrueにしてボタンをクリック可能に戻したいです。
ProcessクラスのWaiteForObjectを使えばできそうなのですが
画面が固まってしまいます。
画面を固めないで実現する方法はありませんでしょうか
知らんけどWaitForExit?は今のスレッド実行をブロックするメソッドなんだから、
UIスレッド以外で実行すればいいんじゃないの
>>20 メソッド名はWaitForExitです
UIスレッド以外で実行したいのですが
その実行が終わったらCanExecuteを変更しなければいけないため
結局は待ち合わせをしないといけなくはないのでしょうか?
非同期処理があまりわかっていないのかもしれないですが・・・
ggrksってことだ
>19
それ非同期じゃなくて同期って言わない?
async void button_Click() {
model.CanExecute = false;
await Task.Run(() => { /*別スレッド*/ 別プロセスを起動してWaitForExit(); });
model.CanExecute = true;
}
同期処理のように見えるのにUIが固まらない黒魔術
>>24 回答ありがとうございます。
教えていただいたように実装してみたのですが
エラーになってしまいました。
調べてみたところ、.NET4.5でないとだめのようでした。
現在のバージョンは4しか使えない状態です。
>>24のような処理を.NET4で実装するにはほかに方法はないでしょうか
アホなの?Taskクラスを教えて貰ったんだし調べればいいのに。
Task.Factory.StartNew() にCanExecuteも含めて全部ブチ込めばいいだけじゃね
Task.Factory.StartNew(() =>
{
(いろんな処理)
model.CanExecute = true;
});
じゃダメなの?
待ち合わせじゃなくて別スレッド内で
その最後にやらせる形だけど。
書いてるうちにかぶったw すまん
モデルがあるんだったらそういう処理や状態管理はモデルに投げるべきじゃね?
何のためのモデルだよ
model.CanExecute = false; 処理; model.CanExecute = true;
こういうのをビューに書いちゃうのはモデルを単なるデータの入れ物と勘違いしてる典型だろ
void button_Click() { model.処理開始(() => { 処理完了時の処理;/*イベントでも可*/ }); }
って感じにするのが妥当
CanExecuteはモデル自身が管理するべき
モデルと言ってもこの場合VMに近いけど
一体誰がMVVM的にどうの聞いてんだよw
質問の趣旨も理解せずに主義を語るのが病気持ちプログラマの特徴
>>26 >>27 無理
別スレッドからUI弄れないことも知らないの?
>>30 そんな実装クソだろ
void Execute()
{
this.CanExecute = false;
Task.Factory.StartNew(()=>{ /* 何か */ })
.ContinueWith(_=>this.CanExecute = true, UIで実行するためのTaskSchedule);
}
んでExecuteとCanExecuteをバインド
無理じゃねーだろ。CanExecuteはUIを直弄ってねーだろ。怒られるかやってみろよw
またアホなのが湧いてきたなw
>>34 ボタンにバインドしてるだろ?
怒られるからやってみろよw
>>34 Taskの処理が終わるまでCanExecute=trueが有効になんねーだろうな
どちらにしろCWメソッド呼ばないと無理じゃね?
>>36 まずお前がやれよ。直ぐだろw やってみたのか?
>>38 やってみたけどエラーにはならないが
処理前に非活性にならないね。
Taskだから?
>>39 言った手前やってみたけど、意図した動作になったけどなぁ。
無いとは思うが、INotifyPropertyChanged を実装してないってオチは…
>>40 実装してるんだけどね。
まぁ4なんてもう使わないからどうでもいいや。
VS2012を触ってみたら、デバッガでWPFビジュアライザなるものが出てきた
なにこれ便利
なぜXAMLは普及しないのか?
過去を捨てるほどメリットを提示できない故に
デザイン性が求められる分野はWebに行っちゃったしな
WinでもストアアプリはHTML5が主流になりそうな感じだし
とにかく無駄が多くてMSらしいと言えばらしいなw…って印象しかない
みんなコードは書きたいけど無駄に冗長なコードは書きたくないのです
MSの中の人は理解してない
>>47 逆だよ
みんな美しい理想の設計なんて求めていないのです
無駄な冗長な長いコードでも頭使わずに書けたらそれでいいんです
MSの中の人は理解してない
あれを美しいと感じる美観も勘弁して欲しい
そうでもないよ。基本的な設計は非常に筋がいい。
Androidとか今のJavaFXとかWPFの丸パクリだよ
>>43 WPFもSilverlightも出来上がったアプリ重くない?特にWPF、起動が劇遅。
XAMLのせいなのかは知らないけど。
書き方によるんじゃ無いかな?
自分は、最初WPF使ってとんでもなく遅くて後悔したけど、
できるだけ初期画面でインスタンス化されるコントロール減らしたり
デリゲートとかの非同期、マルチキャスト機能とか活用して
起動時のIO処理を見直すようにしたら、割と普通のソフトと変わらないんじゃね?
位の重さにはなった気がする。
そんなにデカイ規模のプログラムじゃ無いけど。
あと、コンパイルが掛かる、インストール後の本当の初期起動は
HDDの実行環境だとそれなりに重いかも
日本語のサンプルや解説がなさすぎる、MVVMを思想とか仕様じゃなくてわかりやすくサンプル載せてるサイトが日本に一つにもない、そんだけ使われてないってことじゃん。
そもそもBlendありきってのが一番わけわからん、VSで簡単にViewModel作れないんじゃみんなFormでいいじゃんってなるでしょ・・・。
だからMVVMをわかりやすく解説してるサンプル豊富なサイト教えてくださいm(_ _)m
かずきのところまとめ読みしてわからないならあきらめたほうがいい
あれMVVMのアーキについて語ってるわけじゃないだろ
どちらかと言えばどうやって使うかお部分だ
聞きたいのはそこじゃない
あきらめろん
>>55 MVVM のアーキテクチャって具体的に何が知りたいの?
UI とドメインのアンマッチを VM で吸収するってだけだよ。
それをどう実現するかってのは .NET でよければかずきって奴のブログ見ればいい。
うごやのサイトは見ない方がいい。
かなり宗教的で非現実的で自慰的。
自分も最近自覚してきたのか、言ってることがぶれまくってる。
かずきblog順を追って読んでいけばいい
学習しながら進んでったのがよくわかる
javaをやってたみたいで趣味グラマー中心の.net開発者より視野が若干広い
流行りものも積極的に勉強してるみたいだし
いや.NETのTipsとか書いてるのってみんな思いっきりドカタだろw
そのドカタより技術あるならてめぇが書けよカスwww
日本人って技術あるやつほど人に教えねーんだよな
日本のソフトウェアが糞なのは先人の残したそびえたつ糞のおかげですね^^
62 :
デフォルトの名無しさん:2012/11/05(月) 02:44:59.68
WPFはソフト開発の生産性がいいと思えない。
表現力はあるが、やってる中身は定型的でおもしろみがない。
Windows8のソフト開発はHTML5とJavascriptが主流になるだろう。
何やらドカタの琴線に触れたらしい
これだから嫌だねえ日本のIT業界って
スミからスミまで根暗卑屈
>>62 UI フレームワークなんてのは、昔から、面白味をなくしてドカタにでもできるようなものを目標にしている。
そういうつまらない仕事はWebデザイナみたいな一山いくらの連中に任せて、プログラマはもっと建設的な仕事をしろってことさ。
HTML5ベースになるとしたら、HTML5ベースのツールが流行ったというだけのこと。
wpfというかMVVMはなんかだるい。例えば、ちょっとなにか試そうってとき、
実際に使うときはMVVMなんだから、その流儀でやろうとするとコードビハインド比で
ちょっと時間食う。
>>65 まぁ、そういう間違った風潮、認識が蔓延ったのはすべて尾上が諸悪の根源だろうな
尾上ってMVVMの俺俺うんちくを垂れることしか能がないというか
.NET Frameworkや言語(C#)に対する知識はかなり低い
++C++やneueに嫉妬メラメラだし
別にWPFだからと言ってMVVMでやんなきゃいけないわけではないし
WinFormsと同じようにコードビハインドで組んでUIの表現だけ恩恵を受けるのだってぜんぜん間違いじゃない
MVVMでやるとしてもコードビハインドを使っちゃだめというわけじゃない
コードビハインドは本当によくできた概念
無理に排除してもいいことない
MSも標準でメッセンジャーやイベントバインディングを用意しないと未来はないよな
まーたはじまった
68 :
デフォルトの名無しさん:2012/11/05(月) 11:55:57.32
土方が余計なこと考えなくても開発できるようにするためIDEがあんだろ
IDEが標準サポートしてないなら必須技術じゃないだろ
高野将ってうがやに何か弱みでも握られてるの?
へこへこびくびくしながら下僕ツイート垂れ流して何が楽しいの?
うがやも馬鹿にしてるのみえみえだし。
うがやの周りは変な奴多いよな。
技術に傾倒しすぎる奴らって本当に基地外しかいない。
自己紹介乙
ここ定期的に私怨臭い流れになるな
隔離スレ作っても残るし
>>72 私怨というか、うがやが広めたMVVMに対する偏見は日本のMVVMを10年遅らせただろ?
まぁ10年はいいすぎだがw
しょぼくさいクラスライブラリを作っただけで図に乗りすぎたんだよ。
Livetがしょぼいのは同意だな
わざわざ理解するほどの価値は無いと思う
やっぱりMVVMは変なライブラリ使わないでコードビハインドを併用しながら
無理なくやれる範囲で適用するのが今のところはベスト
livetのページ404なんだけど
罵倒されてショック受けたんじゃねえの
>>74 >コードビハインドを併用しながら
>無理なくやれる範囲で適用するのが今のところはベスト
ここは激しく同意だわ
MVVMを正しく理解してない奴はクソ!文句垂れるな!
みたいな論調を垂れ流し続ける限りダメだ
その「正しく」ってのもugayaのオレ様理論だしw
>>69 ぐらばくって奴も完全な口だけ媚び下僕
いつもLivetまんせー的なこと言っておきながら
WeakReference<T>の存在、今日初めて知ってるしw
使ってないのバレバレじゃんかw
>>77 かわいそうなことしてやるなよ・・・
ああいうタイプの子は突っ込まれると
そんなこと気にしてないよ、と言わんばかりに
さらにドツボにはまることを言い出すんだよ・・・
2chなんか見てないよと言いたいんだろうね
「一方私はLivet.dllをmogmog」とか無理しちゃって・・・
ぐらばくちゃん惨めだね・・・
だせっw
u氏、私怨はないけど、モデルって言葉を都合良く使いすぎた所は悪影響があったと思う
80 :
デフォルトの名無しさん:2012/11/06(火) 10:52:11.88
ugaya40叩くだけに飽き足らず、その周辺まで叩きだしたか・・・
MVVMの採用はシーンによって導入の可否を判断すべきで
MVVMなきゃ絶対ダメってのも言い過ぎだが
MVVM絶対イラネーっていうおまいらも同類だと思うぞ
全員よそで頼む
82 :
80:2012/11/06(火) 10:57:45.55
83 :
デフォルトの名無しさん:2012/11/06(火) 11:20:50.38
WPFから外れるから
>>82 視点によって変わる単語を俺様理論で展開してきたことが問題なんじゃね?
そもそもMVVM自体ugayaが考えたパターンじゃないのに
俺の思考がすべて正しい、ような論調で他人を否定し続けてきたくせに
いきなり真逆のこと言い出したのも問題だろうて。
コードビハインドの利用やモデルの責務あたりの件な。
85 :
80:2012/11/06(火) 15:17:20.42
全部コマンドでやれれば、コードビハインドで書かなくて済むんだよ
例えばコマンドでフォーカス当てるとかってどうやってる?
メッセンジャーしかないと思うんだけど、なんてダルイんだ。
もうVの参照貰って、落ちないように直じゃなくて参照あるときに探すようにして当てる、で
いい気がするんだけど・・
>>87 > Vの参照貰って、落ちないように直じゃなくて参照あるときに探すようにして当てる、でいい気がするんだけど・・
それでいいんじゃね?俺もMVVM派だけど、そういう場合Vの参照VMに悩まず渡してる
俺様の言っていることが全て、違うこと言っている人間には喧嘩を売っていくという態度のせいで、
氏の発言を劣化コピーした、あるいみ自明な事をドヤ顔で言うような輩が出てくる一方で、
絡まれるのが面倒だからか、彼よりアプリケーションモデル・ドメインモデル・アプリケーションアーキテクチャに
知識も経験もあるであろう人達の発言が聞こえなくなったという弊害。
こんなマイナー技術好きにやったらいい
どこまでいってもMSプラットフォーム支配下という制限付きだからね。
windowsって結局MS-DOSを統合しただけだったな
____
/ \
/ ⌒ ⌒ \ 何言ってんだこいつ
/ (●) (●) \
| 、" ゙)(__人__)" ) ___________
\ 。` ⌒゚:j´ ,/ j゙~~| | | |
__/ \ |__| | | |
| | / , \n|| | | |
| | / / r. ( こ) | | |
| | | ⌒ ーnnn |\ (⊆ソ .|_|___________|
 ̄ \__、("二) ̄ ̄ ̄ ̄ ̄l二二l二二 _|_|__|_
ちょっとむずかしかったかな?
雁屋哲レベルの知性の持ち主がいるな
VMの扱いがわかりにくすぎるし面倒すぎる
JavaFX2触ってるときと同じでイライラしてくるわ
コードビハインドでパネルのDataContextにモデルのインスタンスを代入して
その上のコントロールとモデルのプロパティをXAMLでバインドしろ。
VMなんか要らん。それがWPF本来の正しい使い方だ。
Vの仕事を奪うようなVMはMVVMじゃないと思うの
DataGridでソートボタン押されたら、押されたイベントをVMに送って
VMでソートしてそれをバインドで反映とか面倒臭くてやってられんぞ
うるせーんだよ
カスどものVM論なんて聞き飽きたわ
引っ込んでろ
>>99 CollectionViewSource.SortDescriptions
>>89 まさにそれだな。
尾上に絡まれるのが嫌だからという理由でMVVMを論じる人が全く居なくなった。
おかげでja-JPのMVVMは間違った方向を向いたまま停滞しまくり。
まだそれが正論であればマシだったんだが、完全に歪んだ俺様理論だったってのが最悪。
マジで死ねばいいのにと思ってる人たくさんいるだろう。
103 :
デフォルトの名無しさん:2012/11/08(木) 11:35:16.86
WindowsFormsHostのIsRedirectedはどうしたら使えるの?
環境はWindows 7+Visual Studio 2012
104 :
デフォルトの名無しさん:2012/11/08(木) 11:46:04.52
>>103 やっぱやめたってconnectにあがってた
106 :
103:2012/11/08(木) 12:48:46.62
>>105 そうだったんですか、どうも有難うございます。
なんか結局MVVMって自己満足みたいね。
画面定義とロジックは分けましょう→コードビハインド
みたいに開発環境・言語の中に組み込んで
意識せずに自然とMVVMになるようにしないと駄目だね。
面倒な技術はたとえ便利でも全部ジコマン。
VとVMの名前を合わせとけばあとは全部勝手にやってくれるくらいにならないと、絶対流行らない。
かずきのサイト見てMVVMので一番めんどい系のTriggerとActionとMessengerはなんとなくわかった
ただCommand、おめぇはわかんねぇ・・・
・Trigger = Viewに対するなんらかのイベント
・Action = Triggerから呼ばれてVMのメソッドを呼び出す
・Messenger = VMからViewへ指示
だいたいこんな感じだよな?
Commandってなんのためにあんの?しかもすげぇイミフでわけわかんない記述だし・・・
なんの為とか言われてもなぁ…。実行可否も持てるわけだから、
複数個所で同一の処理する場合に、状態も含めて一元化できる・・とか?
メニューとボタンとかで。XAML的にもトリガーアクションよりは簡潔だし。
イミフってのは多分RelayCommandかDelegateCommandのことなんだろうが、
あれの実装は気にしなくていいと思う。ただ使えばいい。
でもコマンドが何者かすら勉強してなさそうだから、それもできなそうだが。
あとActionはVMとは限らんけどな。それもできるけど。
CommandはCallMethodActionと一緒だよ。単にVMに定義されたパブリックメソッドと考えていい。
Vとバインドしやすいように特殊な形で公開しているだけ。
Commandの方がCallMethodActionよりもXAMLが簡潔に書けるが
VMのインターフェイスが汚れる。完全に好みの問題なので一方だけ好きな方を使えばいい。
CommandはCanExecuteでコントロールを無効にできたりするが、IsEnabledと
VMのプロパティをバインドしたほうが簡単で綺麗なので使う必要はない。
CommandってF12押しても参照飛ばないからなー
一つ一つのクラスとしてコマンドを実装して拡張性を持たせるような設計なら
CanExecuteは役立つのかもしれないけど、少なくともDelegateCommandに
CanExecuteは要らん
信号が青に変わったら、アクセル踏め
↓
(Command)
何らかの「進行許可」があったら「前進」しろ
進行許可の内容は、信号でも、警官の指示でも何でもいい
とにかく進めというサインが出たら行動しろ
前進の仕方も、車ならアクセル踏め、自転車ならペダルこげ、
徒歩なら歩け、その他何でも内容は問わない
とにかく前へ進め
かなりテキトーな比喩でいうと、こんな感じかな
「進行許可」が常に信号が青になる場合だけで
「前進」も常にアクセル踏むだけの1対1の組み合わせしかないなら、
冗長になるだけであまり意味はないけど
最近の若いもんはON_COMMAND/ON_UPDATE_COMMAND_UIやDelphiのActionListを知らんからの〜。
まあ、今時の若ものはCallMethodActionやVM直接バインドで良いと思う。
尾上のサイト読んだら、標準ライブラリだけだと
>DelegateCommand/RelayCommand、Messengerやビヘイビア・トリガー・アクションという用語は全て無視してください。
これらをゼロから実装するにはMVVMパターンの概念・目的・各種MVVMライブラリの実装・WeakEventパターンに精通している必要があります。
標準ライブラリだけでMVVMパターンを実現しようとしたら、これらの物は含まれていないのです。無理に実現しようとしてもコストが割に合いません。
っつーことはPrism/Livetがない環境だと、そもそもMVVMで設計・実装することが間違いって話になるんよな
M$は本当にWPFにおいてMVVMを推奨してるん?VS2012でも相変わらずみたいだし、M$的にMVVMってなんなの?
MVVMという言葉だけが先走りすぎて
WPF自体が新参に敬遠されてしまっている
どこのサンプルもWinFormの頃のようなコーディングをしているのに
実際そのほうが作るのが早くてわかりやすい
ノートを写すのに綺麗に書くか、わかれば良い程度で書くかと一緒
確かに。会社でしかやらないような連中に教えるのは困難。
なんでこんなことしなきゃならんの?って思うわな普通。コードビハインド極力禁止ってw
Vとの結合弱くしてんでどこで使うのソレ・・的な。
120 :
デフォルトの名無しさん:2012/11/09(金) 13:29:22.43
話を纏めると
「WPFおもしろそう!今度のプロジェクトはこれにしよう!」
「WPFにはMVVMというパターンが必要なのか・・・」
「MVVMはかなり複雑なパターンのようだし、うちのPGで理解できる奴いねーな」
「納期短いからやはりFormsにしよう!」
という流れが多そうだな
土方には一生Forms使わせておけば良いんでは。
コードビハインド禁止だとかの冗談はともかく、
WPF(XAML)使うんだったらVM作ってバインディングした方がよほど簡単じゃね?
単純にプレゼンテーションモデルを作るだけではすまない所はコード書けば良いし。
別にコードビハインドでもバインディングできるし
VM作ったほうが簡単ってことはない
うん
コードビハインドでモデルをDataContextに突っ込んだ方が簡単
VMが欲しくなるほど複雑な状態管理が必要なビューなんてそう無い
DataContextってビューのルートだけ設定して終わりじゃなくて、
たとえばあるモデルに関連したグループボックスがあったら
そのグループボックスのDataContextにはそのモデルを入れて、
グループボックスの子のコントロールをバインドするという風に使うもんなんだが
最初からWPF開発=MVVM開発と刷り込まれて学習したような連中は
その辺の考え方をよく分かってなさそうだな
中途半端なVM作るぐらいならコードビハインドに書いたほうがいいな
一番良くないのはVMで実現が難しいのでコードビハインドも使ったりすること
VMの役割が曖昧になってしまって可読性が落ちる
だったらビューとモデルだけにすればいい。これでもWinFormよりはシンプルに書ける
>WPF開発=MVVM開発
これをWPFの本質のように主張してくる奴がウザイ
殺害したい
windowsformからwpfに移行しようと思うんだけど、いまいちやる気がでない
何か、windowsformではできなかったけど、wpfだとこんなことができる。みたいなことってありますか?
WinFormsでは面倒臭すぎてよほどのことでないとやる気がしなかった
オーナードローが、WPFならほとんどの場合ノンコーディングで楽勝でできる。
基本的に見た目だけ。バインディングが便利っつっても
自由度が大幅に増して複雑になってしまった分を補ってるだけで、
特にWinFormsより楽ってわけでもない。
WPFの便利さがわかりやすい実用的な例だと、複雑なリスト表示かな。
Twitterのタイムラインとかヤフオクの商品一覧みたいなのをイメージしてくれ。
あれHTMLならテンプレートエンジンとCSSで簡単に作れるんだけど
WinFormsでは結構大変。細かいデザイン性まで真似しようと思ったら途方もない手間だけど
そこまでしなくてもレイアウト自体難しい。WPFならノンコーディング。
トランザクションスクリプトで組んでるような奴はWinFormsやっとけ
トランザクションスクリプト vs ドメインモデルみたいな話がでちゃうのもu氏の弊害だな。
ドメインロジックを、スクリプトで書くかドメインモデルを使って書くかという話でしょ?
MVVMのMはアプリケーションモデルの話で、そこがステートレスかステートフルかという話を
トランザクションスクリプト vs ドメインモデルの話だと捕らえちゃっている所がなんとも。
アプリによってはMがちゃんとしてれば十分なケースで、
無意味に面倒なだけのVMを作って、それでMVVM糞とか言ってる奴も多そうだな。
VMに本質的なロジックをだらだらと書いて、これがMVVMだと信じてる奴も多そうだな
Viewにはこれ
ViewModelにはこれ
Modelにはこれ
Project全体ではこれ
環境はこのフレームワーク
みたいな、これとこれとがあればMVVMで、作れますよって定義が抽象的っつーか複雑すぎるんですよ
とっかかりから色々な概念や専門的な知識が必要だったら学習コストが高すぎるし、難しすぎなんですよ
尾上にしても、そういうPGのレベルに応じた実例サンプルなんてぜんぜん提示・解説してないわけで
MVVMとフレームワーク(ライブラリ)の両方の使い方を同時に説明してくれてる人って日本だとかずきくらいなんですよね
それも詳細ってわけじゃないし・・・
win32API使った姑息な手とか出来ないのがちょっと最初は戸惑う
>>135 Web MVCをやってみればいい。MVVMや本来のMVCと違って超スタンダードだから
ノウハウも初心者向けのガイドも腐るほどある。
MVVMはどっちかというと本来のMVCよりもWeb MVCに似た感じなので
なんでMVVMがそういう構造になってるのかわかるよ。
Web MVCってVとC-Mが物理的に分断されてるから、直接データベースを弄ったりしてる
長大なコントローラーだらけの糞コード(WinFormsやWPFでイベントハンドラに全部書くのに相当)
でも比較的テストしやすいんだよ
MVVMの場合は通信回線の代わりにバインディングだけでやれという縛りプレイで分離してるわけだ
そう考えるとMがちゃんとしてればVMはそれほど重要なものじゃないし、
VMにたくさんコード書くのも間違いなのは明らか
なるほどな例えだ。確かにwebでajax的に非同期通信やりまくる時の感じに似てるかも試練。
不自由感?がw
もうWPFとかMSがどれくらい力入れるか怪しいものを薦めようと思わない
バインディングはいいけど、F12でソースの方に飛んでくれよって思うわ
このコマンドのコードどこに書いたっけって毎回検索するのが面倒
>>141 バインドはダイナミック
プロパティもコマンドもダックタイピング
実行時までバインド先はわからない
マジ使えねーな
お洒落なVSのサイトこさえてる場合ではなかろうに
>>142 わからないのはわからないようにしているだけ
コマンド名は同じなんだから
そのコマンドに関連付けられたメソッドまで飛んでくれって思う
>>144 わからないっていうより、実行時まで確定しないんだよ
XAMLで指定するのはあくまでコマンドなりプロパティの"名前"だけ
たとえばViewModelAとViewModelBに、それぞれSampleDataっプロパティあるとして
片方はstring、片方はintでも、同じ{Binding SampleData}でバインドできる。
そしてDoSomethingCommandって同じ名前のCommandがあるとして、
片方はExcel出力、片方は印刷だったりしても、両方ともXAMLは共通で
{Binding DoSomehintgCommand} だけで行ける。
どちらのViewModelをバインドするかを条件によってif文で分岐したりすると
ViewModelAとBとどちらなのか、Excel出力と印刷とどっちのメソッドなのか
実行時までどちらかは確定しないでしょ
>>145 じゃあ、どんどんロジック分離していったら
最終的に宣言に移動も参照に移動も何もかもできなくなるってことじゃない?
一体このメソッドやプロパティは何に使われるのかわからないようなゴミが大量に増えていきそう
MODELとVMもそんな感じで分離したらもうわけがわからない
>>145 確定しなくてもいいから、同じプロパティ名に飛べよってことだよ
律儀にIDEもその仕様に合わせることないでしょ
VMのデザイン時インスタンスってのもあるしな。
それが設定されてれば飛んでくれたっていいと思う。論理的にどうかじゃなくて利便性だわな。
Ugayaが余計なことをしなければ、MVVMもここまで誤解されなかっただろうな。今からでもいいから余計なことを言うのを止めて欲しいわ。
コマンドを使わずVMのメソッドにしておいて
イベントハンドラからVMのメソッドを呼び出すようにすればいいんじゃね?
VM省きたくなりそうだが
>139
お前の頭が不自由なだけだろ。
>>151 ほぅ。お前は動的ページと静的ページとで工数が変わらんってことか。流石だなw
コードビハインドと比較すれば間違いなく不自由でしょ
あえてやりとりの自由度を下げることで部品の再利用性や保守性を上げるんだよ
カプセル化ってそういうもん
実際GUIを頻繁に作り変えたりするのかって話
ほとんどないだろそんなの
そもそも論で、新規プロジェクトでWPF作った時にXamlとcsしかないんだからコードビハインドでゴリゴリ書くやつを下等PGとか酷いと思います・・・><
新たにGUIを書きなおそうとした時
プロパティ名をVMと同じにしないと当然動かないわけで
じゃあ、どんなプロパティが用意されているのかと探すための補助機能がないから面倒過ぎる
例えばイベントハンドラなら、デザインプロパティから選んだりできるので楽だけど
そういう機能がコマンドやバインディングに用意されていない
分離することで作業効率が落ちているとしか思えないんだが
イベントだと対応するイベントハンドラがないとコンパイラエラーが出るので
そこは確かに煩わしく感じるけど
結局GUI有りきでコーディングしていかなきゃいけないんだよな
>>155 MSが用意してくれているMVVMテンプレートだとVMにコード書くようになってるぞ
>>157 マジっすか?
だったらRouting Eventとかなくしてコードビハインド禁止にすれば下等とか争わなくて済むのに!
そしてXamlにポトペタしたら自動的にコマンド作ってくれてバインドしてくれればいいのに!
そして当のMS自身はVisualStudioやBlend作るのにコードビハインド全開という事実
ブラック企業であればあるほどMVVMは無理ゲー。
作りながら設計みたいなのには向かないw モデルの変更入りまくりでふぇぇぇ・・ってなる
要するにユーザーには幻想を見せておいて自分は実利に走っとるんや
さすがまやかし企業なだけあるで
つーか、マイクロソフトが公開してるサンプルだって、コードビハインド
使っとるだろ?
勝手に幻想抱いて、勝手に振り回されてるのは、愚かなオタクプログラマー
だけってこと
MVVMが適してるのってデータベースの行弄ってアップデートするだけの
しょーもない画面がたくさんあるアプリだよ
VisualStudioみたいに一つの複雑な画面で拡張性持たせるようなのには向いてない
趣味で作るようなツール系のアプリにもね
C#自体があるソフトの外部ツールとして動作させるのに向いてない
ちょっとした処理をさせたいだけなのに処理よりも起動の方に時間がかかる
WPFが必要な場面ってなに?
PC自体が下火で、やっているのはエロゲーマーかアングラなP2P利用者ぐらい
より多機能で重くなっていくOSなんて誰も求めていなかったんだなとつくづく思う
業務アプリ向けなんだが
業務向けマは勉強嫌いだからな
確かにプログラミング好きってPGに会ったことないな
家でプログラミングしてるやつなんて10人に1人もいないよね
小学生の時からプログラミングやっているおれ
もちろんプログラマなんかにはならない
趣味だからね
てか、便利なとこだけ使えばいいんじゃないの?
名前が同じだけで別々のプロパティ・コマンドにバインドさせたい時は
敢えて同名で統一しとけば楽勝で簡単ってだけ。
名前も違うし機能も違うけど、共通のViewを使いまわしたいっていうなら
ViewでDependencyProperty定義して、
そこからコードでバインドさせるようにしてやればいい。
別にコードビハインド否定する必要はないよ。俺も使いまくってる。
UIが見えないhidden的なコントロールにした方が便利そう
>>156>>168 プロパティ名とVMが同じじゃないと動かないってどういうこと?
違ってもバインドできるよね?
MVVMで作ってみたんだけど
複数のコントロールがあるタブをコメントアウトして削除しても
エラーなくコンパイルできるな
これはすごいや
WinFormだとイベントの宣言削除しなきゃいけないのですごく便利
>>170 なんか単純にアンカー先混乱してるだけの気がするけど
145=168=俺で、
156は赤の他人で、言ってる内容も立場も全く逆だよ
プロパティ名とVMが同じじゃないと動かない云々ってのは
156の言ってることで
それに対してのレスも含んだのが168だったけど。
XAMLで直接{Binding 〇〇} って指定する場合は
同じ〇〇って名前のプロパティなりコマンドにしかパインディングできない
動的に△△や××って名前のプロパティやコマンドに
実行中にバインド先を変えたいなら168のように
コードビハインドからバインドさせるしか思い浮かばないけど
>>171 そんなもnMVVMじゃなくてコードビハインド+イベントハンドラでも同じだぞ
>>165 業務アプリというのは、システムを開発して業務を効率化するためでなく
企業ごとに存在する奇妙なルールをシステム化してるだけの仕事だからな
しかもシステムの仕様を決定するのは、現場ではなくあくまでお偉方
当然業務内容の改善なんか提案できるはずもなく
エンドユーザーも使いたくないようなシステム作らされる
しかもその理解しがたいルールを成文化し設計・コーディングするので偉く骨が折れる
モチベーション下がるし学習意欲も失って当然だろう
実際に作るのは下請けだし、給料安いしな。使い捨てだし。
> しかもその理解しがたいルールを成文化し設計・コーディングするので偉く骨が折れる
修正↓
しかもその理解しがたいルールを成文化するだけで偉く骨が折れる
さらに営業が理解し切れてない仕様から設計しコーディングするので苦労は筆舌に尽くしがたい
しかも顧客へのヒアリングに必ず問題があって、毎回開発途中で劇的な仕様変更が発生する
納品=プロトタイプのリリースか?ってくらい変更入るのもあるぜ。契約どうなってんだw
規模が大きくなってくると相手の会社にも業務ルール把握してる奴がいないという
ナンセンスなギャグを披露される
仕事の話をしているひとってC#で仕事しているってこと?
C#・VBどちらでも実装できるよ
くだらない仕様に振りまわされるだけでも疲れてるのにWPFへの移行が加わりチームが限界に近づきつつある
そこにMVVM習得しなければWPFは使えないという空気が蔓延すると、チームがトドメ刺されてしまう
これだけは回避したいです
WPFするにはPrism,Livet必須です
ステマってんじゃねーよ死ね
MVVMしなければWPFやる意味が無いです
ステマってんじゃねーよ死ね
WinFomsの苦しみから解脱したいからWPFするのに
さらに苦しみたくないです
そしてVMのコマンドハンドラでSQL発行するクソの山ができあがるんだろうな
VMを必要以上に有難がる奴ってMのなんたるかを理解してないと思う
sucks so much
MVVMはじめてから女の子にモテるようになった気がする
fuckness
MVVMで腰痛治りました
僕はMVVM使い始めて一週間で彼女が出来ました
kick you butt
WPFで文字に影つけて
背景をグラデーションにしとけば
現場しらないおっさんたちは喜ぶんだから
MVVMとか別にいらない。
WPF技術者が増えないわけだ。
とりあえず、別にMVVM使わなくてもWPFは使えるからね
変にハードル上げる必要ない
『Pro WPF in C#』とか、予備知識ゼロから勉強できていい本だけど
厚さ6〜7cmある分厚い本だけど全部コードビハインドでやってる
MVVMとか全く出てこないよ
(別に、MVVM否定してるわけじゃない。俺はMVVM使ってるしw
ただ、MVVMを一切使わないWPFもそれはそれで別に間違ってないってこと)
あとBlendとかも別に要らない
複雑なアニメーション作る場面とかしか使ったことないや
コードビハインドに書くとメモリリーク起こすからなぁ
XDesProc.exeがやたら固まるんだけど
記述がクソなせいですかね
>>197 書き方による
うまく書けばリークしないよ
なぜどういうときにメモリリークするのか理解せず、
ただUの言うことを鵜呑みにしてコードビハインド書くとメモリリークと唱和してるような
レベルで無理してMVVMなんて使ったところでメリットは得られないだろうし
ほかのところでメモリリーク起こすよ
Microsoft.Expression.Interactionsってなんで標準じゃないの?
Blendのための機能だから
VSのデザイナだけじゃビヘイビアなんかはっきり言って使い物にならん
シノフスキー退職でまた混迷しそうだな
今更メトロsageでWPF推しになっても手遅れ
c#はメモリリークしないっ言ってたじゃないか。
だれが
フレームワーク的にはしないとも言えるんじゃないか。参照があるから掴んでるんであってw
WPFのtoolkitのChartでSilverlightのtoolkitのChartのStackedColumnSeriesの様な表現がしたいです
グラフ上で凡例ごとの値を縦積み表示にするやつ
■←こんなの
□←こんなの
■←こんなの
WPFのtoolkitに同様のChartはあるんですがStackedColumnSeriesはありません
同様の表現をしたい場合、代替のクラス、プロパティ等はありますか?
CallMethodActionにパラメータ渡したかったら
Command要る?
Command全廃でおk
>>209 WindowsFormsHostでMicrosoft Chart Controlsを使えばおk
XAMLのChartとかウンコだしこんなもんWPFにこだわる意味ない
>>212 ありがとうございます
糞なのか・・・Silverlightでは長く採用してきただけに残念
でも、せっかくなのでその方法でやってみます
WindowsFormsHostは既にWPFから帳票.NET呼ぶ段で使ってるからなんとかなりそう
市販コンポーネント買っちまえ
Infragisticsのコンポーネントはいいぞ
すべてのコントロールがWinForm以上にならないとやる気がしない
劣化するとかありえんわ
同じことするのにコーディング量が増えるなんて論外。それならMFCのほうがマシ。
なになにの責務とか考えてると禿げる。コードビハインドが全責務を負いますよ!
可能かどうか教えてください。
ListBoxの各1行に画像とテキストを配置するように、バインドします。
この状態でListBoxのアイテムをクリックすると、画像とテキストを含めた1行全体が選択されます。
そうではなく、1行内の画像、テキストの各項目をクリックできるようにしたいのですが
可能でしょうか?
可能
Window表示して閉じたらただちにGC.Collect実行してるのだけど
GC.GetTotalMemory(True)で調べたら、Window起動するたび使用領域増えてくるが、これは仕様なの?
まずパフォーマンスモニターでどのヒープが増えてるのか調べるんだ
.NETってクライアントの応答性を重視しすぎてGCのメモリ管理に問題があったりするんだよな
WPFで画像のバッチ処理とかやろうとすると素直に書いたらほぼ確実にOutOfMemoryで逝く
見方よく判らないけどメモり見るとWindow起動するたびワーキングセットが一番増えてる
それに引きずられる感じでコミットとプライベートが増えてる感じかな
タスクマネージャーじゃなくてパフォーマンスモニターだぞ
でグラフにCLRのメモリ系全部追加する
特に注目するのはGen0Heap,Gen1Heap,Gen2Heap,Large Object Heapやハンドルの数など
thx、調べてみました。
Gen0Heap
単位0.000001で22くらいを維持してる。起動する瞬間だけ増える
Gen1Heap
単位0.000001でWindow起動する瞬間増えるけど、その後減ったり増えたり
Gen2Heap
単位0.0000001でWindow起動するたび1〜2増加。GC.Collect実行しても減らない
Large Object Heap
単位0.000001でずっと8くらいを維持してる
Gen0とかGen1ってヒープ世代という理解でいい?
Gen0最初に割り当てたとき
Gen1 GCで生き残ったGen0が昇格
Gen2 GCで生き残ったGen1が昇格
だっけ?
Gen0から優先的に開放されて、Gen2はよっぽど逼迫しないと
開放されないとか
>>226 レポート表示に切り替えてみて、Gen2ヒープの増える量と問題の数値のオーダーが一致するなら
たぶん参照リークしてるんだろうな
よく知られたGCの問題でLarge Object Heapの断片化というのがあるけどそれではなさそう
CLR Profilerの出番。実際にGen2ヒープの状況を覗いてみて、どの型のオブジェクトがメモリを
占有しててどこで割り当てられてて誰に参照を掴まれてるのか調べる。
>>229 スゲェ!マジありがとーです!!!
CLR Profilerの使い方やっと判ってきたので今調べてます!!!!
終了した筈のWindowが起動した数だけヒープに残ってて、
System.Windows.EffectiveValueEntry []→
System.Windows.Automation.Peers.WindowAutomationPeer→
System.Collections.Generic.List<T>→・・・
と追ってったらサードパーティ製グリッドの参照が出てきました
まだグリッドにソース設定してないのに起動・終了繰り返しただけでこれって・・・(`д´;)
WPF、C#でウィンドウを作っています。
タブキーで画面を移動していると、コンボボックスにフォーカスが当たったとき、勝手にコンボボックスが展開されてしまいます。
どうしたら、勝手にコンボボックスが展開されないように出来るでしょうか?
>>232 普通はそんなこと起きないんだが
まず環境を教えろ
>>233 開発環境は、VS2010、.NET3.5、C#です。
動作環境はWin7です。
どうXAML記述してるか判らんから回答しようがないな
>>232 コンボボックスの選択リストがドロップダウン表示されるって事?
フォーカスで選択リストが出るって事はキーボードオペレーション対応の為にフォーカス時展開みたいな事してんじゃないの?
F4押せば出る事しらない人もいるだろうし
それは仕様なのか否か確認するべき
>>238 仕様ではないです。
>フォーカス時展開みたいな事してんじゃないの?
探してみたら、やってました。
ありがとうございます。
痴呆か
Expression Studio 4 UltimateってのはVisual Studio 2010を持っていたらアップグレード版を購入できるんですかい?
タブを多段表示にするとタブをクリックするごとに
上と下の順番が変わるのですが変わらないようにする方法はありますか?
FlowLayoutなどにボタンを追加してタブ代わりにするか思いつきません
すごいコピペでできちゃった
ありがとう
可能か不可能かで教えてくだしあ
WPFとXNAの共存は可能?
(要はXAMLUIの中に一部XNAの描画領域を埋め込み)
それぐらいしなきゃ描画不可能なレベルの要求があるんだが
できる
ちなみにWinFormにXNAで描画もできる
サンプルもいくつかあったと思う
WPFやWinFormsと一緒に使うなら融通の利かないXNAよりも
SharpDXなどのラッパーかC++で生のDirect3Dを使ったほうがいいと思うよ
SilverlightならXNAベースのインターフェイスがあるんだけど
WPFの場合、まったく別個に動かしてサーフェスをコピーする形になる
>>246 ありがとう
WinFormが使えるのはうれしいな
早速確認してみる
>>247 DirectXを使ったほうがよいのね
だけどそっちで見積もれる人間がいないんだよな・・・開発は人を入れるにしても
ひとまず使うかどうかはさておき、確認してみます
具体的な事までありがとう
>>196 > あとBlendとかも別に要らない
> 複雑なアニメーション作る場面とかしか使ったことないや
そう思ってた時期が俺にもあったがこの間勉強会でBlendの話聞いて便利だと思ったよ。
うまく使うと手でしこしこあっちこっちいじらなきゃいけんのを一発でやってくれる。
実際にはBlendとXAML手書きをうまく併用するのが生産性最も高そう。
Blend2012はよでてにゃ!
会社でMSDNの購買担当だったんで2012 Proでいいだろうと思って契約したらBlendがWindows Storeアプリしか作れないんですが・・・?
Blend 4買えとか詐欺だろ糞
blendは甘え
ちょっと検索すりゃすぐ分かるんだから、そのくらいの下調べはやっとけよ…
>>253 その辺業務で絡むんなら無能乙としか言いようがない。
釣り針で有ることを望む。
WPFで作ると苦労して作ったコントロールのデザインを
簡単にそっくりそのままパクられるから嫌だな
エスペラント語で頼む
La dezajno de la komando kiu estis farita kun malfacila?o kaj faris en WPF
Ne malamu ?ar estas facile totalo Parko.
パクられるのがイヤなら全部自力でDirect2Dでも使って描くか
いちいちデザインで特許申請して通るまで公開しないか
そもそも人に見せる物なんか作るな
ページめくりエフェクトや角を落としたタブレットのデザインで意匠取れるみたいだから行けるだろうな
まあアメリカの特許がポンチなだけかもしんないけど
リストボックスのあのクリックのやりにくさをどうにかなりませんか?
文字が書いてあるところをクリックしないと反応しない
普通はどこクリックしても反応するけどね
勉強かねて2chブラウザを作ってるんですが、レスを表示するコンポーネント
をどう作るか悩んでます
・リンク混じりのテキストを表示
・リンクも含めて選択、コピー可能
・もちろん編集不可
・レスを跨って選択はできなくてもいい
・サムネイル表示もしたいけど、それは別枠でOK
自分で調べたところ、RichTextBoxを使うのが良いのかな?と思っているのですが他にいい方法ありますでしょうか?
練習ならListView+ItemTemplateで作れ。WPFの基本だ。
実用ならHTML使うかDrawingレイヤで自作
えー
FlowDocument(≒RichTextBox)だと手で要素並べるんだよね?
どうせそれやるんだったら俺ならDrawing(WPFの方な)でやるかDirectWriteでも使うかなあ
手軽にWPFらしい作り方で作るんだったらItemTemplate使う方のアプローチになるだろうし
>>266 Drawingレイヤでってのはパフォーマンスのため?
WinRTだとDrawing無いよね?どしよう。
HTMLでいいじゃないか
271 :
265:2012/11/25(日) 14:46:37.55
一応今のところListView + ItemTemplate使ってはいます
で、中身をどうしようかなということでRichTextBox使おうかと思っていました
>>267 お〜参考にさせていただきます
レス跨ってコピーとか考えるとHTMLが良いようにも思うんですが・・・
Drawingは知らなかったので調べてみつつ、基本はRichTextBoxでとりあえず
いってみようと思いましたが・・・もしかして素直にFlowDocumentにバインディング
できないんですかね?これ
もうちょっと悩んでみます
>>271 今ニコ生のコメントビューア作ってるんだが、コメント表示機能で同じようなこと悩んでるわ
私見を述べれば、RichTextBoxが無難なところかなと思う。
Drawingだと文字列のドラッグコピー機能とかかなり鬼門になるだろうし、
HtmlだとWebブラウザ貼り付けになると思うが、
WPFのWebブラウザはDocumentがなぜかobject型になっていてどうやって編集すればいいのかわからんかったわ
消去法でRichTextBoxかという感じだ
IEコンポでいいやん。
WPFのコントロールは2chブラウザを作れないほど糞なんだよ
しかも遅い
背景画像をタイル設定してるのにタイリングにならない・・・
まさかCみたいにコーディングが必要とか言わないよね・・・?
夢は終わったんだよ。
>>274 え、WinFormsでやってても普通ブラウザコントロール使うだろ?
今日1日Xaml触ってたけどExpression Studio使いこなすの大変すぎるね
使い慣れたVSでちまちまいじる方が理解しやすいけど、インテリセンスきかなさすぎてWPFのXamlつら過ぎるわ・・・
何か試すたびにググらないといけないから、Formに逃げそうになる
ViewだけでこれじゃViewModelとか嫌になるな・・・
VS2010、C#、XAMLです。
ListBoxとか、ListViewとか、TreeViewに少しずつアイテムを足していきたいと思っています。
別スレッドで一個ずつ足していき、ゆっくり画面に表示されるようにしたいと思ってます。
とりあえず、以下のようにサンプルコードを作ったんですが、
一個ずつ表示されず、まとめて全部表示されてしまいます。
どうしたら一個ずつ表示されるようになるでしょうか?
サンプルコード
MainWindow.xaml.cs
http://ideone.com/uYLLMg MainWindow.xaml
http://ideone.com/zrojUI
281 :
デフォルトの名無しさん:2012/11/27(火) 00:58:17.41
>>280 ボタンを押すとUIが止まってしまう
Thread.Sleepは別スレッドで実行しないと
要はBeginInvokeの中じゃUIスレッドだからforの中にsleepを書けばいんじゃね。
>>282 こちらの方も、ありがとうございます。
おっしゃるとおりでした。
>>277 webbrowserなんて使うわけ無いだろ
.NETのツイッターアプリそこそこあるし
もう2chブラウザ制作に魅力ないんだろう
windowstyle = noneでカスタムウィンドウ作るとマジで処理がめんどい・・・
確かにFormよりは楽だけど、WPFだからってそんなに楽か?って感じなんだが・・・
あとなにげにAero Snapがうざい、これあるから画面上まで持ってったときの処理も必要だし、なんかもう美しいUI目指すとWindowsが糞って結論に達するよな・・・
そのうち無機質が美しいとか言い出すから注意しろよ
来年の1月に2ch閉鎖らしいから今から2chブラウザー作るなんて無駄☆
デザイナ(IDEじゃなく人)が作ったxamlがグッチャグチャなんだけど、整形したりしてる?
普段デザインモードでバインド書いたりとかしないんだよなぁ。見づれぇ…
xamlって見ちゃいけないものだろ。
てか、むしろ、Visual Studioでなら、XAMLしか見ないw
デザインモード使い物にならないし
Blend出るの遅すぎてここんとこ手書きしかしてない
VS2012ならデザイン自体はBlendと大差はないだろ
BlendなしでビヘイビアとかVSMとかStoryboardとか使おうとするのは阿呆としか言いようがないが
>>294 ビヘイビア程度ならVSで充分
Storyboardもケースバイケース
似たような挙動をする大量のコントロールがあるなら、秀丸使った方がより早く実装できるケースもある
Blend出る前にwinBlueが出そうだ
とりあえずPreview使ってるよ
VS2012RTMの後そんなにかからない思ってたから放置してたけど
もうPreviewあったの忘れてたな、入れとこう
LICENSE TERMS になんか書いてあるよね
http://expression.microsoft.com/en-us/jj618396 >4.PRE-RELEASE SOFTWARE.
> This software is a pre-release version. It may not work the way a final version of the software will.
> We may change it for the final, commercial version. We also may not release a commercial version.
> We also may not release a commercial version.
> We also may not release a commercial version.
ええwwww
反故反故っ・・・・!
どういうことだってばよ!
リボンを使いたいんだけど、あれって色を自由に変えられるの?
当然テンプレいじったら変えられる
ふと思ったんだけど、WPFアプリケーションで
ユーザーコントロールを別アッセンブリって組み込むと
UIスレッドは別になったりする?
メインの画面がハング気味なのに、内側のコントロールは
普通に動いてた事があったんだけど、そういう物なのかな?
dllといってもcomコンポーネントみたいな扱いになるのかな?
そんなことはない
307 :
305:2012/12/02(日) 21:45:48.38
thx
思い過ごしですか。
308 :
103:2012/12/02(日) 21:54:21.62
Windowのフェードイン,フェードアウトってどうしてますか?
コードビハインドからBeginAnimationでやるのは正解かな
コードビハインドからVSMで操作するのが正解でしょ
Blendないならやめたほうがいいけど
>>305 別スレッドでコントロール作ったら、そっちのスレッドでもループ作られて動くようになると思うよ。
両方とも別スレッドから触ったらアウトだけど。
311 :
デフォルトの名無しさん:2012/12/03(月) 00:04:40.17
>>310 メッセージループは自動じゃ発動しないよ
あとSTAスレッドにしないといけない
でもアニメーションて、結局嬉しいの、(あるとしても)最初だけなんだよな
見慣れると0.1秒とかの短い時間の動きでも邪魔なだけになる
Windows95の時代から、
わざわざウィンドウの最小化/最大化のアニメ無効にするための
レジストリいじるTipsや、それを自動でやるフリーウェアあったりしたくらいで。
ないないw
その発言はセンスねぇわw
iOSやOS Xのアニメーションがうざいとか聞いた事ないぞ
一つ言える事は、日本国内で業務システム作ってるPG/SEでまともな美的感覚持ってるやつは一人もいないwww
うんこUI量産し続けるおまえらがUIとか語るなやwww
せやな
おう、すまんな。どっから沸いてきたんだw
WPFの標準コントロールってTemplateのせいで
プロパティ反映されないこと多すぎ
TemplateBinding使ってないからじゃね?
普通は要素に直書いてある属性(プロパティ)が最優先になってるよな。
ComboBoxの時点でウンコだよな
Gridにつっこみゃいいって話じゃねーの? 何が問題なのか分からん
<DataGridTemplateColumn.HeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</DataGridTemplateColumn.HeaderStyle>
これで
>>322 ありがとうございます。
ぶじ解決しましたです。
達者でな
WPF WindowのAllowsTransparency = TrueにするとWindowsFormsHostが表示されない・・・
ググるとバグらしいんだが.NET 4.5でもなおってないし、誰か詳しい人助けて・・・
ie9みたく左上にテキスト入力欄があって、
その右にタブアイテムをズラーっとならべたいのにできない・・・
コードビハインドでごりごりやらないと無理なのかな
タブを右にずらすのはテンプレートを使えばできるけど
そういう凝ったGUI作るんならコードで細かく制御するのはどうせいずれ必要だろうから
もっと低レベルな実装をしたほうがいいかもね
winformから移行しようと思うんだけどつらいかね?
ツライ
>>327 テンプレートですか、調べてみます。
ご指摘の通り、低レベルな実装になりそうな気がしますが
移行に苦労するならWinFormsでも糞コード書いてた証拠だろうな
たかが上面
ググって期待する答えが出てくるとは思わないことだ
幸運を
MVVMの為のような機能を一切使わなきゃそうでもないんじゃね。
Vのみでやって、コマンド、トリガーアクション、メッセンジャーこのあたりを使わなきゃ。
直でformを触れない縛りを課すと勉強せんと絶対詰む。
334 :
103:2012/12/05(水) 16:00:23.60
VisualStateManagerの内部的な挙動を知りたいんですが、あるStateの時にStoryBoardであるプロパティに値をセットするといったような動作の時、
その他のStateの際は元のXAMLに書かれていた値がセットされるんでしょうか?
たとえば、あるStateになった際に値がセットされた後、ボタンクリックなどでそのプロパティに違う値を入れた場合、別のStateになった際にXAMLに書かれていた値が上書きされると考えればいいんでしょうか?
そんなに詳しくないけど、XAMLで書いたデフォルト値は上書きされることは無いけど
StoryBoardで更新した値が何もしないで戻ることはないんじゃ無いの?
ただDoubleAnimationで言うと、別のStateでキックした
StoryBoardの初期値(Fromを省略した場合)は最後に設定した値で、
デフォルト値(Toを省略した場合)は元のXMALの値のままって事じゃ無いの?
間違ってたらごめん
StoryBoardどTemplateの使い分けってなに?
例えばボタンならどっちもそのときの状態でプロパティ変更するじゃん
Blendないとコスト高すぎて採用に足踏みするような機能は使いたくないんだが、おまらがStoryBoardいうから
要素ツリーの構造自体に影響するような変化はTemplate
見た目に関するプロパティを変更するだけならStoryboard
俺の場合
単一コントロールの見た目に関するプロパティを変更するだけならTrigger
複数コントロールの見た目に関するプロパティを変更するだけならStoryboard
いやTriggerってStoryboardを開始するもんだろ
とも限らんだろ。アクションはだいたいなんでもできる
そうじゃなくてTriggerとStoryboardの使い分けって意味不明
Trrigerだと複数のエレメント制御しづらいじゃん
StoryboardはXAMLがひどく冗長になるのでTriggerで済むものはTriggerで対応するよん♪
だからStoryboardを起動するのにTriggerを使うだろうと言っている
役割の被るものではない
Storyboardと比較するってことはTriggerじゃなくてTriggerActionのことを言いたいのか?
でも公式のTriggerActionってWPF標準の方にもBlendの方もStoryboard起動したり音鳴らしたりするだけで
プロパティ直接を設定するアクションってあえて用意されてないよね
トリガでプロパティを直接変更するなんてXAMLの役割を完全に逸脱してるからな
> トリガでプロパティを直接変更するなんてXAMLの役割を完全に逸脱してるからな
長さ0のアニメーションと考えればXAMLの役割のうちの気がする
xamlの役割とかいう縛りまで課すのか。ご苦労なことだなw
Vの責務かと聞かれればそうだろうし、なにやってもいいと思うんだが
ユーザーの頭が固い(もしくは固くなる)のが最大の欠陥じゃねーの
もともとWPFってXAMLで外観書いてコードビハインドで振る舞い書くのを
ビューとロジックの分離って言ってたんだぜ
ビヘイビアあたりからおかしくなった
ユーザの頭が柔らかくないと使えないツールは欠陥品だろ。
ホントに意味不明だな
なんでちょっとプロパティ変更するのにわざわざStoryboardとアニメーション用意する必要あるのよ
Triggerで充分じゃん
なんか宗教になってるようでちと怖い
金科玉条ってまさにそういうこと
Blend絶対主義者も宗教だよな
別にBlendあってもいいし俺も稀に使うことあるが、BlendなくてもXAML書けるしVSだけで事が済むならBlend使わなくていいと思う
Blendに傾倒するならExpress版を出せっ!
MVVMだとかWPFの
表示系と処理系の分離とかは、良いんだけど、如何せん、フォームに比べて面倒だと思う。
フォームでも設計によっては、データバインディングとかで表示系と処理系を分離させることはできるし、
なんだかかっこいいグラデーションとかそういうのを気にしないようなアプリ作ったりするのに
WPFとかXAMLとかBlendとかどうにも手を出しにくい感があるわ。
WinFormのデータバインディングはListViewが出てきた途端にどうにもならなくなるのが…
データバインディングは甘え
XULみたいに楽なのがいい
なんて読むの?クシュル?
ずーる
ゴーストバスターズの悪い神様から取ったみたい
無料版ではほとんど何もできないことがわかり即時撤退しますた
複数人での大規模な開発じゃなければ無料版で困ることはない。
FlowDocumentScrollViewerのスクロールっていじれないのでしょうか
html5 > flash > silverlight > WPF
flashは最下位だろ
あれは子供のオモチャ
HTML5以外のRIAプラットフォームに将来はない
HTML5で全て解決できるようになるの?
ActionScript3のWinAPIへの食い込み方見てると、
C#を超えてる部分もあるんだよな
特にマルチメディア関連
以下、股間に食い込み禁止
おっぱいにならいいんですね?
元祖ボンテージかぁ
胸熱だな
HTML5もまだ話半分って感じだよなあ
一蓮托生という気にはとてもなれない
JSはもう少しカッチリさせて欲しい。変態杉
変態JS…(ゴクリ
TypeScript使え
言語自体はC#より綺麗だぞ
Xamlのどこがスマートなん?
VMSもTriggerもビヘイビアもぜんぜんスマートちゃうやん・・・
もっとこうHTML+CSS+JSみたいにでけへんのん?なんでボタンやイメージの状態遷移だけでこんなめんどいねん、アホちゃうのM$?
Formのカスタマイズを100倍簡単にするか、WPFをもっとプッシュしろやボケェ!!
あんたかてアホや
HTML+CSS+JSがスマートだというのか???
HTML+CSS+JSばかり書かされて麻痺してるコーダーだろ
JQueryすげぇとか言っちゃうタイプ
タグ打ち込むのが既に面倒
*application1
*button1
button1*
application1*
みたいに書けへんやろか
HTML+CSS+JSは10人居たら10通りの実装になるからなぁ。アプローチ自体が違ったりとか。
XAMLは少なくともだいたいみんな同じになる。だりーけどな
よっぽど単純なものじゃないと同じにはならないと思うよw
stack使わない人もいるし
言葉が悪かった。xamlじゃなくてwpf。xaml自体のツリー構造はまぁ違うだろうけど・・w
リッチテキストボックスのスクロールって無効にできますか
ちょっと言葉足らずじゃない?
GUIだけWPFで作って中身C++とかもできんの?
直接C++(C++/CLIでない)からWPFを使うのは不可能。
C#やC++/CLIで橋渡しをすれば可能。C++/CLIはWPFのVSサポートが無いので本当にやるならC#。
コード量が倍増しメモリ破壊に悩まされることに見合う効果があるかといえばまず無いけどね。
長時間にわたってCPUフルにぶん回すタスクがあるならそこだけC++にするのはアリ。
388 :
デフォルトの名無しさん:2012/12/15(土) 07:58:50.46
今度もしかしたら、業務でWPFを使うかもしれないんですが、
Gridで千行とか二千行(もしかしたら万まで行くかも)を表示した場合、
IvyBridgeの内蔵GPUでは表示に耐えられない可能性とかってあるでしょうか?
WPFは表示はGPU依存だと聞いたので、CPUではなくGPUが足かせになるのかもと思っているのですが、
現状のGPUだと表示は気にしなくていいレベルなのでしょうか?
(3Dは使わないので、Grid以外、そこまでGPUにシビアな処理はする予定はありません)
389 :
388:2012/12/15(土) 07:59:34.01
すみません、sage忘れました。
Gridって多分DataGridのことだよね?
文字通りのGridというのはWPFではレイアウトに使うパネルの1つのことで
そのRowDefinitionが1000も2000も並ぶXAMLとか、まずあり得ないよね
多くても2ケタ程度だと思うし
DataGridとかListBoxとかの各行は、
画面に実際に映っていない部分は実体が作られていない
スクロールして画面に入ったところでその部分だけが実体が作られて
スクロールして画面からはみ出たら勝手に破棄される
(これがあるから逆に、消えてしまうものの状態を管理するのに、そこをMVVMで処理しようって話にもなる)
GPUの性能は、その部分に関してはほとんど関係ないと思う
数万行あったとしてそれをGPUで常に処理すると思ってんの?
>>390 普通に考えたらそうなるのかなと思うんですが、
今同じようなプログラムがRiaのFlexであるんですが、
(こちらに関しては開発をしているわけではないので中身はわかりません)
これが行数が増えるとすごく重くなるので、
WPFで作っても同じようなことにならないか不安で聞いてみました。
WPF期待してたのに全然盛りあがんねー
WPFにWinFormsのコントロールを貼ることができるから、
WinFormsのDataGridViewを使えば爆速だよ
まずはとりあえずデータグリッド貼っとけみたいなクソUIを何とかすることを考えるべきだろ
WinForm(笑)
データグリッドなんて使う時点でWPFのメリットなんかどうせ無いんだから
使うんならWinFormsのを使えばいいよ
なんかレベルの低い人みたいで嫌だよ
WinForm最強は同意。
みたいとか何とか
イメージで判断するなら全部そうしろよ
中途半端に他人に意見もとめんな
データグリッドなんかに頼ること自体がレベル低いだろ
こんなもんUIの敗北だ
WPFならItemTemplateでオサレに作れ
ダサくて使いにくくて評判悪いよ
WinFormダサイ
WinFormのねずみ色がもう恥ずかしいレベル
色に拘るようになったPGは用済み。
WinFormでも背景色ぐらい変えれるだろw
無意味に変えてもださいけどw
406 :
デフォルトの名無しさん:2012/12/15(土) 20:34:58.39
大体において、OS標準から無意味にデザインやUIを変えてあるソフトは
嫌いだな。よほどセンスと使い勝手がいいか、変えてある事になんらかの
意味を見いだせるようなものであれば、受け入れるけど
いまやOSが勝手に変える時代だしな
e糞plorerにリボンとかあほちゃうかと
いまだにリボンに馴染めない老害w
Explorerのリボンは控え目で使いやすいだろ
ただのアイコンがでかいメニューじゃん
確かにデフォルトの設定だと本当に見やすくなったメニューそのものだね。
縦にべろんって出るんじゃなくて横に出るんだからね。
地味に「コマンドプロンプトを開く」や「PowerShellを開く」の項目がありがたい。
っていうかエクスプローラーにもクイックアクセスツールバー付いてたんだな。
今気付いた。ここまで強力になってれば別途ファイラー入れる必要ないな。
Explorerのメニューは非常に見やすくて旧来のメインメニューよりずっと良い
全部このスタイルになればいいと思う
一覧性のないリボンが使いやすいってどんだけw
狭い画面であんなに場所とりやがって。
Explorerのリボンは折りたたんでおくのが前提で作られてるから
本当にただの視認性の良いメニュー
いや視認性が悪いんだが、あれ。人間工学無視しすぎ。
リボンは倉庫で例えると、目録を取り上げられて、
倉庫からなんか取ってこい的な無茶な仕様。バカかと。どこにあるかわかんねーよ
お前のたとえの方が無茶だよ
お前には難しかったようだな。もはや哀れだな
そうそう。項目探すの頭を必要以上に使わないといけない。
>>413 リボンはプルダウンのメニューよりも格段に一覧性は上がってるぞ
ワイド画面を活用して狭い画面を有効活用している
そんなトンデモ誰が信じるんだよw
トンデモって・・・事実やん
お前リボン使った事ないだろ
ribbon で reborn した interface
リボンの良さが理解されてからはMSOffice以外でもリボン採用が進んでるね
Mac版MSOfficeのリボンUIも絶賛されてるし
2009年www
シンプルな疑問だけど自作アプリにリボン実装する場合
アイコンはどうしてるんだ?
リボンでもなんてもいいから消せるオプションだけはつけてくれ
じじぃは最小化して使えば良いと思うの
Vistaの罪は重い
ノートでwin7上でofficeだと縦が限りなく狭い
なんでノートはあの横長のサイズが流行ってるんだろうね
最近は縦1024以上の探すのが大変
地デジ化に伴う一般人の大量のテレビの買い替えで、
一般人の画面に対する感覚が、
それまで4:3が標準だったところから16:9が標準に変わってしまった
それが一番の原因かな…?
で、持ち運べる14型15型くらいでフルHDの1920×1080とかそれ以上とかにすると
ドットが細かすぎて見づらかったりするんでドットサイズ的には1366×768くらい
でもこれだと画面狭すぎるんだよな。特に縦。
特にあれでリボン仕様のOffice使えとか拷問に近いぞw
まぁOfficeワークはデスクトップ機で、でかい画面でフルHDでやってくれってことかな
高DPIが普及するとか言ってたのはどうなったんだ
血出痔化って日本しかやってないのに
世界中のモニタが影響受けるんだな
> 血出痔化って日本しかやってないのに
えっ
>リボンの良さが理解されてからはMSOffice以外でもリボン採用が進んでるね
うそつけ
どんだけ世間知らずなんだ
他のOfficeでもOffice以外のソフトでも、
フリーソフトでも市販ソフトでもリボン見かけること多くなったぞ
3DCGソフトでもリボンUI使われてるね
そういや何気に4.5から標準でWPFにリボンコントロール入ったんだよね
4.5採用するとXP切ることになっちゃうんだよなー
早くXP氏んでくれないかな
どうせXP切るならD3D1xベースにならねえかなぁ
D3D9だとCanvasライクな重描画をDirect2Dに逃がすことすら辛い…
XP切ったら仕事がなくなるわw
俺の周辺だとやっとXPは終焉に向かってるけどなあ
業務アプリメインでコンシューマはあまりやらないからかもしれないけど
ソフトウェアはともかく誰がOSのサポートすんだろ
終わったOS使っちゃ駄目だろ
XPはこれから始まるんだよ。アクチがなくなるからな。
8使っちゃうと7やxpには戻りたくないわ
マウスでもこれだけ快適ならタッチだともっといいんだろうな
流れぶった切ってすいません
ListViewでスクロースされてどのItemまで表示されたか知りたいのですが
そういったことは可能でしょうか?
Itemのプロパティのセッター監視して・・・とやってみたら、実際に表示される
少し前に値を取りに来て(あたり前ですが・・・)意図した形になりません
何かいい方法あればアドバイスいただけると助かります
アクチがなくなった所で著作権は消えないしプロプラでなくなるわけでもない
第三者がサポート会社立ち上げるのは無理があり、フォローもなし
1年も経てば30分で色々なウンコに感染するゴミ箱と化す
>>443 そのD3D1xも切られるんですがwww
VSのスレ読んで来いよ
D3DXは廃止
の間違いだった
おまえらにFairiesの秘密を教えてやろう。
デブが4人いる。
>>450 坊やがあと1週間いい子にしてたら、きっと願いが叶うじゃろうて
Ho Ho Ho
>>450 基本的に無理そうだけど、ListViewItemのOnRenderをオーバーライドしたら、
どうにかできないかね。itemでどう発生するのか知らないけど・・
459 :
450:2012/12/16(日) 23:15:00.02
>>456-457 ごめん、なんかのネタなのかも知れんけど、全然わからん
ちなみにもう1週間以上悩んでますw
>>458 やっぱ直接は無理なんかね?
もしくは表示されているItemを取得するとかでもいいんだけども
指定Itemまでスクロールすることはできるんだけどなぁ・・・
OnRenderか
ちょっと試してみます
アドヴァイスありがとう
ListViewItemの側から確認するとか
>>460 ごめんなさい、分かりません
「ListViewItemの側から確認する」とは具体的にどういうアプローチですか?
ListView内でのItemの位置が取れたりするということでしょうか?
昔2chブラウザもどきつくってたとき
どのItemが表示されてるかいろいろやったけど
簡単にできるのはなかった
難しいアプローチはあるけど実用的じゃなかった
>>463 タイトルバーがクラシックになるから.NET 4.5付属の使え
467 :
450:2012/12/17(月) 22:43:48.02
>>462 で、できたよ!ママン!!
ありがとうございます
助かりました
>>464 私も実は2chブラウザもどきつくってました・・・^^;
上のやり方簡単でしたよ
ただ、明示的に取に行かないといけないので、いつとるかがちょっと考える必要ありますけど
表示切り替え時とかにとりに行くと、下まで一度いった後戻ると、一番下が既読にマークできませんしね
VirtualizingStackPanel内蔵じゃなかったんだよね
469 :
450:2012/12/17(月) 23:02:23.67
flowdocument内の一部RunやSpan要素を右寄せにすることってできますか?
>>467 その調子でVirtual...になんかいべんとないかね?
472 :
450:2012/12/19(水) 22:09:35.56
>>471 返事遅くなりすいません
一応調べてみましたが、スクロールが止まった時のような都合のいいイベントは
なさそうですね
とりあえず、スクロール後に戻したときの対応は放置してまた後で考えようと思います
ありがとうございました
協力して欲しけりゃリポジトリーでも作った方がええんでわ
俺は興味ないからやらんけど
せめてGitHubとか使えよ
ありがとうございます。
リポジトリーですか...
あまり良く理解してないんですが、githubみたいなのを
使うんでしょうか?ちょっと調べてみます。
>>473 中身詳しく見ないで質問するけど、WPFの2ちゃんブラウザーでAAをずれずに表示はできるのかい?
この前
>>473さんのブラウザを試したときは無理だったんだが、設定次第ではずれずに表示できたりするのかい?」
478 :
473:2012/12/20(木) 20:58:31.65
>>477 こちらではフロードキュメントで表示してますけど
ipagp-mona.ttfというフォントが公開されているので
それを指定すると程度の問題はありますが
一応ずれないで表示されると思います。
AA判定文字列を指定して、それにマッチしたレスは
そのフォント(ユーザーが設定)で表示みたいな流れにしてます。
インストールした状態ではずれます。
>>478 java畑の人?
前にもソースちょっとだけ見させてもらったけどC#の標準的なコーディング規約くらいは守った方がいいと思うよ
メソッドが小文字始まりだったりプロパティ使うべきところでgetter使ってたりね
意欲は非常に素晴らしいと思うけど、何をしたいのかよく分からない
PDFの中もちょっと見たけどこれらC#始める人にいっしょに2chブラウザで勉強しましょうってはなし?
それならコンポーネントの再利用どうこうって話は早すぎると思う
ガチで共有コンポーネント作ろうってなら、何を共有化してどこをで差別化するのか、イメージが固まってないと。。。
少なくともPDFからはそういうビジョンは見て取れない
後者ならちょっと興味ある
ちなみに自分は
>>450なんで、たいした事できるレベルじゃないんだけどね
きついこと言ってごめんよ
481 :
478:2012/12/20(木) 22:54:07.15
ありがとうございます。
ちょっと、長文ですが...すみません。
やりたいことというのは単純に高機能な2chブラウザーを
作りたいということになります。
コンポーネント化については、2chブラウザーに必要な機能が
最初に想定していたときよりも多かったので、誰か作ってくれる人がいるかも
と思って、外部DLLアッセンブリを選んだ次第です。
便利な物があったから利用したという目線であって、
なにかこの部分で特別なことをしたいという気持ちはないです。
とりあえずレス一覧部分を部品化して、この方向で発展するような感じがあれば、
残りのGUIの多く部分を同じ様なレベルでコンポーネント化して見たいなぁくらいの気持ちです。
コーディング方法に関しては稚拙な点も多々あると思いますが、
完全な物を作るよりも、まず動く物が無いと始まらないので
スクラップビルドになったとしてもかまわない気持ちで作っています。
こんなレベルじゃ駄目だなぁと思われればそれはそれで仕方ないことですので
あきらめてほかの方向で行こう!となると思います。
バックグランドはしいて言えばC/C++ Windows系みたいな感じです
C#は5月くらいから解説書を読み始めたレベルなので、コーディング規約とか
おかしいところが多いかもしれません...ご指摘いただくのはありがたいです。
2chサーバとのやり取りとか共有出来るならいいかなー。コンポーネントとしてでなくやり方だけででも。
UIコンポーネントとしての共有は難しそうだけど。まぁそうするとこのスレでやる意義がなくなっちゃうのかな
既に高機能な2chブラウザあるのに、WPFで新たに作る意義ってなんだろう。
コードの大部分はWPFと全く関係ない処理だろうしな
janeは低性能で拡張性がない
WPFで作り直す意味は薄いと思うが
Delphi以外の言語で作り直す意味はあると思うな
シェアの大きいブラウザが先の無いDelphiで書かれたものが
ほとんどだし
でもWPFってグラフィックリッチなGUI作れるんじゃ無いの?
3Dとは言わないけど、海外の格好いいフラッシュ多用した
WEBページみたいなの出来たら意外と良いと思うけどな
フラッシュ多用はめちゃくちゃ嫌われてるのにカッコイイってどういうことだよ?
2chブラウザって基本テキスト表示するだけなのに
一体どうグラフィックリッチにしたいのか
今のとこGDIだけを使った奴しかないんじゃないの?
それとWPFならRTに移行出来るかもしれないし
今更というより今からという意味で意味ありそうだけど
移行の容易さはGUIフレームワークがちょっと似てるから移行しやすいなんてことではなくて
ビューとロジックの分離がきちんとできてるかどうかだろ
その点twinは酷かったからなあ
492 :
480:2012/12/21(金) 11:14:51.77
>>481 ここくらいは目を通しておいた方がいいかも
http://msdn.microsoft.com/ja-jp/library/ms229042(v=vs.100).aspx
個人的な意見だけど、一緒に同じブラウザを開発しようっていうんじゃなければ
共有したいのはUIよりそれ以外のとこだと思うんだよね
異なるブラウザを作成してる人がいたとして、確かにすべてを一人で作るのは
大変だと思う
だから共通化できるところは共通化したいと思うのもわかる
でも、作る以上は他人のブラウザと差別化できないと作る意味ないよね?
そうなると差別化するところって主にUIとかUIに関連する機能の部分だと思うので
そこを共有化しようってのは、ちょっと抵抗がある
それより例えば、2chや外部板や●に対応した通信モジュールとか、datをパースして
オブジェクト化するところとか、そういうところなら共有するメリットは多いと思う
特にレスの解析ロジックとか大変だし・・・
それと他の人もいってるけど、再利用するレベルも考えた方が良いかと
今の段階で漠然とコンポーネント化といっても難しいと思うよ
コンポーネントとして再利用するのではなくて、コードを再利用するレベルから始めた方が良いかもしれない
とりあえずそんなとこ
長文失礼しました
>>483 > 既に高機能な2chブラウザあるのに、WPFで新たに作る意義ってなんだろう。
iPadのアプリ使ったらJaneとか使いにくかったりこなれてない事が分かった。
機能は多いかもだけどね。
494 :
450:2012/12/21(金) 11:41:52.10
これを言うかちょっと悩んだんだけど、私の場合
>>481の人とちょっと似てる
クラウド的な2chブラウザが欲しかったから
あと実際のところはWPFじゃなくてWinRTで作ってる
Metroスレがあまりに過疎ってるのでこっちにお邪魔してます・・・ゴメン
そのうちWPF版にも移植したいので、WPFも並行で調べながらベースを作ってる
のもあるんですけど
非同期実装の差異をどう吸収するか悩み中
.NET4.0以降にしちゃおうかと思ってるけどw
>>494 C#の非同期って.NET4.5以上じゃないと使えないんだっけ?
F#なら2.0相手でも使えるよ?
asyncはTargeting Pack入れれば.NET4でも使えるしそもそもTaskで十分だと思うけど
WinRTのAPIは非同期のみだからAPIがかなり違う
>>493 ほうほうなるほど。是非493の考えるUIを見てみたいもんだ。頑張ってくれ
俺はvb戦士だから参加できんけど・・w
498 :
450:2012/12/21(金) 12:10:46.09
499 :
495:2012/12/21(金) 12:23:39.45
>>498 ごめん、async/awaitの話ね。
通信ライブラリの差異は同じシグネチャーのをインジェクトすればいいと思うけどね。
通信含めた処理をモデル化出来ると良いんだろうけどね( ´Д`)y━・~~
500 :
450:2012/12/21(金) 12:30:46.66
>>499 そうなんですよねぇ
ただそうすると、それらをカプセル化してるインターフェースにはasync/await構文が使えないわけで・・・
どうせ万人に使ってもらおうって代物ではないので、.NET4.0縛りでもいいかなとw
>>489 まあ、1レススライド方式とか、5レススライド方式とか、
タグクラウドみたいにキーワード抽出とかの可視化とかはWinformとかよりやりやすいんじゃない?
502 :
デフォルトの名無しさん:2012/12/22(土) 16:13:08.10
>>473 開発仕様書を読んでみたが、もともとコード派でXAMLにこだわらない私には
非常に参考になった。WPFにこんな使い方があったのか感心した。
このような自由な発想は素晴らしい。
WinFormsと同じ、伝統的な普通のコンポーネント指向だろ
MVVMの方が本来イレギュラーで、こういうのがWPFの正しい使い方だよ
>>503 WPFでMVVMをイレギュラーと言っちゃうのはどうかと思うけれどw
一応、Blend売りたいからか、MS押しだからなぁw
分離に拘る価値があるかは現時点で微妙だが。
>>504 BlendやVS自身は437みたいな設計だよ
.MVVMはあくまで業務向け
>>505 業務用かどうかは知らんが、ユニットテストしたかったら必然的にMVVMにならざるを得ないからな。
WPなどほかのプラットフォームに移植するのを考えてもMVVMにして色々と分離しとかないときつい。
関係ないがRichTextBox、複雑なやつにしてもSurfaceでそれなりに動くな。
美麗なグラフィックというのではないが、タイポグラフィとか使ったナイスな画面を作るのにXAMLで作ったほうが作りやすいだろ。
508 :
495:2012/12/23(日) 07:07:37.72
>>500 async/await使えないってのは4.0縛りなら関係ないんだっけ?
BindingGroup.BeginEdit()やCancelEditとかってどこにかいてます?
ぐぐってみたらWindowのコードビハインドにかいてるようだけど・・・なんか違うきもする。
っ コンポーネント化
511 :
450:2012/12/23(日) 17:39:57.67
どぼん!の.NET Tips
どぼんのサイトって.NET1.1〜2.0時代のWinFormの情報しかないと思うんだが
あそこWPFはともかくASP.NETくらいはやればいいのにな
Win32APIを呼び出す関係でWM_APP〜0xBFFFのメッセージをWPFのWindowで受け取る必要があるのですが
この範囲のメッセージをWPFが使ってたりしますか?
俺らMSの社員か?
WM_APP以上を使うWin32APIってあったっけ?
RegisterWindowMessageつかって登録するとかでいけないの?
あーコモンコントロールが使うのかな?
WPFとか関係ないやん
WM_APP以降はアプリケーション用
ライブラリは使っちゃ駄目な領域だから気にしないで良し
Windowを非表示状態でShowするにはどうすればいいのでしょうか?
VisibilityをHideにしてからShowしても、一瞬表示されてしまいます。
なんでshowしなきゃないの?ソッチを書いた方が・・・無理っぽいし。だってshowしてるんだしw
また2chブラウザネタ入りました〜
経験者談
事前にレイアウトやサイズが欲しい
↓
showしないと実際のサイズなどを得られない
↓
困る
次は影のエフェクトつけたポップアップで
ポップアップ間を移動したときに表示を維持する方法あたりか?
確認する気はないんだけど
表示前にVisualBrushにしてレンダリングするとどうなるの?
憶測だけど
アンカーの上にポップアップ表示したい場合
表示位置を得るために事前にサイズを知りたい
リッチテキストに内容流し込んだだけなので
表示しないとサイズがわからない
>>522 PInvokeでウィンドウハンドルが必要なんです
俺はrenderで縦横0倍にしたり透明にしたりいろいろ試したけど単体で有効な方法はなかった
複合技だね
はずした><
>>528 おめでとう
低能力者の想像を全てぶち抜いたぞ
ポップアップなんてPlacementTargetに丸投げで問題ないだろ
533 :
521:2012/12/29(土) 20:42:32.81
スマートじゃないですが、LeftやTopを画面に映らない位置にすることで解決しました。
マルチディスプレー環境で問題ないのか?
質問です。VS2012 WPF4.0 で作成しています。
DateTime型のプロパティ値の時刻部分だけを表示させてその値を編集できるようにするため次のように書きました。
<TextBox Text="{Binding HogeDate,StringFormat=HH:mm}"/>
これで時刻だけ表示することはできたのですが、これを打ちかえると日付部分が今日の日付になってしまいます。
具体的に書くと
1) WindowのコンストラクタでHogeクラスのHogeDateプロパティに 2013/01/01 0:00:00 を設定。
2) 上記のxamlでテキストボックスにバインド。00:00 と表示される。ここまではOK。
3) テキストボックスのTextを 15:00 に打ち変えると
HogeDateが 2012/12/30 15:00:00 になってしまう。2013/01/01 15:00:00 にしたい。
UI → HogeDate のときに時刻情報しかないのでこうなるのは当然なのですが、
こういうことを実現したい場合、日付と時刻を別々のプロパティに持たなければならないのでしょうか?
(できればHogeDateプロパティだけで日付と時刻を持ちたい。)
だな。wpfは整形の為にバインドソース側で弄るって発想はあんまり良くないと思う。
HogeDateを自動実装の{ get; set; }にしないで
自前で作ればそのsetter内で処理すればいいだけ
これが一番コードの文字数も少なくて簡単じゃないか
>>528 WindowInteropHelper.EnsureHandle() でいいんじゃない?
あるGUI要素について、表示できない領域に移動したりすることをイベントなどで知ることは出来ますか?
スクロールバーでスクロールしたりして、子要素が親コントロールの表示領域から外へ出てしまうようなタイミングが知りたいです。
目的は、外へ出た要素を重要ではないものとしてマークし、最終的にリソースの解放や処理の優先度を下げることができるようにするためです。
よろしくお願いします。
なんでわざわざ自前のコントロール作るんだろ
544 :
495:2012/12/30(日) 22:08:17.24
>>543 Virtualization panelとかの応用でいけるん?
>>540 それを使ったら、何も設定しなくても非表示でウィンドウハンドルが得られました。
ありがとうございました。
546 :
536:2012/12/31(月) 12:06:48.63
>>537,538,539
みなさん回答有り難うございます。
今回の仕様では時刻しか表示/修正しないので
>>539 で行けそうです。
後学のためConverterを使った方法にも挑戦してみたのですが、できませんでした。
ttp://ideone.com/TE28Yw ConvertBackの仮引数valueの値はテキストボックスで入力したHH:mm形式で日付部分がありません。
これをDateTime型にすると結局日付部分がTodayになってしまいます。
ConvertBack内でさらにHogeDateを取得できればいいのですが、そういう方法はあるのでしょうか?
>>546 ConverterParameter使えばいいんじゃない
WPF的に正しいのかは知らないけど、public staticな変数作っちゃうのも手っ取り早いかも
>>546 IMultiValueConverterってので複数渡せる。valueは配列で入って来るし、backは配列で返せばok。
XAML側はMultiBindingで複数書ける。だるいけどな。
VM用意するのが正解だね
551 :
546:2013/01/02(水) 01:08:26.75
>>547 ConverterParameterを使ってみましたが、
<TextBox Text="{Binding HogeDate,Converter={StaticResource converter1},ConverterParameter=HogeDate}"/>
だと文字列で"HogeDate"と渡されるようで、別の書き方でもどうやって日付型のまま渡せるのかわかりませんでした。
ttp://ideone.com/2mshOj >>548 ・・・どうなんでしょう。できればWPF的に正しい方法が知りたいです。
>>549 IMultiValueConverterでもBackするときは時刻情報しかないのでIValueConverterと同じ状態になってしまいました。
>>550 ViewModelに(ModelのHogeDateを分解して)日付と時刻を別々に持つということでしょうか?
いろいろやってみたのですが、ViewModelを使う方法以外では実現できなかったので、
こういうケース(ソースの一部だけ表示してそれを変更できるケース)ではViewModel使うという結論に至りました。
みなさん回答有り難うございました。
VMがビューの詳細に依存してるのでほんとは良くないけどね
あくまで責務とかにこだわるなら、日付型の依存関係プロパティを持った
TextBox?のカスタムコントロールを作るのも手だな。
これならなにも考えずにバインドするだけで良くなる。簡単に使いまわせるし。
俺はどーでもいんじゃねって派だけどw
WPFとMVVMが関連してるのかMSの公式見解がほしいな。
MVVM的に正しいことがWPFとして正しいと言い切れるかどうかってあたりで
てか、バインド使ってる時点で
VMあることは当然の前提として、539,548と答えてたんだけど
VMない場合ってHogeDateは一体誰が持ってるプロパティなんだろう
>>551 コンバータをDependencyObject派生にして、依存関係プロパティにHogeDateをBindingしようといろいろしたけど
リソースのオブジェクトにBindingって出来ないのかな。
どうやってもHogeDateの値が入ってくれない。
つーかさ、コンバータのパラメータは使ったことないけど、
普通に考えて、Bindingに入れ子されてるからってBindingは省略できないんじゃね?
マークアップ拡張で書けないならパラメータは要素構文で書けばバインドできるだろうし。
これもWPFの弱点だね…
認めようとしない人もいるけど
>>558 普通にコード書けばできるし、もともとWPF以外なら普通にコード書くしかないんだから弱点でも何でもないだろう
WPF特有の+αがあまり有効に使えないだけじゃん
winformからWPFに移行組なのですが、
基本的にコントロールはコードビハインドで操作しない感じなのでしょうか?
モデル:データを取得、操作
ビューモデル:バインドできるように加工
ビュー:画面コントロール
こんな認識でいいのでしょうか?
>>560 モデル:基本的に処理はすべてここに書く。
ビュー:GUIを定義する。GUIとモデルの橋渡しをする。
重要なのはこれだけ。WinFormsでも同じ。
WPFではバインドをより有効活用するために特定のビューと一対一で対応するモデル(VM)を設けることがある。
不要だと思われるならVMは省略してもいい。難しく考える必要はない。
>>561 メッセージボックス出してOKなら処理をするとかのインタラクションやある画面へ遷移するなどのナビゲーションは何処に書く?
VMありならVMかV、ないならV
VMでやるんならVMが直接GUIに依存しないように
サービスクラスにGUI操作を詰め込んでインターフェイス経由で呼ぶ
メッセージを使う方法もあるがお勧めしないな
だったらコードビハインドに書いて、インターフェースで限定して渡せばいいような気がするw
>>564 メッセージの代わりならそれでいい
コモンダイアログ類は独立したクラスの方が共通化できて便利
画面遷移もPrismみたいに遷移先のビュー名をサービスに渡す形で共通化できるよ
MFC、ATLが捨てられたようにWinformが捨てられたようにねWPFも捨てられる。
保守性なんか気にするな。適当に設計して書けばよい。
テンプレートの適用の仕方について質問です。
テンプレートをリソースとして以下のように定義して
<Window.Resources>
<DataTemplate x:Key="MyTemplate">
<!-- 略 -->
</DataTemplate>
</Window.Resources>
これを適用する場合、
<ListView ItemTemplate="{StaticResource MyTemplate}"/>
としますが、以下のようなプロパティ要素を使用した書き方で適用させるにはどうしたらいいのでしょう?
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<!-- MyTemplate を適用させたい -->
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<StaticResource ResourceKey="MyTemplate" />じゃないの
>>568 Template コンテンツ セクションのルートに型 'System.Windows.StaticResourceExtension' の要素を含めることはできません。
FrameworkElement および FrameworkContentElement 型のみが有効です。
と怒られてしまいました。
じゃぁできないんじゃないの。
要は外観を持ってる要素を直接でしか入れ子できないと言ってるんだし。
そうですか。ありがとうございました。
DataTemplateが2重になってる
StaticResourceだけでいい
結局、無駄だらけで遅くなるのか。
Blend代返せよクソが!反発大きかったか、普及の妨げになると判断したんだろうな…
MSのくせにGUIビルダは別途金払えはナイわ
Blend無料化なんだろうな
いつになったら製品版がでるんだろうか・・・
デザインをダウンロードしてみたけど
なんとなくフリーウェアレベルだよな
図形揃えたりするのってどこでできるんだろ…
jojoに使い方が解ってきた
形式変換やペンパターンはフリーウェアじゃここまで充実してないけど
チョイつらい
カスタマイズできないのかなあ
Binding以外WPFに興味ないし無料でもいらねー
今のpreviewでも十分すぐる
Microsoft Expression Design
色のスライダー激しく動かしたら落ちた
やさしく、やさしく、ね
去年Open Value3年分割で買ったBlend4どうしてくれんだよ
大事につかいーや
I recently purchased Expression Studio 4 Ultimate or Expression Studio 4 Web Professional and would like a refund.
1.Contact the retailer you purchased it from to see if your purchase is within their return policy
2.If your purchase is not within the retailer return policy: ?North America: submit your refund request through the Microsoft Money Back Guarantee program
?Outside of North America: contact the nearest Microsoft subsidiary for assistance
あっ、Blendは違うのか
捨てられる技術だとは分かってたことだろ。
捨てられたのはDesignerとWebで
BlendはVSと統合だぞ
統合するならショートカットをVS基準にしてほしいわ
Livetを使って開発しようと思うんだけど、何か注意する点とかってありますか?
あまり有難がって使うなよ
新興宗教の信者みたいになるぞ
あなたのおすすめを教えて下さい。
あと、コマンドにCanメソッドがあると思うんですが、それだとEnableしか切り替えられませんよね
それをVisibleも切り替えられるようにするにはコマンドとは別にプロパティを用意するしかないのですか?
VMを定義して専用にプロパティを設けるしかなかろう。
>>591 MVVMか?
DelegateCommand使うスタイルではCanExecuteは使うな。煩雑になるだけ。
>>592が言ってるようにプロパティとバインドすればいい。
>>589 -作者の言うことを真に受けない
-あくまでサンプルコードの一つとして考える。MVVMはアプリの用件に応じて個別に設計するもの。
-その際にはPrismなど他のも参考にすること。
>>591 スタイルで自要素のIsEnabledにトリガーを設定したら
>>593-595 無事できました。
有難うございます。
もうコマンドをやめて、直でメソッドを紐付けようと思います。
それでEnableとVisibleを別プロパティで持たせれば、統一感が取れますし、分かりやす行くなるかなぁと。
ReacticeaPropertyとか使ってる人おる?
トリガーで別のコントロールのプロパティを変えることって出来ますか?
例えば、チェックボックスのTrue、Falseでテキストボックスの背景を赤、青に変えたりです
>>598 一瞬で終わるStoryboardを使う
テキストボックス側のDataTriggerのBindingでElementNameを指定したら?
プロパティを作るのが一番簡単でわかりやすいような気もするが
見た目だけの問題ならStoryboard推奨。MSも多用してる一般的な方法。
論理的な意味があるんならVMのプロパティを経由するのがいいと思う。
TabControlのTabItemをUserContorolで動的に作成してて(ViewModel にViewを適用するやり方っていえばいいのかな?)
UserControlにはFrameを貼り付けてFrame.Sourceに各ViewModelのURIをバインドしてるんですが
Tabを変えるごとにFramの中身が再読み込みされてこまっています。(FrameのNavigateイベントが起こっている)
再読み込みされないようにするにはどうすればよろしいでしょうか。
自前でコントロールするしかないと思う
TabControl.ContentTemplateを使ったものを
作ってみたけど同じ挙動になった
FrameでNavigationUIVisibility="Visible"にすると
タブ切り替えるたびに戻るボタンで戻れるページが増えていくのがわかる
UserControl_Loadedにブレークポイントを置くと初回に一回だけ呼ばれて後は呼ばれない
UserControlを1個作ってページ間共用してるようだ
WPFって流行ってる?
VB6アプリの移行先を検討してるんだけど、
WindowsFormはオワコンだよね?
クライアントアプリ自体オワコンだよ
ASP.NETでやれ
求人みたらわかるよな
ツール的なアプリ(VSとか2chブラウザとか画像編集ソフトとか)にはWPFみたいなものはまだまだ必要だろうけど
MVVMを適用するようなタイプのクライアントアプリは死滅するだろうな
>>608 良くわからん
ツール的なアプリをMVVMで作っちゃダメと読めるけど、そんな事も無いだろ
VB6の移行先ならいかにオワコンでもFormsの方がいいぞ
なぜなら開発者の頭が確実についていかない(いけない)から
典型的なMVVMをそのまま適用するのは難しいんじゃない?
Livetみたいなのは業務向けだと思う
コマンドを動的に増やせるMVVMのバリエーションとかあってもいいと思うけどな
業務システムのVB6アプリなんですが、
MVVMの説明とか読んでみてもいまひとつピンと来なかったので、
やっぱりWindows Formsの方が良さそうですね。
>>612 ならASP.NET(WebForms)にしとけ
古い分枯れてるから、Windows Formsが一番無難だよなあ
見栄えで凝らなくちゃいけないとか、WPFの開発スタイルに魅力
を感じるとか、あえて選ぶ理由があるならWPF選んでもいいだろうけど
MVVMの考え方自体は、良いと思うがXAMLがなんとも面倒すぎるのがな。
616 :
609:2013/01/11(金) 13:43:18.17
>>611 いや、だからなんでかなと
Livetは使ってないけど2chブラウザをMVVMの勉強がてらつくってるけどMVVMだからやり難いってのはないと思うけど
使い捨てするレベルのツールなら確かにMVVMは不要だと思うけど
>608-609
GoogleDriveが使いやすいと思ってるひとには医院で内科医
ちょっと言ってることがわからない
WPFはツール類に向いてない
richtextboxに7000行程度のLOG表示してサイズ変えただけでガクガクする
>>616 MVVMの基本的な構造じゃなくて、今の典型的な実装には問題があるってこと。
直接VMのメンバとしてDelegateCommandを並べるスタイルには拡張性がない。
Janeなんかメイン画面に膨大な数のコマンドがあるけど、
それ全部一つのVMクラスに置くことになってしまう。プラグインのような仕組みも作りにくい。
VSがやってるみたいに(GoFの)Commandパターンで柔軟に拡張できる仕組みが必要。
WPFのイメージって、お天気とか、株価。トランプゲーム等、ちょっとした小物を
一般受けしやすそうに見栄え兼ねて作る感じだと思う。あれこれ機能があるものに関しては、作りにくそうだし重くなりそう。
PrismもLivetに代表されるような典型的なMVVMでは、拡張性といえば画面を増やせることなんだよ
コマンドを増やしていくことは考慮されてない
業務アプリはそれでいいんだけどツール系は大抵コマンドしか増やさないからな
つまり窓口受付とか帳簿入力みたいなフロー中心の業務システムにはまぁ向いてるけど、
1画面でデータ分析したり、EclipseやVisualStudioみたいなツール作るには向いてない、と。
それは気のせい
まぁ知っておいて損はないだろうな
うちの新人がどうせプログラムなんてすぐにバージョンアップかなんかで変わるから、そこまで覚えなくていいんですよとか言ってたわ
そいつはコピペばっかりやって、周りに迷惑かけまくってるけどね・・・
MSに関して深入りするだけ無駄だってのは同意するぜ
QtかGTKでも使ってた方がマシ
Qtは息が長いけど進んで覚えたいとは思わんね
ちょこちょこ更新されていくのとアーキテクチャが一新されるのとどっちがいいかって
プログラムなんてちょこちょこ出来ればそれでいいわ
全く別の業界に転職したい
一気に取り替えようとするから大抵詰まるのにな
暗黒大陸に放り込むようなもんだ
今日逃げたら、明日はもっと大きな労力が必要になるぞ(脅し)
次が出たらWPFほっといて次行けってことだな
MSがXAMLファミリ全部捨てたら電凸する
うぉぉぉおおい!ってなるわw
XAMLは亡くならないだろ
WPFでタスクトレイ関係は結局実装されないのか
どうしてそこまで頑なに拒否するのか・・・・
WPFと関係ないし普通WinFormsと併用するもんだろ
WPFの案件ってブラックでデスマーチばかりだし。
WPFの案件なんて都市伝説でしょ?
WPFの案件ってPC知らないおっさんが、見栄えだけで
なんだかかっこいい、だけのイメージで発注するようなそんな感じだよな。
タスクトレイ今更WPFに入れるよりWindows 7 API Code Packみたいにしてほしいな
タスクトレイってWin7や8ではあんまり使わないよね
<Window.Resources>
<DataTemplate x:Key="DataTemplate1">
<Label Name="label" Content="Label"/>
</DataTemplate>
</Window.Resources>
<Button Name="button" ContentTemplate="{DynamicResource DataTemplate1}"/>
とやったときにバインドを使わずにC#からDataTemplate1のlabelを得るにはどうしたらいいのでしょうか。
button.ContentTemplate.FindNameを使用すればいいのかと思いましたが
第二引数のtemplatedParentが分かりませんでした。
643 :
642:2013/01/12(土) 10:51:50.82
>>642 FindNameのtemplatedParent引数にはContentPresenterを渡したらとってこれました。
なんでName?
一意ならテンプレート使う必要ないだろ
ダイナミックに名前を変えたいんです
以上
なりすましでした…
ドラッグ&ドロップってUI層だしコードビハインドで処理すると思うんですが、
その結果VMのDelegateCommand(よくあるプロパティになってる実装)を
実行する場合って、どうしたらいいんでしょうか。
とりあえず検索しまくってみたら、海外のサイトで
DataContextにVM入れてたら
それをVMの型にキャストして参照を取得すれば?ってあったので
その方向で考えているんだけど、
バインドとかの仕組みではできないのかな。
# レスにお礼を言おうと思ったら規制されてるかもしれません。
# 今はたまたま解除されてるけど。
# 前もって「回答ありがとう」って書いておきますね。
# スレは見てますんで。
さようなら。挫折しました。
その選択はおそらく正しい
MVVM厨は責任を取らなきゃならないな。俺も自分が正しいと思うのを確立するのに
ずいぶん振り回された。いろんなサイトで
どうでもいいけど次はD&Dが楽だといいね
さっさとXAMLを隠蔽してください。
主体性のない自らをまず省みたらどうか
AVG2013のUIが糞なんだけど、これがWPFというやつ?
見てみたけどUIはノートンのパクリだな。
見ただけでWPFだって分かるような特徴はないぜ。デザイン次第。
グラフィカルだからってWPFとは限らん。
動かせばわかるだろ
ListBoxのItemをダブルクリックしたらそのItemの背景色が白、青に変わるようにするにはどうしたらいいですか?
マルチしね
普通のWinFormsで作っているアプリがあるのですが
そこにWPFのウィンドウを追加することって可能でしょうか?
当然可能。WinFormsのフォームにWPFのコントロールを貼ったりその逆も可能。
WPFで作ってても、どうでもいいちょっとしたダイアログなんかは
WinFormsを使ってもいいと思う。デザイナ軽いし。
>>659 あざーす。
早速本屋にいってWPFの本買ってきます。
Welcome to WPF hell !
本買うのか。how to本的なのは勿体ない気がするなぁ。応用的なのならいいかもだが。
基本なら@ITあたり見れば分かるだろうし。
何がHowToで何が応用と言ってるのかわからんけど、一度体系だってきちんと勉強するには本読むのはいいんじゃないの?
Webでやってると知識が興味あるところに偏って、全体を把握できなくなりがちだし
まぁ俺がアホだから必要なだけかも知らんけどw
まぁそのへんは好きにしたらいい
665 :
663:2013/01/14(月) 01:45:14.30
てか、日本でまともなWPFの本って売ってる?
本でいいなと思ったのは洋書(Pro WPF in C#)だけど、
分厚くて重すぎて、とても本屋から持って帰る気がしないw
今後はWPFが標準になるんだよね?
HTMLでしょ
WPFの有効な使い道はVSみたいなタイプのアプリだけなんだから、
MVVVとか言ってないでVSシェルのライブラリ化はよ
マイクロソフトはWin Formからの移行に完全に失敗したよな
フロー系→Webでいいじゃん
ドキュメント&コマンド系→WPFの得意分野だが需要が多くない。簡単なものはWebへ
マルチメディア系→ストアアプリやPC以外のデバイスへ
>>669 VBの時と同じだね
VB.NETになって使いこなせない奴続出
c#はあんなに使いやすいのに、VB.NETはそんなにハードルが高いのか。
いや、VB6使いがオブジェクト指向に尻込みして
VB6にしがみついたまま移行しなかったんだよ
そんなカスはVB6と一緒に引退したほうが世のため
VB.NETは2005でFormがデフォルトインスタンス持てるようになってダメだと思った
VBは、ラムダとか匿名関数使うのにもいちいち
Functionだとか書かないいけないのがださいし、冗長だと思う。
クソ言語を避けてFuncとかいう20世紀臭い省略語になったのが気に入らない
デリゲート型はいらなかったな
TypeScriptみたいに (int, string)=>int hoge; でよかった
スレ的に{Binding RelativeSource={RelativeSource AncestorType={x:Type Grid}}, Path=DataContext}
とかを責めるべき
>>679 セレクタの条件自体が複雑だから誰が作ってもそうなるだろ
他じゃそこまで複雑なことはそもそもできない
メトロアプリでHTMLが使えるならより汎用性の高いHTML使う流れになっていくだろうし、
WPFの出番はなくなっていくだろう
今後の流れとしてはデスクトップアプリUIでもHTMLが使えるようになり、
それがスタンダードとして認められていくことになると思う。
そしてそこにWPFとWPF技術者(爆)はいない。
結局 WPFとはなんだったんだ?
HTMLよりXAMLのほうが使いやすいよ
HTMLの膨大な資産の前には少々の使いやすさなんて無意味
定期的にHTML厨湧いてくるな
最終的にはみんなHTMLに行っちゃう気がするけど…
そもそもメトロアプリの出番がない。ユーザーが使いにくいと拒否反応を示す。
UI変えるというのは宗教変えるみたいなもんだね。
Win8使ってないし
負け組の極みみたいなWPも使ってないし
接点が皆無
ネイティブアプリが無くなることはまだ当分ないだろうが、
Webで十分なものをネイティブで作るのはアホ
昔ほど必要性は小さくなったけど完全に無くなってしまったら困るニッチ技術として細々とやるしかない
一般向けはWebで業務向けはWPFに落ち着くと思うけどな
>>690 それこそWebだろ
WPFが適してるのは用途問わずメイン画面で色々作業するアプリだ
今の業務でもクライアントアプリ使ってませんけど今後WPFが進出してくるってことですか?
ASP.NETで十分だろ
沢山のゴミみたいな画面間を遷移しまくるアプリをWPFで作るのは阿呆の極み
MVVV(笑)
フレームワークとしては大雑把だし
アーキとしては混沌としすぎている
>>693 WPFってウイザード作るのに向いてないの?
受発注系業務や管理アプリは大体webに移りつつある
こんな時代が来るとは思ってなかった
業務アプリってグリッドのイメージなんだけど、Webでグリッド編集って正直微妙じゃない?
そのイメージが微妙なんじゃないか
奴等はエクセルが読み込めれば何の文句も言わない
飼いならされているな
質問してもいいでしょうか?
>>698 まさにその通りだな
Excelのフォーマット改ざんされるのが落ちだけどw
株式のリッチアプリを作ってるが今度はXAML系でやる予定。
あ、ああ・・・無理はしないようにな
703 :
450:2013/01/15(火) 00:44:13.08
スキャナとかのデバイス操作する系はネイティブじゃないと作れないじゃん
まぁWPFである必要性はないけど
一個人ユーザーとしてなら、色々こだわりがあるからWebアプリは
好きじゃないけど、会社で使う業務アプリなら、Webアプリで
十分かな
業務アプリがリッチアプリなとこは現場の要望だろうけど
そこを重視する企業はもうダメだろ
WinForms最強ってことか
業務アプリ作ってるけど、まったく技術力がついてないわ
毎回同じ作業の繰り返しで新しいものを導入しようとする気がない
まあ業務アプリなんて保守的な技術で作らないとね
WebFormsは死にそうなのにWinFormsは息長そうだな
WinFormsの固定概念を捨てろ。
XAML系ではDrawingContextの類は基本使わない。要素を組み合わせて大抵のことはできる。
WPFはせっかくオブジェクトを宣言的に組み合わせて描画するという昔のVBっぽいやり方に回帰したというのに
VBerにも描画コンテキスト脳が染み付いてしまったんだな
VBのせいで前者は頭悪そうで後者が頭良さそうみたいなイメージがあるけど
GUIフレームワークとしては前者の方が本来どう考えても正しいわな
>>711 すみません。WinFormsの概念に凝り固まってます。
とりあえずbmp.Clear()でクリアはできました。
>>714 ありがとうございます。すごいです。
動きもすごく滑らかです。
ウィンドウの右下のほうにボタンを置きたいのですが
ボタンが表示されません。
最後の二行を消すと真ん中あたりに表示されるのですが
なぜでしょうか?
Dim btn As New Button
btn.Content = "閉じる"
btn.Width = 100
btn.Height = 50
AddHandler btn.Click, AddressOf closeWindow
Canvas1.Children.Add(btn)
Canvas.SetLeft(btn, Me.Width - btn.Width)
Canvas.SetTop(btn, Me.Height - btn.Height)
画面配置はXAMLで書こうよw コードビハインド、しかもVBとかw
多数派の流儀に合わせた方が、質問とかも回答してもらいやすいと思うよ
わざわざCanvas使うよりDocPanelかGrid辺りの方が、楽に右下配置できるよ
デバッガの使い方は覚えた方が良い
SetLeftのところでブレークポイント貼ってMe.Widthとbtn.Widthの値を確認してみるとか
widthじゃなくてactualWidthでやってもダメか?
すみません。わかりました。
Canvas1.HorizontalAlignment = Windows.HorizontalAlignment.Left
Canvas1.VerticalAlignment = Windows.VerticalAlignment.Top
とやったらできました。ありがとうございました。
Me.WidthじゃなくてActualWidthでやってもダメか?
WPFの情報は海外ソースがほとんどだからほぼC#一色だよな
>>714を使ってるなら、GridにCanvas載せて使うのがいいだろうな(ボタンの親はGrid)
既存のロジックを生かしたかったので結局
OnRenderとInvalidateVisualで描画することにしました。
らくらく60FPS出るのですごいです。
WPFは重いと聞いていたのですが、とんでもないですね。
>>724 それMSの社員曰く「フレームレートを落とす最良の方法」らしいぞ
実際とんでもなく効率の悪い処理をしてることになる
PCがハイスペなだけか処理が軽いだけ
OnRenderでライフゲームでも作ってみ
発狂するくらい遅いからw
マジっすかorz
了解です。新規のプロジェクトではOnRenderは辞めておこうと思います。
今回は移植なのでとりあえずOnRenderでやってみます。
ロジックを考え直すのがつらいですw
729 :
デフォルトの名無しさん:2013/01/17(木) 21:02:47.21
VBで笑わせんなw
いたって真剣ですよ!
>>728 よし。まずはC#の勉強から始めようか。
>>728 これでいいのかのう
Private Sub Window_MouseLeftButtonDown_1(sender As Object, e As MouseButtonEventArgs)
Me.DragMove()
End Sub
稀にみるエレガントな解答w
>>732 ありがとうございます。それでいきます。
でもなぜ動かないのかわからないのが気持ち悪いなぁ。
MVVM使わないで、イベントドリブンでWPF使ってもいいの?
良いか悪いか決めるのはお前だよ
いいよ。
散々あちこちのサイトめぐった結論としては、MVVMには手を出す必要なし。
完全に自己満足の世界。
データドリヴンはいいと思います。
WPFには二つのパターンがある
MVVMとアンチMVVMパターンだ
MVVMとかよくわかってないし、WPFもあまり使う気がしないけど
結局は、ちゃんと分離しろってことだと思っている。
>>737 原理主義になる必要は無いがMVVMはReactiveと合わせると良い物になるぞ(´・ω・`)
Rxは可読性クソだろ
awaitでやれ
awaitでやりたい気もあるんだが、如何せん
XPで.NET 4.5が動かないという壁があってだな。
開発環境とはともかく、クライアント側だけは、XP対応させてといて欲しかった…
XPでawaitは .NET4 + Async Targeting Packでいける
>>728 答えはすでに出てるけどどこがオカシイかといえば…
move内でwindowの座標動かしてるのでまたmove呼ばれる
マウス位置を保存しているけど
それが相対座標なのでマウスを動かしていなくても
windowが動いてるので値が変わってしまう
それが問題
PointToScreenでスクリーン座標に直してから計算して移動量の差分だせばいい
>>743 Rxとawaitは用途と向き不向き違うよ?
後手続き脳の人にはawaitいいんだろうね。Rxの方が宣言的に書けると思うけど。
思想はいいけどシンタックスが腐ってるよ
言語拡張が必要
XPなんて来年でぶった切れるし
WPFなら現状でもXPだと描画腐ってるだろ
パッケージならXP切れるだろうけどなぁ・・
MSのサポートは関係なくあと5年はサポートしないとダメそうだ。
XPと同発のIE6も癌だし、本当に迷惑なOSだ
751 :
デフォルトの名無しさん:2013/01/18(金) 10:25:54.66
VBもどうにかしないとな
WPFにもDOBONさんみたいなサイトないかなー
XPよりVB6のほうが息長くなるんじゃないか?
VB6よりjQueryのほうが長生きするだろう
VB6が生きてる限りofficeのマクロがC#に変わることはないのかね・・・
取り残されたVB戦士の最後の砦だからなw
VBAは64Bit拡張されてるぐらいだしまだまだやるだろう
むしろVBerをそこに閉じ込めておくために必要
759 :
デフォルトの名無しさん:2013/01/18(金) 21:36:55.37
寧ろCOBOLerが汎用機に押し込められてるみたいに、
VB6だけが動くようなプラットフォーム出来ないかな?
Windows SimpleEditionみたいな触れ込みで。
誰が使うんだよそんなもん
VB6で作ったもの以外は全て動かないとか、OS標準アプリも動かないだろ
VB6VMがあれば解決
XPモードみたいなアプリだけリモートで動くモードがあればおk
MVBVMパターンか?
VB厨を分離とは良いパターンだな
VB.NETもなぜか叩かれるよな。言語仕様はC#比で99%くらい?変わらんのに。
ラムダだるいとかはあるだろうが、これはできないって話とは別だしな
悔しかったらヘルパーメソッドを使わない綺麗なILを吐け
>>766 むしろ変わらない様になって誰得言語になったからな( ´Д`)y━・~~
VB.NETはコードを見ると目が拒否する
変わらんってのはC#使いから見たときの話で、VBしか知らない奴が使えばC#とは全くの別物になるぞ
VBのサポートが面倒だから最近はC#に入れた新機能はついでにVBにも入るようになってるが、
VBはそもそも変化を拒否する人のための言語であり、どうせ使われないんだから関係ない
VB って当初は VB.NET 出さないって言ってなかったか
いい加減スレ違いじゃね?
C#「時代は非同期だ。MVVMだ。どんどん新しい言語仕様、入れていこうぜ」
VB.NET/Java「新しく覚えるとかめんどうくせー。既存のままでいいよもう…」
これぐらいの差を感じる…
>>774 馬鹿か?
c#がいつMVVM向けの構文入れた?
c#はすくなくともMVVMは支援してない
してたらプロパティはもっと違ったものになってる
支援されてないからあんな馬鹿みたいな仕組みになってる
馬鹿はWPF。その証拠に普及に失敗した。
良い物が普及するとは限らないだろ
百歩譲ってWPFが良いものだとしよう。
なぜみんなWinformから移行しないのか。
最近お世話になってるVB厨ですが、WPF最高です!
冗談は、止めとけ(震え声)
>なぜみんなWinformから移行しないのか。
覚えるのが面倒くさい。ただそれだけでしょうね
みんな保守的なんだよ
わざわざ移行コストかけるならWeb行くわな
WPFはFormsに比べて既定のスタイルがダサい
785 :
デフォルトの名無しさん:2013/01/19(土) 22:16:32.68
WinFormsは結局VBAやXPみたいになくならないで続くのかなあ
MSは本気でWPFを推し進めてるのかな
今からコストをかけて学習する価値はある?
>>785 MSが推そうがどのみちデスクトップアプリに未来なんかないよ
Web池
管理系のWebアプリでおすすめのやつってありますか?
Webって参照のみだと楽なんだけどな
なにその漠然としたの…開発をしたいのか既成のシステムなのか
どちらにせよスレチだし漠然としすぎ
WPFが糞だという人もいるけど、やっぱりWinformsが神すぎるだけなんだよね。
なんだかんだでかゆいところに手が届くのがwinformsだし。
WinFormsでできる事はすべてすんなりできて、実行速度が
同等以上ならなんとかなったのかもしれない
ヘジはWPFのことどう思ってるのだろうか。
失敗と思ってるんだうろか。
小国日本で失敗してるだけで、中国や韓国では大成功してるんじゃないの?
CSに見た目は必要なかったってことだろうな
海外の記事でもWPF批判はよく見る気がする。
チョンの国で成功してようがしてなかろうがどうでもいいがなw
>>795 どんなん?エバーノートがディスってたのはむしろエバーノートがダメダメだった都いう話になってると思うけど。
まぁXAML絡みはモダンでも使われるので数年はすたれないと思うけど。
いい加減、WindowsFormsHostのAllowsTransparencyの不具合なおせよ糞M$
WIndowsのAPI叩かなくてもGUIをカスタマイズできるからこそのWPFだろーが
しかし、インフラ系フレームワークはWPFをサポートしてないか別ライセンスでFormを使わざるを得ない、だからこそのWIndowsFormsHostだろーが
なんで透過処理したら埋め込んだFormまで非表示なんだようんこ!!
とりあえずVBみたいにグイをイデからポトペタで作れるようにしろよ。
とりあえずwindows Forms を駆逐するのはそれからだな
いきなり論理ピクセルとWinFormのピクセルの違いではまったわ
なんでdoubleなのか理解してなかった
802 :
デフォルトの名無しさん:2013/01/20(日) 11:19:51.52
その程度の頭でWPFを使おうとしてたのかい
WindowにResiezeEndイベントが無いようなのですが
代用になるようなイベントはないでしょうか?
<grid>じゃなくて格子のグリッド?出してその線にスナップ?ってできないのかね。
MacやiOSの開発はじめてObjective-Cすげぇ気持ち悪いって思ったけど、慣れたらObjective-Cの方が優れてるって気づいたわ。
どれだけ複雑なGUIを簡単に作れるかなんだよな、まぁOS標準の描写能力に差がありすぎて如何にWindowsが糞かってだけの話なんだが。
へー
言語とプラットフォームごっちゃになってる時点でかなりレベル低そうだな
>OS標準の描写能力
デジカメ撮影でもやるのか?
ユーザーは複雑なGUIを求めてないんだよ。
そもそもXcodeで複雑なGUIなんて作れっこないし
複雑なGUIってどんなの?
ボタンを押そうとする逃げるやつとか?
複雑なGUIでもいいけど、複雑なコーディングは求めてない
唐突過ぎて吹いた
リボンUIで分かったように操作系はリニアに並べるべきで複雑さなんて必要なかった
いわゆるイタイGUIって奴だな。
クリックできそうに見えてクリックすると何も起こらなかったり、
コピペできそうに見えて、テキストをドラッグする選択できなかったり、
どのコントロールがアクティブか不明とか。
WPFにはこういうのが多すぎる。GUIが複雑すぎる。
WPFで複雑なほど作りこまれたアプリほとんどみたことないが
作る側が複雑ってのはわかるが
VSのオフラインヘルプのアプリは糞すぎるよな
検索しようとしたらインクリメンタルサーチのせいで異常に重い
コピーがコンテキストメニューに準備されてない
ctr-c必須
あれもWPF?
かっこいいボタンテンプレートない?
>>816 WPFの機能を活用して複雑に作りこむと遅すぎて使い物にならないからな
WPFの機能を使わずに独自実装すれば大丈夫だけど、
それなら最初からWPFなんて使わない方が良い
Help Viewerは2.0でだいぶマシになってんじゃね?
まあDocument Explorerよりも劣化してるし
結局chmの頃が一番使いやすかった
そんなもの使ってる時点で情弱でしょ
MSのヘルプ環境も無駄に迷走してるよな
Javaみたいにhtmlで完結してればそれ以上を求めないんだけどな
無駄に凝るのは悪い癖だ
ヘルプのUIもどんどん糞になっていくな。
一体MSの誰が悪いのだ?
WinFormsのときはラベルのOnPaintをオーバーライドして
絵を入れてたんですがWPFの場合はどういうふうにすればいいでしょうか?
<Image>とか<Path>とかいろいろ使う。VBのLineコントロールみたいな感じで。
OnPaintの発想は綺麗さっぱりさっぱり忘れること。
なるほど。ありがとうございました。
はよUpdate2
ボーダーを直角三角形にすることはできますか?
EffectでBlurをかけるとその内部にある要素もぼやけてしまうのですが、これをボヤけないようにすることは可能でしょうか?
>>829 >ボーダーを直角三角形にすることはできますか?
Clip
>EffectでBlurをかけるとその内部にある要素もぼやけてしまうのですが、これをボヤけないようにすることは可能でしょうか?
BlurかけたRectangleと重ねる
お絵かきアプリのようなもので、フリーハンドで描かれた線の上にあるかどうかをShapeなどで判定することって可能ですかね?
つかみやすいように線の真上だけでなく数ピクセルずれていても上にあると判定したい。
透明な数ピクセルのずれ分のShapeを線の上か下に置いておくなどですかね?
線の数が多くなると問題出てくるかしら。
透明なシェイプは反応しない 豆
コントロールのZオーダーってXAMLに記述されない感じですか?
配置順じゃなかったか?
Panel.ZIndex添付プロパティで指定できる
天才だなお前ら
でもあれだよな
Stackoverflowやここの書き込みみててもわかるけど、GUIに関する質問が圧倒的に多いんだよな。
なのにWPFもXamlもそこが圧倒的に弱過ぎる、MacやiOSなんてIBがすげぇ優秀だからGUI作るのすげぇ楽なのにWindowsとか相当ノウハウないと作れないもんな
言語とプラットフォームごっちゃになってる時点でかなりレベル低そうだな
IBがクソ過ぎて複雑なGUIは作る気にもならない、てのが実情
またこのループか
WindowsのRADはVB6やらWinFormsやらDelphiやら優秀な先輩がたくさんいるから
ハードルが異常に上がってるだけだ
他のプラットフォームでこれだけのレベルの開発環境があれば泣いて喜ぶレベル
WinFormsの方がGUIプログラミング分かりやすかったし、なんでこんなんなっちゃったのかな
GUIコントロールを動的に生成とかXAMLで出来るのかしらないけど、わかりにくくなりそう
XMLでGUI作る系じゃXAMLは一番良くできてるよ。これでも。
劣化コピーのAndroidやJavaFXは酷いもんだ
XAMLをソリューションエクスプローラーみたいに要素ツリーで表示してくれんのか
Setterで指定してるスタイルとテンプレートの参照先もちゃんと表示される奴で
今度統合されるBlendならできるのか?
ドキュメントアウトラインでスタイルとテンプレートが追えるようになるだけでも大分違うんだけど
今FrameworkElementしか追えないから
ユーザーコントロールなんかを書いてて大量にスタイルとテンプレートが必要になってくると
これはどこだっけなんだっけで時間が消費されてやる気がなくなる
WinFormsで作れる程度のもんならWPFでも大差なく作れないか?手間的に
バインドはWPFのが優秀だし
MVVMがどうとか言い出すと途端に辛くなるけど
>>844 JavaFX2は酷いもんだからな
MacでVSでたら泣いて喜ぶんだが、MonoDevelopやXamarinじゃ満足できない
すべてのプラットフォームをVS+C#で開発したいわ
>>846 テンプレート使うとビルドするまで確認できないのが辛い
リアルタイムプレビューみたいなエクステンションってあるん?
ゲームにある
>>833 MS提供のフリー素材って使いたいようなものなくね?
アイコン検索サイトとかのが良い物がある気がする
MSは素材提供専門の会社じゃないからね
IBよく知らんが前Monotouchでサンプル作った時に定義するものがイミフでわけわかめだった。
作法覚えれば使いやすいのかもしれんけど、それだったらXAMLも同じだよね。
XAMLは上手く作ればかなりな部分をMVVMで綺麗に分けられて自分的には一番いいな。
今更Formはあり得ん。
WinForms叩き=かっこいい
お世辞にも直感的といい難いのがとにかく難
こういっては何だけど、世間のレベルを買いかぶりすぎだ
WinFormsの足元にも及ばない
かっこいいボタンのコントロールテンプレートって何処かにないかな?
>>855 Formsみたいなポトペタも出来るだろ?
レイアウトもcanvasかGrid使えばいい。
winforms使ってるのって業務系アプリくらいだろ
業務系は保守的だからな
熟練度によるgridの利用の変化
初期
良くわからないのでなるべく使わない
中期
慣れてきて用途があってなくてもなんでもgridを使う(書類を全てexcelで作るようになるのと似ている)
後期
他の物を使い極力gridを使わない
馬鹿
分類したがる
末期
grid使った方が良いようなケースであっても維持で使わない。
一番困るのは、色々なSDKがFormとWPFで別ライセンスになることなんだよな
何年も掛けて一からフレームワーク作るのもやりがいあって楽しいけど、今そんな予算つけてくれる会社ないもん・・・
ほとんどGridだけど2012のBlendないのきつい
>>857 カッコイイボタンがXAMLで書けるわけないだろ
そういうのはWebみたいに画像を使うのが普通
ここの連中も基本的にそうしてる
GridSplitter使わないのか?
みんな難読化どうしてる?
あまり気にしてない。
ILSpyとかでみたい奴は勝手にみれって感じ。
リバースエンジニアリングが生業なので難読化してくれると僕らの仕事が増えて儲かります
リボンを使おうと思うんですが、標準のリボンだと2010スタイルしかないのでしょうか?
2007スタイルの左上の丸いボタンが好きなので、2007を使いたいです。
しょぼ
WPF最初、GUIのテキスト変更出来なくて、何じゃこれ!ってなったけど、デフォルトで名前がついてないのね
名前つけたら、winfomsと変わらん
怖がること無かったわ
その癖、(実用的じゃない例だが)ボタンを斜めに表示するとか、WPFの方が簡単
winfomsと変わらん?へーそうですかw
この程度の認識で始めるから後でアンチWPFになるんだよ
ちゃんと基本を理解しないで後であれもできないこれもできないって騒ぐんだよ
スタイルが分離されただけのwinformsって感じかw まぁそれでも作れるけど
>>875 んじゃ自由度が高いけど敷居も高いっつー微妙設計ってことじゃん。
やっとこなんか分かってきたけど状態保存含めてビューの遷移をどこでやるかとかいろいろ分からんとこ有るわー
webやってないとそうだろうけど、それが即敷居が高いということにはならんと思うが。
どこでやるとかは好きにすればいい。MVVM的にはビヘイビアかコードビハインドで
やるんだろうけど。このあたりは宗教の問題だしwpfとは関係ないしな。
>>875 そんな感じ
趣味グラマーなんで、大したGUI作らんしで、ずっとWinFormsだったけど、弟がwin8PC買ったの知って、姪っ子が遊べるWinStoreアプリ作っちゃろと思って、思い切って手を出して見た
MVVMとか、必須なのかと思ってたけど、違うみたいで安心した
879 :
デフォルトの名無しさん:2013/01/29(火) 17:00:46.34
必須だよ
必須じゃなかったらWinFormsの方がいい
などと意味不明なことを述べており
winFormから乗り換える必要性が感じられない
winFormでもとりあえず、データバインディングは、ある程度できるし、
(WPFほど柔軟ではないだろうけど)
わざわざWPFに乗り換える必要性は無い…と思う。
そもそもUIフレームワークにすぎないし、革新をもたらすようなもんじゃない。
全く意味のない意見だ。大元は一緒だし。wpfな見た目がいいなら使う。その程度だろ。
>>870 2007のリボンとかアプリケーションボタンがボタンに見えなくて評判最悪だと思うが
使いたかったらインフラジスティックスのコンポーネント集買えば付いてる
つーか標準のリボンはWindows 7スタイルだから
Office 2010のを配ってほしいわ
まったく別物ですね
UIのクラス階層の話じゃないんじゃねw
Storeアプリを作ろうって人にWinForms勧めるってどういうことよ
まあそれだと本当はスレ違いだけどさ
だから、違うのは当たり前だろw
XNAフレームワークに乗り換えるとか考えるのか…?って話。
並列にあるもんじゃねーの?と。MSはそうして欲しいのかもだが。XNAじゃなくWPFの方な
WPF使うならVMは作ってた方がよくないか
あとはコードビハインドでも好きなようにという気がする
Windows8入れたからストアアプリでも作ってみるべ
>>893 やめたつもりが書き込んでた。。。
>>892 そこで言うVMって、値をバインドすらためのただの値オブジェクトだよね?
そのレベルならformsでも似たようなことするし、WPFならって言うほどのものかな?
というか、それをVMと言うのは同一用語を別の意味で使ってるようで違和感がある
892の真意は知らんが、推測でこき下ろすのは如何なものか
つーか「ただの値オブジェクト」に強いのがWPFの大きな特徴だろ
>>871 これがかっこいいとか、ハイセンスすぎてついていけないわ
>>896 アメコウは昔からこうだろ( ´Д`)y━・~~
このスレレベル高い。なに言ってるか分からない。
何言ってるのか分からなければレベル高い、ってんならダム板とか行けばレベル高いと思うよ。
タブの数を動的に増やしたいんですが、できますか?
タブを追加して、別で作ったWindowをそのままタブの中に突っ込む感じです
できますよ
具体的にどうするんですか?
例えばこんな感じ
tabControl1.Items.Add(new Button() { Content = "test" });
もうチョイましなのがこんな感じ
tabControl1.Items.Add(new TabItem() { Header = "test", Content = new Button() { Content = "test" } });
Canvas上にエレメントが置いてあって、マウスオーバーしたらマウスから逃げるような動きをさせたいとしたらどうします?
動的にストーリーボード作ってやる?タイマーベースかフレームレートベースで自前アニメする?
壁で反射するような感じも組み込みたいとしたら自前でないとめんどくさいか。
いまいちアニメの使い方が分からん…
どんなUI だろう…仮にゲームとかでオブジェクトをそんな風に出してたら凄く描画遅そうだ
急にlivetのコードスペニットや
新しい項目追加のViewModelがでなくなったぞ・・・
開放されたんだろ
休止するにはどうしたらいい?
winformsだとApplication.SetSuspendState使うんだけど
Application.SetSuspendState使えばいい
DataAnnotationsを使って入力中のエラーは表示したのですが
実際にDatabaseなどを更新中にエラーが発生した場合はどのようにエラーを通知するのでしょうか。
単純にエラープロパティを持ってTextBlockにでもバインドして表示でいいのでしょうか・・・。
というかそれが普通
IDataErrorは基本的に使わないほうがいいと思う
Update2必須だなこれ
これVSMやらStoryBoardのデザイナーってまだなのか?
Blendは廃止
VSに統合だとさ。全く分けてる意味無かったから良いことだけど。
916 :
609:2013/02/01(金) 13:11:58.85
統合と言ってもVSのデザイナがBlendになるわけじゃなくてスタンドアロンツールとしてVSに追加なのが残念
今回はマイナーアップデートだからまあ仕方ないとして、本来ならVSの次期メジャーバージョンで
デザイナ統合が筋だが、HTML5に傾倒してるMSが今更XAMLに投資するかどうか…
>>905 ProWPFのChapter16で、
上からどんどん爆弾落ちて来るのをマウスクリックしていくBombDropperって単純なゲームの例があって
それだと落ちてくるのも、クリックした後の動作も、コードビハインドでStoryboardを設定してるよ
ツツが覚醒し、石川外野手も昨年の好調時を維持、
さらにノリが得点圏打率首位でラミが出塁率アップ
そのうえモーガン・ブラが暴れだしたら手に終えんな
このうち三人は不調になりそうだが
あ、誤爆したwww
自分がない
やり直し
例えば、Modelで何かを検索するときって検索条件を引数で渡すのか、それともModelに検索条件プロパティを作ってそこに突っ込んだほうがいいのか。どっちが普通なのでしょうか?
どっちもしねーな
まさかMVVM使わないほうがいいの?
てっきりWPF=MVVMだと思ってます
思うのは自由だけど一部の狂信者と戯言を真に受けた初心者以外MVVMなんて使ってない
普通に引数でやればいい
MVVMの有用性がよくわかりませんね
MVCとそんなに変わらないような気がする
人と違う言葉使ってれば釣れる人が一定数いるんですよ
そういうこと
MVVMとかMVCだとか厳密に言えば何か異なることなんだろうけど
ごちゃまぜにせずに役割分担しろってことだと思ってる。
MVVMって可読性って観点で言えば最悪だと思うんだよね。
Vとの結合が弱いから、習熟度が低い人は読みづらい。VSのせいもあるけど。サポートがないから
WebMVC知ってればわかるでしょ
そんなレベル相手にしたってどうせメリット無いから意味ない
つまりViewとLogicが密接に絡み合ったVB6サイコー!ってことだな。
と久し振りに業務で化石化したVB6のコードを保守したら感じた。
フォームのボタン押下イベントに1000行くらい延々とコードが書かれてるんだぜ…。
以外とそれがいい
わかり安いけどな
クエリパラメータに直接コントロールのプロパティ使えるとか最強だろw
ああいう進化もあれはあれでアリ
2012expressのクラスライブラリプロジェクトですが
追加->新しい項目でWPFのリソースディクショナリがありません。
手作業で追加するしかありませんか?