WPF(.NET, WinUI) GUIプログラミング Part26

■ このスレッドは過去ログ倉庫に格納されています
2021/06/20(日) 17:04:18.66ID:7UVkl7BZ
Windows Presentation Frameworkについて語るスレ。

前スレ
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463

関連スレ
Windows 10 UWPアプリ開発 Part 2
http://mevius.2ch.net/test/read.cgi/tech/1499658092/

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
241デフォルトの名無しさん
垢版 |
2021/06/28(月) 20:23:36.59ID:nwjsCynN
Formsおじさんはスケーリングなんて概念知らないよ
2021/06/28(月) 20:49:37.76ID:BZRfVYEc
スケールはマニフェストファイルにドットバイドットで起動するように
設定すれば問題ない
2021/06/28(月) 22:13:28.65ID:zyIZLp3R
>>238
テストや仕様追加・変更などトータルで見てもかなり差が出てくるぞ
244デフォルトの名無しさん
垢版 |
2021/06/28(月) 23:05:46.97ID:mF8S9I5g
>>242
それぼやけるやつじゃないの?
それともレイアウト崩れる方?
2021/06/28(月) 23:12:16.18ID:LklTdgPg
>>234
コントローラー部品はMVVMのVの部分だからね
2021/06/28(月) 23:20:59.79ID:+NMrGGDR
>>234
グラフ、ガントチャート、スケジューラーとか
一個コンポーネントだけでも
業務系アプリより小便チビるぐらいのガチの大規模アプリだぞ。

まあ開発者もCOMとかActiveX時代を経験しとる猛者だらけだが
2021/06/29(火) 00:00:20.95ID:MxyOwUyS
まったく関係ない。規模が大きかろうがコントロールをMVVMで設計する必要なんてあるわけがない。
2021/06/29(火) 01:16:51.07ID:cxwm0a1D
本家 Microsoft でさえ使っていないフレームワークだしな。Visual StudioのGUI部分くらいか?
2021/06/29(火) 01:24:48.79ID:88YgLK/8
MVVMで設計する必要が無いとは思わんが、
WPFはレイトバインディングオンリーだから性能を考えたら無いな
2021/06/29(火) 03:41:15.15ID:CE8RCsWG
xamlのUI自体が起動時JITだししゃーない
ユーザー編集や内部動作がオブジェクト〜UI間で速攻反映されるのがMVVM的とすると今時のやつほとんどそれにならんか?
やっぱいるか?
2021/06/29(火) 07:02:11.80ID:kZFmQOUI
>>244
ぼやけないし崩れないよ
ただしデメリットは4Kなどの高解像度ディスプレイを使っていると
ソフトを実行した時に文字やウィンドウが非常に小さく描画されると思う
場合によってはぼやけた方が使いやすいまであるかもしれない
2021/06/29(火) 07:23:16.58ID:7mrphVrK
>>246
×猛者
〇時代に取り残された老害
2021/06/29(火) 07:40:42.45ID:qRDQTSiV
>>248
グラフィックスデバッガのPIXとか現役で更新されてる小物じゃちょくちょく使ってる
2021/06/29(火) 08:18:17.69ID:MxyOwUyS
COMをマスターできたならその後の新技術もキャッチアップできるだろう。
当時COMについていけなかったような人が今WPFについてこれていないという感じじゃね。
2021/06/29(火) 08:44:28.90ID:ODoOJffm
>>248
WinFormsも使われていない件
2021/06/29(火) 09:01:08.59ID:SmSl8CvY
>>254
まあ難しいかもね
でもDCOMとかおもろいで
他人のPCにオブジェクトがnewできるwww操作もwww
2021/06/29(火) 09:56:34.25ID:sa7Hb+w6
>>251
スケーリングを無視して拡大せずに表示って
スケーリングから逃げてるだけで何の解決にもなってない
2021/06/29(火) 10:01:47.81ID:bpKPj1F0
今時WinFormsやWPFで作られるようなアプリなんて基本的に決まった環境で決まった操作ができればいいだけなんだから画面の美しさなんて誰も問題にしない
文字が小さすぎるなら解像度下げたらいいだけ
2021/06/29(火) 10:33:35.90ID:uY+Pqtpp
>>240
海外サイトでは有用なサイトとかあるの?
2021/06/29(火) 11:33:47.61ID:idc7ChZX
>>258
逃げてるだけやん。
画面の美しさなんかどうでもいいが
見やすさ、操作しやすさは品質チェックされる。
フォントサイズぐらいは変えられるようにしといたほうがいい。
たいした手間じゃないんだから。
2021/06/29(火) 13:36:43.26ID:sps6wUNa
>>259
英語読めないから知らない
2021/06/29(火) 14:15:00.34ID:bpKPj1F0
>>260
その「しといたほうがいい」程度のためにWPFやるの?さすがに費用対効果が悪すぎないか
そらみんなWebへ流れるわな
2021/06/29(火) 15:16:50.08ID:fjM4NkMz
>>262
そりゃwebが要件に合うならそっちの方がいいけど
デスクトップでやらなきゃいけない場合、
winFormsは生産性もアプリの品質も論外だから現実的な選択肢の候補としてWPFは有力。
費用対効果はwinFormsなんかを選ぶよりはWPFの方がずっと上。
2021/06/29(火) 16:30:43.80ID:m0EoJlPu
WPFよりwinformsがいいなんて言ってる奴いないのに何無駄なこと言い続けてるの?
なんでもかんでもxamlで書かせようとしたWPFはバカっていってるだけなのに
2021/06/29(火) 16:33:32.55ID:PN4ZOAJQ
いやこのスレにはいっぱいいるぞ?
2021/06/29(火) 17:52:19.00ID:S91QebJL
WPFで作るだけで品質も生産性も向上、よかったよかったw
2021/06/29(火) 17:52:53.44ID:SOQ8GKtA
* WinFormsの方が優れてるよ派
* XAMLは糞だよ派

自由に追加してってくれ
2021/06/29(火) 17:54:06.03ID:R64mVEcr
糞なのはMVVM派やぞ
2021/06/29(火) 18:06:05.47ID:wewaPA3V
彼はずっと頑張ってるんだけど
一向に何がどう上なのか提示しないのが笑える
2021/06/29(火) 18:14:53.74ID:SmSl8CvY
XAMLとMVVMの違いが解っとらん時点で...
2021/06/29(火) 18:41:43.87ID:d9qF3Zj0
馬鹿はwinformsはスケーリングがっていうけど事実上使用環境は2k固定
4k環境なんて企業ではほぼ出てこない

何かあればすけーりんぐがああああって言いたいだけだろ

そんなもの弱点でもなんでもない
4K環境でアプリを使いますかと聞いたら何それとかいいえってすぐに答えが出る
winformsの弱点はそれとは別にあるだろ
2021/06/29(火) 19:29:56.93ID:IWxlvq96
>>271
それ以外の弱点は余り聞かん。
2021/06/29(火) 19:34:10.99ID:D8AMOp4b
他人がすばらしいと思おうが糞と思うがどうでもいいだろ
そんな他人の意見気になるのかよ
このネタしつこすぎ
2021/06/29(火) 19:39:00.69ID:MZAvi10Y
4Kモニター使う客は見たことないけど、13インチFHDノートとかでスケーリング150パーで使う客はざらにいる。
2021/06/29(火) 21:06:07.80ID:uY+Pqtpp
WinFormsはバグが多いみたいな話は聞いたが踏んだことないな
2021/06/29(火) 21:50:16.02ID:88YgLK/8
>>271
最近問題になってるのはFHDのノートPC+老眼
拡大しないと見えないって言われるけどWinFormだとだいぶ面倒
2021/06/29(火) 22:21:04.01ID:cxwm0a1D
そこで全てOwnerDrawですよ
2021/06/29(火) 22:44:16.86ID:SOQ8GKtA
>>273
15年やってるネタにしつこいだと!?
2021/06/29(火) 22:57:19.14ID:vxJRxXrh
老眼ならボケててもわかんねえしDPI Unawareでご提供じゃあ!
2021/06/30(水) 06:20:20.65ID:fPKzNzZo
>>275
winformは仕組み的にバグを作り込みやすい。
SOLID原則に則った作りがしづらいから。
2021/06/30(水) 10:33:14.92ID:ZQ555E+g
>>280
具体的にどうぞ
2021/06/30(水) 15:27:43.63ID:x8wFy7G1
DataGridのヘッダの結合かベータ行カラムの分割をしたいんだけどxamlだけじゃできないんだねこれ
2021/06/30(水) 21:16:42.52ID:HGlM55pW
>>277
オーナードローに手を出すぐらいならWPF使った方が簡単だし楽だぞ
2021/06/30(水) 21:43:59.63ID:YqdW0y/d
今時windowsアプリ作るならflutterでしょ
その次はcompose for desktop

シリコンバレーに住んでるけど周りだいたうそうだぞ
2021/06/30(水) 22:23:18.20ID:mq4i3ovj
MayaみたいなGUI作りたいんだがFlutterで問題ない?
2021/06/30(水) 22:49:25.75ID:dbpUo6lf
Visual Studioで作れるなら
2021/07/01(木) 00:50:28.07ID:cUgiTPJy
>>281
具体的も何もイベントハンドラしこしこ書いてたらそうなっちゃうでしょ
2021/07/01(木) 01:41:15.75ID:quMFgJi9
>>287
イベントドリブンだからハンドラは書くだろ
289デフォルトの名無しさん
垢版 |
2021/07/01(木) 02:25:59.60ID:3s4V0XuS
>>284
私のシリコンバレーではWinForms一強だがね
2021/07/01(木) 02:41:38.58ID:g7pLzwL6
WPFを推してる人に質問。

https://teratail.com/questions/45592
でベストアンサーの人がDataContextを
XAML
<OrigUI:OrigButton x:name="MyButton" DataContext="{Binding MyButton, Mode=TwoWay}" />

コードビハインド
MyButton.DataContext = myClass.MyButton;
の両方の例を見せているが、
両方で書けることのメリットは何?

自分はどっちか(この例だとXAML)だけあれば充分だと思ってる。
291デフォルトの名無しさん
垢版 |
2021/07/01(木) 03:48:23.98ID:3s4V0XuS
WPFにおいてXAMLは必須のものではない
2021/07/01(木) 05:03:15.49ID:DKvr+prV
ListViewとかの仮想化だけはデータテンプレート使わないと駄目そうだけどね
2021/07/01(木) 07:09:44.32ID:79OH3ZpR
>>288
それがformsの限界。

>>290
別にWPF推しじゃないけど、
XAMLはビルドの過程でC#コードに変換されるから
両方で書けるのは自然なことでは?
UIに関することはなるべくXAMLに書いた方がいいと思うけどね。
2021/07/01(木) 07:14:56.37ID:Yl2LhZPg
>>287
SOLIDなんて何も理解してなさそう
2021/07/01(木) 07:58:52.76ID:zoA/qoUb
>>290
後から動的に生成したい場合とか、コードで書けないと出来ないじゃん
2021/07/01(木) 09:03:54.60ID:BtHdEiN6
XAMLに記述すると横にびろーんと長くなって見づらい
2021/07/01(木) 09:06:48.81ID:jSC3+/HL
SRPやOCPを順守するには一般にレイヤの多い方が有利だから、むしろイベントハンドラの方がやりやすいまである
MVVMはVからMへイベントを伝播したりMの状態変化をVに反映したり依存関係を管理したりと、VMの役割が多くなりがちなんだよね
そのへんReduxなど後発の亜種ではより役割が整理されている
2021/07/01(木) 09:21:41.82ID:Z6twYu4c
>>296
xaml stylerというvisual studio拡張を入れなさい。
xaml保存時にいい感じに改行入れてくれるに適当な所で折り返してくれるパッシブスキルだ。
2021/07/01(木) 14:39:45.82ID:LLiHzSna
>>290
同じように見えるが依存関係プロパティ(xaml)とC#のプロパティは別々に定義しないといかんのだ(参照しているDataContext自体は同じ)
xamlUIクラスはDependencyObjectを継承しているのだ
2021/07/01(木) 19:04:08.19ID:g7pLzwL6
>>293
サンクス
なるほど、確かに両方で書けること自体は自然か

> UIに関することはなるべくXAMLに書いた方がいいと思うけどね。
そうだね
自分としては「両方で書けるけれども、こっちでしか書いちゃいけない」ってしてくれるといいんだけどな
複数のサンプルプログラムのいいとこどりをしようとした時に、それぞれが別々の書き方をしていると非常に面倒臭い、DataContextに限らず

以前、「全部コードビハインドで書く」っていうサンプルコードがあって、走らせるとちゃんと動作した
この調子だと、結局、毎回両方の書き方を覚えていかんなるんじゃない、特にいいとこどりするなら?
∴学習カーブが急だという説は正しい、というのも単純計算で覚えることが二倍だから

間違ってると思ったら気軽に指摘してくれ
2021/07/01(木) 19:09:07.26ID:g7pLzwL6
>>295
> 後から動的に生成したい場合とか、コードで書けないと出来ないじゃん

サンクス
入力が変わる度にDataContextを動的に切り替えるってことね
でも、XAMLじゃできなかったっけ?
(DataContextじゃやったことないけど、XAMLでListなんかの要素の変化した分も表示できるから出来るのかなーと類推してるだけだけど)
2021/07/01(木) 22:32:47.80ID:cUgiTPJy
>>300
サンプル見るときに何を参考にするか決め打ちするしかないね
俺はそうしていた
WPF始めたばっかりの頃はWinFormから移行を進めたくてイベントドリブン中心(これは結局失敗)
その後学習を進めてMVVM中心に切り替えた
MSのサンプルがイベントドリブンだらけなのが良くないよな
2021/07/01(木) 23:00:00.74ID:j2ilzMEK
>>302
そっちが基本なんだが...
2021/07/02(金) 11:38:56.90ID:VsUUVKi+
機能が豊富な分、全部覚えようとしたらそりゃ大変だ。
でも
ひのきの棒
剣・槍・斧・弓の欲張りセット
どっちかくれるって言うなら普通は後者を選ぶだろ?
まず手に馴染むものを使って
少しずつ他のものも触れてみるといい。
最初から全部に手を出す必要はないし、
最終的にも全部使えるようになっている必要はない。
2021/07/02(金) 11:50:23.46ID:Ngk5hsML
的外れな例え話は頭悪く見えるぞw
2021/07/02(金) 12:28:28.82ID:lSX3jk7y
おや?後ろに隠してるのは、棒かな?

www
2021/07/02(金) 12:40:53.27ID:Xm/bZCrF
>>304
先ずは初期装備のひのきの棒でスタートするだろw
2021/07/02(金) 13:05:21.63ID:VsUUVKi+
>>307
もらった装備は後から追加できないんだぞ
2021/07/02(金) 13:28:40.79ID:Egj0Aifo
そこで魔法でスキルアップだ
2021/07/02(金) 13:32:17.26ID:Vj99qG3J
もうやだ
2021/07/02(金) 14:04:17.52ID:KVWZHoQG
ここまでワテの自演
2021/07/02(金) 14:39:21.48ID:Qeilx2mY
wpf簡単チュートリアルテンプレートないの

DBとクエリだけ指定すればDataGridに出力してくれるとか
ボタンが配置してあってイベントに印刷とかExcel出力がすでにインプットされてるとか
2021/07/02(金) 15:38:08.34ID:VsUUVKi+
>>312
ほとんどwpf関係なくね?
2021/07/02(金) 16:32:41.92ID:Ir1tg0Tf
言語よりAccessのがいいんじゃね?
レポートは最強レベルの性能だし
2021/07/02(金) 19:19:58.89ID:s2SIGsrq
今時ローカルのDBなんて個人の小遣い帳にすら使い物になりません
2021/07/02(金) 19:42:12.79ID:Ir1tg0Tf
>>315
なにいってんの
サーバーに接続して利用すんの
一時期業務系の開発でよく見られた方式よ
2021/07/02(金) 19:49:38.81ID:9L+w52dS
SQLiteは使い勝手が良いのだが
2021/07/03(土) 04:36:22.66ID:DAcib8Yu
>>302
欲しいサンプルがさ、なかなか見つかんないんだよね
決め打ちできるほど選べないという・・・
その唯一見つかったサンプルたちが別々の書き方してると苦労する
自分はMVVMから学んで、あとでイベントドリブンを知った
2021/07/03(土) 04:59:48.16ID:DAcib8Yu
>>304
> ひのきの棒
> 剣・槍・斧・弓の欲張りセット
> どっちかくれるって言うなら普通は後者を選ぶだろ?

ディスるつもりはまったくなくけど、
なんか喩えがよろしくない気がする
どっちかくれるって、それは学習コストも含めて言ってる?
使いこなせること前提なのかな?
コンビニに行くのにヘリコプターは要らないでしょ?

WPFは使ってみて手に馴染まなかった
2021/07/03(土) 07:36:49.79ID:5NjsOhPI
>>319
徒歩しか選べないのと、ヘリコプターも徒歩も選べるのは全然違うよ。

WinForms的作り方でWPFを使えばいい。
バインディングもほとんど使わない。
それなら学習コストはほとんどかからない。

柔軟なレイアウトシステムとか
スタイルによるコントロールのプロパティ一括指定とか
学習コストが低くて便利なところだけつまみ食いすればいい。
2021/07/03(土) 09:09:34.76ID:WFYQtiF3
結局邪悪だったのは
WPFといったらMVVMみたいな記事を書いてたMicrosoftのブログとかMVP、なんだよね
山師みたいなもので
2021/07/03(土) 10:25:40.00ID:SKBAEND3
>>318
あとはもう書籍に頼るしか無いな
WPF関連の参考書は古いのばっかりだけど
WPF自体があんまり進化してないから2010年くらいのでも結構参考になる
2021/07/03(土) 11:00:07.13ID:IVHyImvm
取っ付きにくい→普及しない→資料が無い→

負のスパイラルだね
2021/07/03(土) 11:51:17.43ID:/7aEvID4
>>318
そりゃ酷い
普通こんな変態的なコード書かないよ

同じMSでもBlazorのMVVMの方がまともだ。

プロも考えてるなら
js覚えてReactとかやってみたら?
仕事多いよ。
2021/07/03(土) 13:31:50.48ID:xrPgyhkt
>>304
実際には、WinFormsが少し前の高級車で、WPFは、バックカメラを
搭載した軽自動車みたいな感じだろう。
速度が違うし、どっちがいいとも言えないような状態。
2021/07/03(土) 13:51:45.16ID:xrPgyhkt
>>325
もとい。
バックから見たいな画期的なものはWPFには付いてない。
せいぜい、短波ラジオが追加された軽自動車みたいな印象。
2021/07/03(土) 14:03:08.22ID:+Y9Mw3Lc
WPFってWindowsメッセージドリブンなアプリを作れないよね
2021/07/03(土) 14:03:10.68ID:SKBAEND3
そんなにWinFormが好きなのかw
2021/07/03(土) 14:22:06.46ID:+F8p4M2+
>>325
実際にはWinFormsがリヤカーでWPFがステーションワゴン
2021/07/03(土) 14:22:33.63ID:xrPgyhkt
WinFormsは、レンブラントやミケランジェロの作品の様に万人から一定の評価を
受けるようなものだが、WPFはピカソの絵みたいに人を選ぶ。
支持者には画期的で先鋭的なものらしいが。
2021/07/03(土) 16:12:05.88ID:kc73fFDc
いつまでWinForms vs WPFやってんの
ネタが尽きて妙な例えになってるし、いい加減にしろ
2021/07/03(土) 16:51:53.62ID:bc4tv4Cc
10年以上続けてる習慣にいい加減にしろだって!?
お前こそいい加減に止めることはできないって現実を理解しろよ
2021/07/03(土) 18:06:40.40ID:DAcib8Yu
>>320
やってみようかなという気持ちと
そっちの道も蛇の道では、または
それならWinFormsでいいんではないかという気持ちがある

WPFの扱いをユーザー側でどうこうするより、
MS側でバインディングを簡素化してくれた方が嬉しいかな
2021/07/03(土) 18:07:36.50ID:yLRyBVvw
自分が知ってるOSSでWPF使ってるのはEDCBぐらい
MVVMは使ってないようだけど
2021/07/03(土) 18:27:49.11ID:DAcib8Yu
>>322
ここ3年ぐらいで出版されたのを一冊買ってある
アマゾンで高評価だった奴
でも、欲しかった情報とちょっとズレてるんだよね・・・
もちろん有用な情報もあったけど
2021/07/03(土) 18:30:13.91ID:DAcib8Yu
>>324
> js覚えてReactとかやってみたら?

あら、今、正にそこ
そうだね、その方向性で行こう
2021/07/03(土) 19:20:53.81ID:l02BKdxs
今更、WPFを覚えるってのもね。
2021/07/03(土) 19:52:56.77ID:ApVtA7Dx
今ならWindows Runtime系の本でC#バージョン新しめのやつ探したほうが良い、あるのかは知らん(´・ω・`)
Xamlまでやるなら素直にPetzoldくんの6版
2021/07/03(土) 20:10:39.49ID:PF+2QSJm
マジか。WPF今から頑張ろうと思って色々調べているけど
正当進化のUWP?がズッコケてるのみるとこの技術に未来はないのかなとも思う
ただWPFのFormsにはない先端で綺麗なコントロールがあるからほっとけない
2021/07/03(土) 21:19:34.25ID:aubZqG39
今WPFを使う必要に迫られているのではなく将来を考えて勉強しようとしているなら、
さすがにそれはWebかスマホをやったほうがいいぞ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況