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/
201デフォルトの名無しさん
垢版 |
2021/06/28(月) 08:48:33.34ID:nwjsCynN
Formsの臭いものに蓋をしたような裏のコードを見て
コレジャナイって気付かないもんかねえ
2021/06/28(月) 08:52:45.03ID:+h03On/r
>>160
2021/06/28(月) 08:55:18.72ID:yki3tuNE
うだうだ言ってもWPFが普及しなかったという事は事実
2021/06/28(月) 10:23:14.06ID:+h03On/r
普及するかどうかと優れたアーキテクチャかどうかは
全く別の話なのも事実
205デフォルトの名無しさん
垢版 |
2021/06/28(月) 10:28:27.83ID:2Oa7bDPq
ユーザー目線では遅い重い
開発者目線では面倒くさい難しい
MS目線ではやめたい捨てたい
206デフォルトの名無しさん
垢版 |
2021/06/28(月) 11:23:45.55ID:7XtL7Dy7
>>175
wxWidgets
2021/06/28(月) 11:38:04.11ID:yLrQOr5w
古代UNIX時代のマークアップ技術をなぜ未だに引っ張り出さなあかんねん。
2021/06/28(月) 11:46:36.50ID:kyJYPXM1
ウダウダと文句を垂れ流しておられる皆様方の理想のUI記述言語はどのようなものでございましょうか?
209デフォルトの名無しさん
垢版 |
2021/06/28(月) 11:57:00.05ID:bIZ7S0Sd
>>200
jsonでUI記述するC#Framewoek作れ
210デフォルトの名無しさん
垢版 |
2021/06/28(月) 12:00:01.72ID:bIZ7S0Sd
誤解されそうなので補足しとくが
漏れはjsonもxmlもxamlもうんこだと思ってる
2021/06/28(月) 12:09:14.53ID:MUa2ipuR
それはちょっと語弊があるだろ
どんなに優れたマークアップ言語の上にでも汚物のようなスキーマは構築できるってのが正しい
クソDSLを設計して喜んでていいのってそれこそ小学生までだよねーww
2021/06/28(月) 12:38:19.33ID:zyIZLp3R
>>205
ユーザー目線:
WinForms:遅い・重い・応答なし・見づらい・使いづらい
WPF:速い・使いやすい
開発者目線:
WinForms:低機能・手の施しようがない・バグ地獄
WPF:必要なものが一通り揃っていて現代の開発に耐えられる

WPF程度を難しいなんて言っているレベルは転職をお勧めする。
2021/06/28(月) 12:40:21.87ID:TdjQ7qGS
趣味でやってる人だろ
さすがにプロでそんな馬鹿はいないと信じたい
2021/06/28(月) 13:02:13.72ID:yLrQOr5w
>>212
技術者としてそういう捏造するようになったり終わり。人間のクズ。
2021/06/28(月) 13:12:45.57ID:yki3tuNE
>>204
優れていなかったから普及しなかったのでは?単純に
2021/06/28(月) 13:16:23.14ID:DPgYMhor
だよね
必死にWPFを持ち上げるよりもどこがダメなのか議論するほうが建設的
WPFマンセー厨の人達は黙っておいたほうがいい
2021/06/28(月) 13:20:14.01ID:x0F/IlHt
×優れている
○ある面では優れている

糖質だって探せばいいところの一つくらいはある
2021/06/28(月) 13:39:01.27ID:gSJxewSh
>>216
MVVMでやろうとした時の教育コストがネックかな。
俺一人でやるなら問題ないけど、プロジェクトの都度人集めてやるような会社だときつい。
2021/06/28(月) 13:59:28.09ID:BZRfVYEc
winFormsって重いの?
まあSQLseverの大量のデータを扱う場合はそうかもしれないけど
2021/06/28(月) 14:43:55.35ID:ajvVSSfT
C++=Delphi > VB6 >>> WinForms >>Java Swing
速度だけならVB6の方が早かったからな
2021/06/28(月) 14:44:45.33ID:C7ospGa2
>>215
逆。vbから続くwinデスクトップ界隈では優れている人の方が少ないから
低レベルな人でも使える低機能なものの方が普及しやすい。

>>218
それもWPFが普及しなかった要因。
必ずMVVMで作らなきゃいけないかのような圧力に
怯えて技術力の低い多数の人達が逃げ出してしまった。
まずはMVVM禁止で何個かプロジェクトやってメンバーの大半がWPFに十分なれてから次のステップに移ったほうがいい。
222デフォルトの名無しさん
垢版 |
2021/06/28(月) 15:32:52.13ID:21xV/8JF
>プロジェクトの都度人集めてやるような会社

日本終わってるωωω
2021/06/28(月) 15:37:52.28ID:NB7SrI88
>>212
WPFの方が遅いと言うのを良く聞くが。
224デフォルトの名無しさん
垢版 |
2021/06/28(月) 15:40:40.25ID:2Oa7bDPq
セレロン、MEM:2GBがノーマルお仕事環境だからな
225デフォルトの名無しさん
垢版 |
2021/06/28(月) 15:49:46.29ID:2Oa7bDPq
>>218
選択肢が多すぎるのも欠点だよね
VBぐらい選択肢がないほうが同じ事の再教育しなくて済む
2021/06/28(月) 15:52:23.31ID:D8GEhOn7
wpfスレッド大人気だな
2021/06/28(月) 15:55:45.51ID:JBMsD7o3
雑談スレじゃないのにここまで雑談で埋まってるスレは他にあるまい
2021/06/28(月) 16:17:13.79ID:HVgpozoE
ほとんど同じことを繰り返してるだけだしな
2021/06/28(月) 17:21:27.52ID:NB7SrI88
>>227
フフフ。Flutterスレがあるぞ。
2021/06/28(月) 17:22:15.07ID:NB7SrI88
あと、Rustスレも。
2021/06/28(月) 17:27:03.04ID:+NMrGGDR
WPFコントロール作ってるライブラリメーカーのガチプロは
はなから内部はMVVMとか使っとらんぞ
それが真実
一般向けに皮だけIF定義して対応させてる次第
製品で遅いのとか使えんからな
すまんの
2021/06/28(月) 18:29:08.91ID:TdjQ7qGS
質問スレにしたらマシになりそう
2021/06/28(月) 18:39:14.79ID:kyJYPXM1
質問者放置してのマウント合戦になるだけやろw
2021/06/28(月) 18:46:52.11ID:cZa6zFVz
>>231
そもそもMVVMってコントロールの内部で使うもんじゃないと思うが。
2021/06/28(月) 18:52:48.08ID:zyIZLp3R
>>223
Windows Formsのグラフィックシステムでは、最終的な描画のタイミングをアプリケーション自身が握っているため、
描画途中でディスプレイ更新が行われると意図していない崩れた描画が表示されてしまうことがあります。
一方、WPFのグラフィックシステムでは、最終的な描画のタイミングはWPFの描画エンジンが握っているため、
意図していない描画がディスプレイに表示されることはありません。
そのため、大量のコントロールを高速でスクロールしても滑らかに表示できます。

>>231
プロジェクトの種類に応じて開発手法を選ぶのは当たり前。
MVVMを使うのは端的に言えば開発スピードを上げるため。性能を上げるためじゃない。
(真のガチプロはMVVM使いつつ性能も担保するかもね)
2021/06/28(月) 19:00:07.66ID:TdjQ7qGS
gdiとか完全排除してdirect2dに置き換えたら良いのに
2021/06/28(月) 19:32:24.45ID:hSv3zN64
2021年にもなってWinFormsにしがみついてる馬鹿がいるってマ?
2021/06/28(月) 19:51:21.64ID:v/5H91nJ
MVVMで開発スピードを上げるってネタだろw

リスト出てくるとイラっとする
239デフォルトの名無しさん
垢版 |
2021/06/28(月) 19:51:47.71ID:uDpGdBC4
>>231
>>234が正解だから...
240デフォルトの名無しさん
垢版 |
2021/06/28(月) 20:07:50.55ID:9VZBfvKN
MVVMはともかく、高DPIとか要素のスケーリング対応はWinFormsでやりたくないな

ただまぁ、敷居が高すぎるとは思う
書籍はロクに見当たらないし、日本語でそこそこまとまったフレンドリーな解説が載ってるサイトほとんどないのは痛い
関連ワードで検索してもかずきか妖精しか出てこないでしょ
(この2つも途中からRxが入り込んできたりMVVM前提になってくるから脱落者多いと思う)
とほほとかdobonとかufcppレベルに噛み砕いた説明が欲しいのよ初心者は
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に限らず

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

間違ってると思ったら気軽に指摘してくれ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。