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

■ このスレッドは過去ログ倉庫に格納されています
2021/09/19(日) 18:43:39.82ID:9XIs1/Nq
WPF(Windows Presentation Framework)について語るスレ。

前スレ
WPF(.NET, WinUI) GUIプログラミング Part26
https://mevius.5ch.net/test/read.cgi/tech/1624176258/

関連スレ
Windows 10 UWPアプリ開発Part 3
https://mevius.5ch.net/test/read.cgi/tech/1627556967/

コードを貼る場合は以下のサイトの利用をお勧め。
https://ideone.com/
2021/12/24(金) 09:54:52.88ID:9+ABzbvR
>>570
せやな、Javaおじさんが同類になるとは思わなかったよ…

   … COBOL爺
2021/12/24(金) 10:23:13.73ID:w5GNTxIx
>>570
そう考えると笑えるなw
人間誰しも歳取るとどっかの時点で新しい知識を受け入れなくなるんだなぁ
574デフォルトの名無しさん
垢版 |
2021/12/24(金) 10:26:55.95ID:ch1dfk+5
MVVMおじさんって今何してるんだろ
2021/12/24(金) 10:49:21.17ID:0UgRcNh9
>>570
WPFに固執してる人っていたっけ
デスクトップアプリ作るうえで消去法でWPFって人が多そうだけど
2021/12/24(金) 10:59:30.94ID:E0rHzfRM
WinUI3ってヴィジュアル系に不具合残っているけど
どうにもならないような不具合は1.0でかなり解消されているんだけどな
2021/12/24(金) 11:37:21.27ID:fQ2bMr/u
自由にファイルを置けるのはデスクトップとドキュメントフォルダのみ、各種設定は変更不可(もしくはリブートで設定リセット)、みたいな厳しい環境が増えてきてるから、xcopyインストールできないUWPなんか技術選定の段階で候補にもあがらなかったが、WinUIでようやくスタートラインに立ったかな。
あとは新しいことができるのは当然として、今までできていたことがどれだけ不自由なくできるかがポイント。
これプラス実運用に耐えられる品質とパフォーマンス。
2021/12/24(金) 12:03:46.18ID:E0rHzfRM
WPFに出来てWinUIに出来ないものの大きなのは複数Windowだが
ページで組んでいなかった人には大問題なのかもしれんね

あとWindowsTemplateStudioが2022で動かないので、2019でテンプレ作成して
出来たクラスを移植するとなんとかなる
https://portal.productboard.com/winappsdk/1-windows-app-sdk/tabs/2-planned
2021/12/24(金) 12:04:43.61ID:QunxCEet
>>574
MSがWPF推してた時代にMVVMやってたような意識高い系の人達はみんなWebに移った
580デフォルトの名無しさん
垢版 |
2021/12/24(金) 12:32:37.08ID:yxaUeoLG
メインウインドウの中にサブウィンドウ作らなきゃいけないな
マルチドキュメントインターフェースと名付けよう
2021/12/24(金) 16:59:47.39ID:hnRiR98X
まだ新規プロジェクトの作成でMDIかSDI、コンソールなんて選択してるの?
2021/12/24(金) 17:36:49.76ID:9u/nk0P/
>>581
と、申しますと?
2021/12/24(金) 18:20:52.01ID:cdkuRSZ8
>>579
なんでこう妄想が激しいんだろ
584デフォルトの名無しさん
垢版 |
2021/12/24(金) 18:38:20.16ID:zZDeAl5J
ウェブっていえばマウントとれると思ってるおじさんなんだろう
2021/12/24(金) 18:54:32.47ID:VdOvlmal
Windows11でウィジェットが追加されたけど、WinUIでウィジェット作れるようにならないかな
とりあえず今は対応アプリ少なすぎてあんまり使えないね
2021/12/24(金) 21:13:58.18ID:PxZoXBQ8
目が悪いので(盲学校に行ってた弱視です)
ダークモードは非常に見づらいので辞めて欲しい
587デフォルトの名無しさん
垢版 |
2021/12/24(金) 21:25:47.43ID:zZDeAl5J
やめるわけないじゃん
ユーザーが選ぶんだから
2021/12/24(金) 21:32:56.19ID:2KSdv/Qq
>>571
やっぱりダークモードって見にくいでしょ?
2021/12/24(金) 22:01:14.79ID:9u/nk0P/
vscodeやvisual studioはダークテーマが疲れないね
2021/12/25(土) 05:10:57.37ID:gKCCePd7
>>574
>>579
ここで言うMVVMおじさんってのは何でもかんでもMVVMで実装してしまう意識の低い人。
多分基礎的な事がわかってなくて他の実装方法を知らない。
MVVM使っておけば馬鹿にされないんでしょ?ってノリ。
2021/12/25(土) 08:04:31.47ID:bGAd2vTp
c#おじさんは?
2021/12/25(土) 08:52:16.21ID:mm8m+MMM
>>590
そういう人が実際にいるとしたら、VMにビジネスロジック書いてるんじゃないかな
それはどっちかというとWebでよくあるエセWebMVCの類で、MVVMではない
2021/12/25(土) 09:57:23.26ID:vDKNIftu
>>590
あらゆるところにMVVM使えと主張する奴がいたらそりゃ異常だがWPFに限れば別に普通なんじゃね?
ポトペタやりたいならわざわざWPF選ぶ必要もないし。
2021/12/25(土) 11:41:37.86ID:IZTT5nx6
>>593
画面数が1〜2個、追加で何もライブラリを入れなくても作れるようなものまでMVVMでやろうとするならMVVMおじさん。
2021/12/25(土) 12:09:00.10ID:vDKNIftu

「MVVMおじさん」じゃない人はその条件で何を使うというんだろう?コードビハインドにイベントハンドラで書く?
画面数が少ないからといってわざわざ別yのやり方するのも面倒だと思うが。

それとも、「画面数が1〜2個、追加で何もライブラリを入れなくても作れるようなもの」しかやらないから
最初からMVVMは使ってないってことかな。
2021/12/25(土) 14:10:37.28ID:5ppS8Aaq
MSのキラーアプリ群がC++からC#に移行しない時点でWPFは詰んでた。
結局C#で作るやっつけアプリはwinformで十分すぎた。
2021/12/25(土) 14:28:09.01ID:i1pk2T+3
OracleがDBをJavaで書かないからJava終了という笑い話
2021/12/25(土) 14:30:54.49ID:h5/R3nJw
WPF関係ないけどExcelを.Net対応に作り替えなかったの大失敗だろ
2021/12/25(土) 14:54:11.42ID:5ppS8Aaq
そもそも.netの配列がアクセス時の範囲チェックで糞遅いから
大量データ扱うには結局C++、C、アセンブラで書くことになる。
2021/12/25(土) 15:36:12.80ID:IZTT5nx6
>>595
実装方法はアプリケーションの性質に合わせてより適切なものを選択するべきであり、「面倒」なんて言葉が出てくる時点で技術者として3流。面倒なんじゃなくて知識が乏しいだけなんだろうが。
WPFでのMVVM開発はフレームワーク必須だと考えていて、フレームワークを使わないならMVVMを使うべきでない。
機能的にはコンソールアプリで十分なものの、利用者のPCスキルを勘案してUIをつける場合、exe1つで完結する方が利用者に親切。開発者にとっても無意味にソースファイルを増やすことなくメンテナンス性良く作れる。
2021/12/25(土) 16:19:36.07ID:vDKNIftu
後付け条件がわらわら湧いてくるいつものパターン。
602デフォルトの名無しさん
垢版 |
2021/12/25(土) 16:37:50.69ID:FCdBQpYa
初代MVVMおじさん元気にしてるかな
2021/12/25(土) 16:45:12.91ID:9Hho0xjg
>>599
そこまでやらなくてもunsafe使って範囲チェックを省略すれば相当早くなるよ
2021/12/25(土) 16:49:45.65ID:CoOPSMvi
だよな
unsafeで結構十分だよな
これがJavaだとJNIでCのコード書くことになるが
2021/12/25(土) 16:53:06.73ID:bGAd2vTp
>>600
後半の内容全く関係ないない話してるけど
詐欺師出身の方?
2021/12/25(土) 17:05:49.46ID:5ppS8Aaq
unsafeの突入コストがこれまた重い。クラス内で配列持ってると外からメソッド等でアクセスするとこの突入コストは避けれない。.netは遅くない、WPFは遅くない、unsafeがあると言ってる人たちは最初からその程度の要件だっただけなんだよ。速度重視の最適化で必ずぶつかる壁にぶつかってない。

だから速度が要件のアプリ、ライブラリではなかなか移行してもらえない。Javaと同じ轍を踏む必要はない。
2021/12/25(土) 17:14:32.16ID:CoOPSMvi
範囲チェックの事しかいってないのに
どんどん後づけされてもきりがない
608デフォルトの名無しさん
垢版 |
2021/12/25(土) 17:16:39.95ID:pFGjUvNq
WinUIはC++でも使えるのだが
2021/12/25(土) 17:26:06.06ID:5ppS8Aaq
WinUIのビッグウェーブくるぞ。

そしてWPFと同じく10年経ってなぜMSは移行に失敗したかって言うんだろうな。
2021/12/25(土) 17:58:27.05ID:i1pk2T+3
UWPの,net nativeはunsafe相当の速度ってベンチマーク見たな
611デフォルトの名無しさん
垢版 |
2021/12/26(日) 08:00:15.44ID:3SvVIkhf
>>602
U氏ならとっくにMVVMから足を洗ってるよ
2021/12/26(日) 09:55:11.53ID:hvR4lE2p
MVVM原理主義者は融通が効かなくて困る。
2021/12/26(日) 10:07:30.44ID:PnBrsUGe
そりゃどこの世界でも原理主義者はそういうもんだろう
2021/12/26(日) 14:12:53.65ID:RHzexC5p
MVVM原理主義者もMVVM絶対忌避者も両方アホ
2021/12/26(日) 14:20:07.63ID:jdmjK4iH
>>614
UIデザイナーなんて碌な仕事しないという経験から直感で現場でWPFは使い物にならないと思ったPGは多かったが
実際そうだったのだからアホではなく単なる経験の差である。MSも移行してもらえなかったからwinformを捨てられないしね。
キミは確かに無駄な努力、遠回りしただけのように見えるがよく頑張ったよ、立派だよ。おつかれさん。
616デフォルトの名無しさん
垢版 |
2021/12/26(日) 14:32:36.47ID:zDHpMfaY
wpfはプログラムの出来ないデザイナーでも使えます!
2021/12/26(日) 14:36:43.42ID:ghBgnKM8
>>615
何でMVVMの話がWPFの話にすり替わるんだ
まさかMVVM=WPFだと思ってるの
2021/12/26(日) 14:45:09.39ID:jdmjK4iH
>>617
そりゃここはWPFスレだからさ。なら最初からWPFは無視して
純粋にMVVMの話で限って言えば〜と先に断っておいてくれよ。
ボクはエスパーじゃないんだ。だがUIデザイナやMVVM連呼厨が
ユーザやPGのことなど全く考えてないことは経験として知っている。
MVVM論で言えば尻拭いするのはいつもPGと顧客だ。
2021/12/26(日) 14:48:17.01ID:PnBrsUGe
>キミは確かに無駄な努力、遠回りしただけのように見えるがよく頑張ったよ、立派だよ。おつかれさん。

自分じゃマウント取りにいったつもりなんだろうけど他人からはアホに見えるパターン。
気を付けた方がいいよ。
2021/12/26(日) 14:49:05.03ID:TBcJiomy
MVVMの要であるBindingはListViewなどではイベント型でも避けて通れないものなんだからBinndingは習得するしかない
Bindを理解しているのにMVVMを避ける理由ってそれほどないよな
2021/12/26(日) 14:50:43.04ID:ghBgnKM8
>>618
WPFに限定してのMVVMか非MVVMの話だとしても
文脈を無視してWPFが使い物にならないとか言い出す意味が分からん
2021/12/26(日) 15:08:16.26ID:jdmjK4iH
文脈がないのがUIデザイナー。ユーザの実務無視して見た目しか考えてない。マジ迷惑。
そんなことよりキミたちはよく頑張ったよ。その若さ溢れる才能で次のMVVMフレームワークをまた勉強したまえ。
WPFが登場して15年か。キミたちも相当に随分老けてないか。
2021/12/26(日) 18:29:45.67ID:TBcJiomy
「〇〇ができる」でマウント取るのは容易いことだが
「〇〇が出来ない」でマウントを取りに来るって
ある意味チャレンジャーだよなw
2021/12/26(日) 19:18:37.03ID:0tkG5TaR
>>623
キーボードスレにタッチタイプ出来ないことでマウントとる奴おったw
2021/12/26(日) 20:01:22.81ID:jdmjK4iH
日本人のくせに効率のいい、頭にも負担が少ない「かな」入力ができないなんて頭に欠陥あるんですかね。
ボクはただの努力不足だと思いますよ。ガラケー使ってる私を馬鹿にしてるiPhone君見てると入力が遅くて遅くて仕事が遅いんです。どっかのMVVM論者ですね。
2021/12/26(日) 20:22:06.53ID:vKRYpucd
いつも思うけどW:PFやMVVMを批判する人はなんか必死だよねぇ。
それだけルサンチマンが溜まっているんだろうか。
2021/12/26(日) 21:32:33.04ID:dwxjo6Mj
MVVM、ひいてはMVCが理解出来ないVB6脳なんじゃないかと思っている
2021/12/26(日) 22:00:58.48ID:r6Df+W+7
WPFのは異常にめんどくさいMVVMだよ
他の知ってると馬鹿らしさ満点だから

しかも身につけたスキルが他で全く使えない
↑これが一番辛いぞ
2021/12/26(日) 22:12:17.30ID:bjcghV5B
Reactとかと比べると別物だよなあ
考え方は同じにしても旧石器時代と現代くらいの違いがあるよ
2021/12/26(日) 22:26:34.17ID:jdmjK4iH
>>626
私はヘジのDOS時代のIDEに感動し、VCLのチート的な完成度にも妥協しwinformは最高だと思いましたよ。
そう言えば私がどれだけWPFに期待し、ガッカリしたか分かっていただけるかと。
そりゃあたたちMVVM信者の期待も無念に臥し、WPFは普及しませんでしたけどね。

この長く続くスレは負け犬たちの墓場なのです。
2021/12/26(日) 22:32:26.33ID:vKRYpucd
ReactのスキルをReact以外で使えたためしはないが、だからといって別にReactがダメだとも思わんがな。
2021/12/26(日) 22:37:41.54ID:j9YfNtBi
>>601
ケースの1つをあげただけじゃん
後付け条件てw
読解力低すぎだろ
2021/12/26(日) 22:37:43.53ID:bjcghV5B
私は異常に面倒くさいってとこに同調しただけで、他で使えるとか使えないとかは論じてないのでご理解お願いしますよ
2021/12/26(日) 22:39:17.15ID:bjcghV5B
むしろMVVMの考え方自体は同じである(他でも使える)とまで言っているんだぜ
2021/12/26(日) 22:50:33.40ID:vKRYpucd
相変わらずこんな熱いWPF批判をさせる何かがそこにはあるんだろうな。
2021/12/26(日) 22:59:53.43ID:jdmjK4iH
大事なのはおまえは使えてもおれは面倒で使えないという事実だ。
神は越えられない試練は与えないのだ。
2021/12/26(日) 23:16:28.31ID:ErCoZP15
wpfの記述が長くなるのは何とかなりませんか?
Androidのレイアウトに比べて見にくくて仕方ありません。
複雑になりそうな時はUserControl作ってますが、例えばリストやコンボボックスの列のレイアウトを別ファイルに持たせることはできないのでしょうか?
2021/12/27(月) 01:14:30.78ID:dpABR8Gh
DataTemplateをResourceに書いて外部化すれば良い
2021/12/27(月) 08:45:05.07ID:XZFU96F9
>>638
ありがとうございます。初心者でDataTemplateの外部化がわからないので調べてみます。
よくあるサンプルで長々と書いてあるのは分けると説明がしずらいとかなんかあるんですかねぇ。
2021/12/27(月) 11:50:33.83ID:MpjVnFnY
>>578
実質、WinUIはまだ使い物にならないって事か。
1ウィンドウページ切り替えのタイプで使い勝手を損なわずに済むものなんてかなり限られるし。
よくある一覧/詳細画面は別ウィンドウで自由な配置で見比べながら作業したいだろうし、
今の一般的な環境なら複数ディスプレイにそれぞれウィンドウを配置して使われるだろうし、
詳細画面は複数起動できたほうが喜ばれるだろうし。
641デフォルトの名無しさん
垢版 |
2021/12/27(月) 15:13:15.42ID:939Tcckd
wpfでデータバインド使いたい場合は
ViewModelにViewの参照渡してブンブン使っちゃえばいいのでしょうか
2021/12/27(月) 15:34:18.01ID:Ijy96lJZ
逆だろ
2021/12/27(月) 15:35:03.77ID:Ijy96lJZ
DataContextにVMを入れてXAMLでバインドすんだろ
2021/12/27(月) 15:40:40.47ID:ZJC6NOI1
釣りだろ?
2021/12/27(月) 16:26:07.11ID:P0DjFoVH
>>640
Microsoft「ぜひMDIを・・・。」
646デフォルトの名無しさん
垢版 |
2021/12/27(月) 16:47:06.90ID:mU5OforF
>>644
いえ
反MVVM派のやり方が知りたかったのです
バインドは使ってない?

Viewのクラス(this)をデータコンテキストに入れているコードもありましたがこれは問題ありませんか?
647デフォルトの名無しさん
垢版 |
2021/12/27(月) 16:53:29.12ID:vN7BrHe2
データを全部Vのプロパティに持つのが最速
648デフォルトの名無しさん
垢版 |
2021/12/27(月) 17:32:41.88ID:MyWm/8Po
WinUIならWPFほど何でもかんでもMVVMでっていう感じじゃないよ
2021/12/27(月) 17:49:14.74ID:mT+7462y
>>645
MDIじゃ親ウィンドウの外に出せないんだから
ページ切り替えの欠点を解消できない。
2021/12/27(月) 17:51:03.12ID:jrwdijIl
ええ???

どこがそんなに違うの??
651デフォルトの名無しさん
垢版 |
2021/12/27(月) 18:08:25.69ID:mU5OforF
>>650
MDIを見たことない世代ですか?
イメージとしてはマックみたいな感じ
まず壁紙が見えない(他のアプリも)
マルチディスプレイ対応が無理ゲー
2021/12/27(月) 18:23:05.26ID:g9U/rNiJ
マルチウインドウはVer1.1で搭載予定でQ2リリースだから4−6月まで待てばいいんだけどね
https://portal.productboard.com/winappsdk/1-windows-app-sdk/tabs/2-planned
2021/12/27(月) 18:30:47.77ID:XZFU96F9
>>646
これダイアログ作る時よくやるけど
2021/12/27(月) 18:33:05.07ID:jrwdijIl
>>651
ごめん、>>648に対するレスでした
655デフォルトの名無しさん
垢版 |
2021/12/27(月) 18:55:38.86ID:MyWm/8Po
WinUI始めてサンプルコードとか見てるとコードビハインドに書いていくのが基本
(WPFもだが)そのための機能は用意されてるわけだし
改めてMVVMは選択肢の一つというところに持っていきたい感じがする
実際、コードビハインドに書いて何か混乱が起きるようなことはそうそうないと思った
2021/12/27(月) 19:15:37.37ID:fF4fFKCG
>>646
MVVM派とか反MVVM派って考え方がおかしくて、
WPFアプリケーションごとにMVVMが適しているか、コードビハインドが適しているか考えて
その都度、より適切な方を選択するんだよ。
2021/12/27(月) 19:47:43.92ID:GqIwMQGT
WinUIも失敗確定の予感がしてきたな。
2021/12/27(月) 19:51:46.84ID:P0DjFoVH
どれが鉄板なんだよもう
2021/12/27(月) 19:59:09.24ID:HCL8lum8
>>658
そんなものは無いから困ってる
WinUIは期待されてるけどどうなることやら
2021/12/27(月) 19:59:34.59ID:GqIwMQGT
10年前からWinUIってあったのか完全にスルーしてたわ。既に普及に失敗してたんだな。
2021/12/27(月) 20:09:16.66ID:HCL8lum8
>>660
WinUI 2まではUWP専用だったから、まぁ当然の結果
WinUI 3で適用範囲を広げて仕切り直し
662デフォルトの名無しさん
垢版 |
2021/12/27(月) 20:31:07.25ID:MyWm/8Po
適用範囲広げてというかおすすめできるのはデスクトップのC#かC++かだけでしょ
WPFから使うとかUWPからつかうとかはやめたほうがいい
2021/12/27(月) 21:49:30.05ID:lhVIwToQ
>>655
寧ろイベントをバインディングできるから、コードビハインドと同じやり方でMVVM出来る
2021/12/27(月) 22:00:20.37ID:yKRhwp3Q
>>657
もう確定だよ
アンドロアプリ作ってWindowsで動かす時代が目の前だ
2021/12/27(月) 22:31:12.36ID:jrwdijIl
windowsの中でマテリアルデザインのアプリ動かすなんて違和感ありまくりだよな

https://github.com/bdlukaa/fluent_ui

flutterでfluent design
優秀
666デフォルトの名無しさん
垢版 |
2021/12/27(月) 22:33:44.60ID:jrwdijIl
https://bdlukaa.github.io/fluent_ui/
web版のデモ

まぁパフォーマンス要求するアプリは専用の開発環境使った方がいいが
667デフォルトの名無しさん
垢版 |
2021/12/27(月) 22:35:28.15ID:jrwdijIl
最新の宣言的UIフレームワークのcomposeのfluent design版もそのうちでてくるだろう
668デフォルトの名無しさん
垢版 |
2021/12/28(火) 00:16:04.33ID:2V9I50ip
開発者に多い勘違いがクロスプラットホーム開発でユーザーが喜ぶと思ってるやつだな
ユーザーはそれぞれの環境で最高のもの作れって思ってるよ
669デフォルトの名無しさん
垢版 |
2021/12/28(火) 00:32:37.93ID:pWYDa5PG
>>668
貴様Xamarinに謝れ!
2021/12/28(火) 08:12:31.11ID:9j3GtQtv
一般ユーザーからしたら違いなんてわからないし作り方はどうでもいいでしょ、バグがあったら怒るけどさ
2021/12/28(火) 08:27:38.52ID:7e2EiV6y
>>668
開発の負荷低減じゃねーーの?殆ど
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。