1 名前:デフォルトの名無しさん mailto:sage [2013/11/11(月) 19:31:37.96 ] ユーザーインターフェースシステム、Windows Presentation Frameworkについて微に入り語るスレ。 Visual Studio 2013 & 2012 & 2010 www.microsoft.com/visualstudio/jpn/downloads Microsoft .NET Framework 4 (Web インストーラー) www.microsoft.com/downloads/details.aspx?familyid=9CFB2D51-5FF4-4491-B0E5-B386F32C0992&displaylang=ja Microsoft .NET Framework 4 (スタンドアロンインストーラー) www.microsoft.com/downloads/details.aspx?familyid=0A391ABD-25C1-4FC0-919F-B21F31AB88B7&displaylang=ja Microsoft .NET Framework 4.5 msdn.microsoft.com/ja-jp/library/vstudio/5a4x27ek.aspx 前スレ WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part16 toro.2ch.net/test/read.cgi/tech/1369912326/ 関連スレ Microsoft Silverlight その9 toro.2ch.net/test/read.cgi/tech/1321150267/ コードを貼る場合は以下のサイトの利用をお勧め。 run codeのチェックは外しておきましょう。 ideone.com/
411 名前:デフォルトの名無しさん mailto:sage [2014/01/09(木) 14:20:14.47 ] Formに出戻りしてListView仮想モードにしてDrawItemイベント時に ドット区切りのバインディング取ってくるようにしたわ 昔はCollectionをDataTableに変換してた
412 名前:デフォルトの名無しさん mailto:sage [2014/01/09(木) 20:45:05.57 ] >>408 MS自身がWPF使うときってWPFの原型を留めてないくらいにがっつり独自フレームワーク使うからなあ というよりWPF自体どっちかというとそういう大袈裟な使い方をするように設計されていて、 GUIのしょぼい業務アプリの類はさっさとHTMLに移行してほしいんだろうな
413 名前:デフォルトの名無しさん mailto:sage [2014/01/09(木) 23:51:35.32 ] 低レベルな部分の仕組みは結構イケてるんだよね。 高レベルな部分の作りこみは全然ダメだけど。 高レベルな部分を丁寧な独自実装で置き換えると、 悪い評判だらけのWPFとは思えないような、軽快かつ見栄えの良いアプリも作れる。 手間がかかりすぎるので、使える場面は限られるけど・・・。
414 名前:デフォルトの名無しさん mailto:sage [2014/01/10(金) 00:00:24.32 ] VisualStudioはWPF製だけど、WPFの悪い部分がしっかり改善されてるんだよな。 メニューの挙動のおかしな点もないし、 TreeViewのデザインもかっこいいし。 GridViewもWPF標準の物の違ってまとも。 WPF標準のコントロールもこれくらい品質が良ければ良かったんだが。
415 名前:デフォルトの名無しさん mailto:sage [2014/01/10(金) 00:15:38.93 ] >>401 そういえば、エクスプローラのUIをブラウザと統合して糞使いにくくなったのはどうにかならんかなぁ。 XPまではまだ旧来のUIで使えていたが、7になってどうにもならなくなった。
416 名前:デフォルトの名無しさん mailto:sage [2014/01/10(金) 00:19:26.23 ] いや今のエクスプローラはIEコンポなんか使ってないだろ ボタンをリンクっぽく描画してたりするだけで普通のWinネイティブなアプリだよ
417 名前:デフォルトの名無しさん [2014/01/10(金) 00:44:15.71 ] >>415 今そんな使いにくいところあったっけ? 普通のエクスプローラとしてしか使ってへんわ
418 名前:デフォルトの名無しさん mailto:sage [2014/01/10(金) 00:52:47.28 ] IE5までの話だねw しかもWin9x限定w どこの浦島太郎だよって
419 名前:デフォルトの名無しさん mailto:sage [2014/01/10(金) 01:19:00.81 ] >>417 エクスプローラのウィンドウとフォルダの対応関係が切られて、位置やサイズなどを 覚えてくれなくなったのがかなり不便。 Windows3.1あたりのファイルマネージャに先祖返りしたのかも知れんが。
420 名前:デフォルトの名無しさん [2014/01/10(金) 02:33:35.57 ] >>419 どういう風に覚えてたのか忘れちゃった。すまそ(´・ω・`) 前ほどイミフな自動カラム選択とかフォルダによってビューが変わるってのなくなった? 前より使いやすい気がしてる。
421 名前:デフォルトの名無しさん mailto:sage [2014/01/10(金) 04:04:18.77 ] 右側でフォルダ展開すると、左のツリーのアクティブフォルダが 必ず下側の固定位置にいちいちスクロールするのが気に入らん… 下領域空いててスクロールの必要が無いにも関わらずだ。7からなんだが
422 名前:デフォルトの名無しさん mailto:sage [2014/01/10(金) 08:35:16.69 ] >>420 画像フォルダとか音楽フォルダとか勝手にフォルダの種類を判断するやつかな? あれ、よく判断を間違えるし設定を変更しても忘れてくれるし、確かに意味不明だな。
423 名前:デフォルトの名無しさん mailto:sage [2014/01/10(金) 15:58:25.77 ] サブフォルダーを開いても、ツリービューが追従しなくなったのはどんな理由なんだろうな 使いにくいんですが
424 名前:デフォルトの名無しさん mailto:sage [2014/01/10(金) 16:00:53.67 ] それは設定で変えられる フォルダオプションのナビゲーションウィンドウ>自動的に現在のフォルダまで展開 デフォルトを変更した理由は分からん ライブラリみたいな仮想フォルダとの兼ね合いかね
425 名前:デフォルトの名無しさん mailto:sage [2014/01/10(金) 20:34:24.47 ] 仮想フォルダよりNASとの兼ね合いかなとも思う
426 名前:デフォルトの名無しさん mailto:sage [2014/01/10(金) 20:49:44.10 ] そんなの関係ないでしょ。 恐らくMSなりにライトユーザーに媚びたつもりなんだろうと思うよ。 たぶん調査の結果、ほとんどのユーザーはフォルダツリーをツリーとしてではなく、 ドライブや仮想フォルダへのショートカットとして使っている、みたいなことになったんでしょ。 で、フォルダを階層を展開しちゃうとその「ショートカット」がクリックしづらくなる、みたいな。 田ミ + E でエクスプローラを表示した時にフォルダツリーにフォーカスが当たってないのもそういう流れだと思う。 使いづらくてしょうがないけど。
427 名前:デフォルトの名無しさん mailto:sage [2014/01/11(土) 02:50:05.98 ] >>422 レジストリで無効にすると勝手に違う種類に変わったりしなくて快適だよ。
428 名前:デフォルトの名無しさん mailto:sage [2014/01/11(土) 14:31:47.69 ] >>418 Win9x限定じゃねーぞ Win2kもXPもエンジンはIE XPからはカスタマイズができなくなったというだけ(folder.httは使える) Vistaから完全独自になって 7からはリストビューすらコモンコントロールじゃなくなった
429 名前:デフォルトの名無しさん [2014/01/11(土) 23:08:55.26 ] C#スレに質問したのですが、 良く考えたらWPFの話なので、こちらで質問させて下さい。 ボタンコントロールが2つと A.jpg,B.jpg,C.jpgという画像があるとして、 ボタン1にデフォルトでA.jpgを表示し、 ボタン1がクリックされている間はB.jpgを表示し、 ボタン2が押された時に、コードで ボタンの画像をC.jpgに切り替えたいのですが、 どのように実現するのか、皆目見当が付きません。 言語はC#でもVB.NETでも構いません。 詳しい方、何卒よろしくお願いします。
430 名前:デフォルトの名無しさん mailto:sage [2014/01/11(土) 23:14:05.60 ] xamlでtriggerを使う
431 名前:デフォルトの名無しさん mailto:sage [2014/01/11(土) 23:50:22.83 ] ザッツオール
432 名前:デフォルトの名無しさん mailto:sage [2014/01/12(日) 17:21:21.02 ] トグルボタンってなかったっけ…
433 名前:デフォルトの名無しさん [2014/01/12(日) 21:19:57.46 ] >xamlでtriggerを使う ご回答ありがとうございます! triggerというワードで調べて、下記のようなコードで 通常1.png クリック時に2.pngまではできたのですが、 これを分離コード側で3.pngにする方法が解りません。 詳しい方、何卒お教え下さい。 <Button Margin="26,57,0,0" Name="button1" Height="36" VerticalAlignment="Top" HorizontalAlignment="Left" Width="117"> <Button.Template> <ControlTemplate TargetType="Button"> <Border Name="border" BorderThickness="0" BorderBrush="Transparent"> <Border.Background> <ImageBrush ImageSource="1.png" /> </Border.Background> <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> </Border> <ControlTemplate.Triggers> <Trigger Property="IsPressed" Value="True"> <Setter TargetName="border" Property="Background" > <Setter.Value> <ImageBrush ImageSource="2.png" /> </Setter.Value> </Setter> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Button.Template> </Button>
434 名前:デフォルトの名無しさん mailto:sage [2014/01/12(日) 22:06:29.14 ] ImageBrushに名前を付けたら、分離コードでいじり放題
435 名前:デフォルトの名無しさん [2014/01/12(日) 23:00:45.47 ] >ImageBrushに名前を付けたら、分離コードでいじり放題 ご回答ありがとうございます! ただ、試してみても、画像が3.pngに切り替わらずダメでした。 下記のようなコードを書いたのですが。。。 BitmapImage image = new BitmapImage(); image.BeginInit(); image.UriSource = new Uri("3.png"); image.EndInit(); button1.Background = new ImageBrush(image); WPFは、Windowsフォームアプリ感覚でやると、 なかなか難しいなと思いました。。。
436 名前:デフォルトの名無しさん mailto:sage [2014/01/12(日) 23:32:51.55 ] >>435 その書き方ならborderのBackgroundを{TemplateBinding Background}にして、 ButtonのBackgroundに1.pngのImageBrushを指定すればいけるような気がするけどどうだろう? ちなみにそのやり方だとマウスオーバー時に色がかわる、とかフォーカス時に点線が表示される、とか、 元々ある機能がなくなってると思うんだけど、それは構わないの?
437 名前:デフォルトの名無しさん mailto:sage [2014/01/13(月) 05:15:05.21 ] >WPFは、Windowsフォームアプリ感覚でやると、 これがそもそも難しくしてる原因だ
438 名前:デフォルトの名無しさん mailto:sage [2014/01/13(月) 14:11:53.35 ] いやいや、やろうと思えば基本的にほとんどWindows Formsと同じ感覚でも書けるでしょ。 レイアウトとグラフィック以外は。 アニメーションはFormにないし
439 名前:デフォルトの名無しさん [2014/01/13(月) 18:51:14.44 ] MVVM試行錯誤しながらやってるんだけど、これうまく作るとビューの見た目やコマンドを実行する場所をいろいろと好き勝手にできて良いね。 フレームワーク使わずBindableBaseだけショボイの作ってやってるけど。 ItemClickをコマンドにどう結びつけたらいいんだとかわからんところも多々あるけど、適度にコードビハインド織り交ぜても十分フォームより色々疎結合できて良い。
440 名前:デフォルトの名無しさん mailto:sage [2014/01/13(月) 20:32:32.83 ] 大きなアプリ作るならコンバーターやコマンドは避けたほうがいい
441 名前:デフォルトの名無しさん mailto:sage [2014/01/13(月) 20:34:56.21 ] TreeViewのContextMenuのIsOpenをBindingすると、必ず起動一発目の右クリックでメニュー出すと直ぐ消えるってのはなんだろうね 対策あったら教えて下さい
442 名前:デフォルトの名無しさん [2014/01/13(月) 21:08:11.18 ] >>440 それはどのへんで?
443 名前:デフォルトの名無しさん mailto:sage [2014/01/13(月) 21:14:57.92 ] MVVMのコマンドは拡張性がないからなあ 大きなアプリだとコマンドパターンでコマンドのクラス自体に処理を書いた方がいい
444 名前:デフォルトの名無しさん mailto:sage [2014/01/13(月) 22:14:08.74 ] Converterは必要があれば積極的に利用した方がいい。 プリミティブな1データを多様に表現、活用する事ができる。アプリの大小は関係ない。 ただMultiConverterのConvertBackは使いにくい。
445 名前:デフォルトの名無しさん mailto:sage [2014/01/13(月) 23:13:59.40 ] >>443 例えばprismでも使えばいいじゃん
446 名前:デフォルトの名無しさん mailto:sage [2014/01/13(月) 23:29:55.84 ] >>445 Prismはそのへん考慮してないよ Webと変わらんような業務アプリのサンプルだからね
447 名前:デフォルトの名無しさん mailto:sage [2014/01/14(火) 02:33:12.59 ] コマンドは使いにくいなーとは思うけど、コンバーターは結構便利に使ってる
448 名前:デフォルトの名無しさん mailto:sage [2014/01/14(火) 03:22:34.62 ] コマンドよりビヘイビア書かないとバインド出来ないプロバティーが嫌だ
449 名前:デフォルトの名無しさん [2014/01/14(火) 04:05:04.81 ] ビヘイビアが未だによくわからん。使い所とか。
450 名前:デフォルトの名無しさん mailto:sage [2014/01/14(火) 10:52:12.79 ] 別々の条件から同じことしたい時はトリガーとアクションに分けて、 常に同じ組み合わせならビヘイビアって感じでいいと思う
451 名前:デフォルトの名無しさん mailto:sage [2014/01/14(火) 10:59:23.43 ] ガン・・・、エクセルでたとえてくれ
452 名前:デフォルトの名無しさん [2014/01/14(火) 11:29:25.39 ] >>450 この辺ストアだとまた違うからな…今全部できるようになったんだっけ? 揃えてくれよママン…
453 名前:デフォルトの名無しさん [2014/01/14(火) 21:37:46.94 ] >xamlでtriggerを使う で詰まっていた者ですが、おかげさまで 実装方法が解りました。 WPFは、使いこなせたら、 確かにフォームアプリより便利そうですね。 勉強になりました。
454 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 13:57:25.53 ] ストアアプリを開発しています。 Bindingで、 "文字列A" + 項目Aの設定値 + "文字列B" (※文字列は、ローカライズ対応) をTextBlockに表示したいと考えています。 調べてみてもどの様にしたらよいものか困っています。 助けていただければ幸いです。
455 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 13:59:51.17 ] >>368-371
456 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 14:45:11.69 ] >>455 以外にも Run を使った方法もあるよ <TextBlock><Run Text={Binding 文字列A} /><Run Text={Binding 項目Aの設定値} /><Run Text={Binding 文字列B} /></TextBlock>
457 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 14:52:02.24 ] そういえば.NET 3.0の頃はRun::Textが依存関係プロパティじゃなかったなぁ 狂気の沙汰
458 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 15:32:39.66 ] Blockの中にRunがあるんだからそれにバインドする方が変 特別なことをしないならStringFormatがまともな手段だけど別のフレームワークで 無くなったり意味不明
459 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 15:39:58.05 ] 変かな? 数値部分だけ色変えたいとかさ
460 名前:454 mailto:sage [2014/01/15(水) 17:05:53.82 ] ありがとうございます。 >>456 の方法で行けそうなんですが、ローカライズの文字列では表示されません。 デフォルトで与えた文字であれば、表示されます。 もう少し格闘してみます。 >>368-371 の方法も考えましたが、ローカライズで文字列の長さが変わった時に 調整がメンドウなので…。 (うまい方法があるのかもしれませんが、稚拙なものでスミマセン。)
461 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 19:54:47.63 ] >>460 ローカライズってどういう風にやってるの? Bindingでやろうとしてるってことは動的に変更される文字列を表示しようとしてる? ロケールによってBinding先を切り替えるとか? ちなみにストアアプリは専用スレあるよ?
462 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 22:47:12.42 ] どういう風にってResourcesを言語別に用意以外に 方法あったっけ?
463 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 23:04:03.19 ] >>462 普通のやり方ならuidで指定するからBindingなんかしないし、 ローカライズされた文字列が表示されないなんてことにはならないでしょ?
464 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 23:34:13.53 ] そうか? 俺は普通に以下のように書いてるけどな。 <Label Content="{Binding Source={StaticResource resources}, Path=hogehoge}" /> 表示されないってのは分からんけど。
465 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 00:26:58.66 ] WPFでDataGridにバインドさせて使うときって列の定義とかはどうしてる?
466 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 01:10:36.73 ] 普通にXAMLで というかデータグリッドはWinFormsのを使ってる WPFでやるんならデータグリッド貼って終わりなんて安易なクソUIやめてListViewで作れよ
467 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 03:55:51.77 ] >>464 hoge厨らしい書き方だな 電子ゴミ作って楽しいか?
468 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 08:43:52.17 ] >>467 おはよう
469 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 08:55:00.32 ] 腰痛めて病院いったらウォーターベッドみたいなんに寝かされた。 振動で腰を直すやつな。 振動の強さが「強」「中」「弱」の三種類あって、 最初に「弱」で始まったんだけど全然振動が伝わってこない。 看護婦さんに「あの、全然感じないんですけど」って言ったら 「じゃあ「中」にしときますね。何かあったらナースコール使って呼んでください。」 って言われて「中」に切り替えて看護婦さんどっか行った。 しばらく待ったけど全然振動しなくって ナースコールで看護婦さん呼んだら 「じゃあ、「強」にします。」 って言われて「強」に切り替えた。 それでも全然動かなくておかしいなあとか思いつつふっと横を見たら 隣に寝てたよぼよぼの爺さんがガタガタガタガタ猛烈に振動してた
470 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 13:40:54.62 ] WinFormsのコンポーネントをScrollViewerとかに埋め込んだ時クリッピングされないで はみ出ちゃう問題マジで何とかならないのかなぁ・・・。 市販のコンポーネントなんてWinFormsばかりだからマジで困るぜ。
471 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 14:32:42.96 ] 無理だろうね。コンポーネントの方がWPFに対応するのを期待しよう。
472 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 14:37:19.84 ] グレープシティやインフラジスティックスのWPFコンポーネント使えばいいんじゃね?
473 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 15:09:13.57 ] >>471 だよねぇ・・・。最初からこのコンポーネント使う事決まっていれば色々考えようもあったんだけどね。 まぁ、そもそもWPF選んだ時にこの不具合知らなかったんだけどorz >>472 大人の事情で決まった会社の固有の製品なのでそういう代替え品ではダメなんだよ・・・
474 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 15:30:25.65 ] >>473 大人の事情で決まった製品って大抵ろくなのないからなぁ 事情説明して何とかするよう努力するべし
475 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 17:13:41.53 ] どうしてもそのコンポーネントを使わなきゃいけないのなら、 HWNDによるクリッピングを利用することは不可能ではないけどね。 独自パネルA (WPF) > 独自パネルB (WinForms) > コントロールC (大人の事情) って構造にして、 BをScrollViewerの可視範囲内に配置し、 Cをクリッピングなしの範囲に配置することで BのHWNDによるっクリッピングを有効にすることはできる。 スクロールする度に再レイアウトすることになるので、性能はお察しだけど。
476 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 17:27:06.59 ] 大人の事情ってどんな内容かな 勤め先がFとかNとかN(2回目)とかHだとか
477 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 18:03:06.01 ] >>476 俺はFだけど、大人の事情がない会社なんてあんのか?
478 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 18:23:48.62 ] 大人の事情がない会社はない ただしコンポーネントの選択に関しては、大人の事情など断固拒否しますよ (経済的事情を除く)
479 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 19:28:36.49 ] >>466 XAMLで列を定義ってなんか疎結合って感じがしなくなる
480 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 21:09:13.14 ] >>479 意味不明 ビューが表示対象のデータ項目に依存しなくて一体何を表示するというのか
481 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 21:38:51.21 ] >>477 Fか… Fはjavaなどの社内フレームワークが何種類もあると噂に聞く…
482 名前:デフォルトの名無しさん mailto:sage [2014/01/16(木) 22:12:54.26 ] >>479 XAMLよりVMに書いたほうがいいと思う グリッドで入力する場合は検証も行わないといけないしね
483 名前:デフォルトの名無しさん mailto:sage [2014/01/17(金) 01:44:48.28 ] >>475 あーあー、WinFormsを挟む発想は無かったわ。面白そうね。今度試してみよう。 結局見た目とイベントをバイパスするproxyみたいな物作ってしのいだわ。 思ったよりちゃんと動いているけど、あまり動き無い物だから出来る話だぁね・・・。 今更WinFormsなんぞ使いたくないし頑張りますヨ〜
484 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 14:31:47.24 ] ここに質問する無いようなのかわからないけどWPFのプログラムでMEF使う時に Importってどのタイミングで行われるか書かれている資料ってあるかな? 今はとりあえずLoadedのタイミング以降でImportしたオブジェクトにアクセスしてて 特に問題は無いけど何かモヤモヤするんだよなぁ・・・。
485 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 15:39:16.50 ] WPFは関係ないし、MEFのドキュメントで自分が使ってるImport方法の説明を読めとしか。
486 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 19:45:53.70 ] DIならAutofacでも使ったほうがいいよ MEF使いづらい
487 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 20:21:32.72 ] なんだとこのファック野郎
488 名前:デフォルトの名無しさん [2014/01/23(木) 22:02:28.47 ] もうMvvmCross使えよ(´・_・`)
489 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 22:13:35.77 ] どうもこういうクロスプラットホームの奴って今までも色々あったけど 流行った試しないし眉唾なんだけどそんなに良いの? そもそも共通プラットホームにしたい様なもの開発してないケドWPF的に 作りやすいとかあるなら考えてみても良いかなぁ。
490 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 22:18:53.50 ] いや全然クロスプラットフォームじゃないぞ Windows(x86)のVista以降でしか動かん
491 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 22:32:38.14 ] それXamarinの話ではなくて? まー、サポート切れるとはいえXPはまだ捨てられないしねぇ・・・。 俺的にはいらないけど商品開発の場合は捨てる選択肢まだ無理だわ。
492 名前:デフォルトの名無しさん [2014/01/23(木) 22:59:53.03 ] >>489 今見てる限りだとだいぶ現実的なアプローチだと思う。 物によるけど多分8ー9割のコードは共通化可能。 けど作りやすいか言われるとどうかなー。DIの仕組みとかあるけどこういう風に作れとか制限出てくるし。WPFだけでいいなら普通に作った方がいいかも。 >>490 今更XPか(´・_・`) >>491 Xamarin専用じゃないよ。XamarinがiOSや泥でC#を使える下地を作ってくれたのでそれを利用してる感じ。MVVMでの開発をどのプラットフォームでもできるようにする基盤。 案件によってはまだXPに縛られるんかね…
493 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 23:02:09.10 ] >>490 win、wp、その他linux,mac,ios,android(xamarin)ってことじゃね? 最初の2つ以外はxaml無関係だけど。 向き不向きは詳しい人に任せる。
494 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 23:03:35.29 ] >>492 80-90って、えらいUI少ないね。それで済むものには向いてるかもね。
495 名前:デフォルトの名無しさん [2014/01/23(木) 23:20:41.65 ] >>494 UIもVMまで共通化したらそれぐらいにならん? まぁものによると思うけど。
496 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 02:10:13.53 ] 実際VM共通化なんぞ出来るんか?結局Viewだけ差し替えるとか幻想でしょ・・・
497 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 02:28:14.65 ] VMはV依存度は高いもんなぁ。このV用の特別なナニカってのは必ず出るだろうし、 無理に共通化しても見通し悪くなりそうだ
498 名前:デフォルトの名無しさん [2014/01/24(金) 04:03:08.59 ] ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwww
499 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 19:28:10.04 ] >>497 どちらかというと、Vに求められる機能が多い(ことが多い)ので、VMが重くなる感じかな。結論は変わらないけど。
500 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 20:51:31.72 ] DrawingContext.DrawTextって垂直方向の配置を指定できないんだね。 っていうかWPFってどうでもいいようなギミックは満載だけど基本設計が本当ウンコだな。
501 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 21:29:39.71 ] 拡張メソッド作ったら一行で終わるレベルの不満が基本設計ですか
502 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 21:36:00.43 ] WinFormsから入った奴は最初DrawingContext使おうとするよね 滅多に使わない低レベルAPIだぞあれ
503 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 21:40:03.31 ] むしろVB6じゃあるまいし、UI要素並べて全ての問題に対応できるわけがないでしょ。
504 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 21:43:48.37 ] いやDrawingContextってむしろUI要素並べるだけのラッパー的なAPIなんだが
505 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 21:43:49.12 ] ついでに言えば、FormattedTextなんて文字列と書式を合体させたオブジェクトを 引数に取るから、同じ書式を使いまわすなんて基本的なことも出来ない。 こんな仕様を考えた奴は馬鹿としか思えない。
506 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 21:44:11.25 ] WPFだからって無理しなくてもSystem.Drawing参照してもいいんだよ?
507 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 21:47:58.32 ] >>505 DrawingContextはWPFのもっと高レベルなところと同じく「保持モード」のAPIだ 変更したい時だけ使う Drawing並べるのと同じなんだけどちょっと書くの面倒だからSystem.Drawing.Graphicsっぽくラップしてあるだけ
508 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 21:52:05.03 ] >>507 そんな風な擁護をする奴が絶対にいると思ったけど、 プログラマにとって重要なことは目的をより直截的に実現する手段が用意されているかどうか、 それだけ。 保持モードだからそういう仕様になっているという事情は理解はできるが、 それが優れているとは思えない。
509 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 21:56:11.27 ] だからDrawingContextは低レベルAPIであって 目的をより直截的に実現するためのものではないという話でしょ
510 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 22:00:42.88 ] WPFは誰かがライブラリを作ってくれるのを口開けて待ってるだけの人間には使いこなせない
511 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 22:04:35.02 ] > プログラマにとって重要なことは目的をより直截的に実現する手段が用意されているかどうか、 > それだけ。 ワラタw ちゃんと勉強する事も自分の頭で考える事も大事だよ。 使い方わからんからとすぐウワーってなる奴はプログラマには向いてないだろ。 ありあわせの組み合わせるだけの人は単なるオペレータ。