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/
282デフォルトの名無しさん
垢版 |
2021/11/22(月) 16:24:14.15ID:kArOZIiX
WPFはコントロール作るの簡単だぞ
2021/11/22(月) 16:57:30.26ID:hpJNYPMX
>>281

BitmapSource src = null;

// srcを設定

using (var fs = new FileStream("xxx.bmp", FileMode.Create))
{
BitmapEncoder be = new PngBitmapEncoder();
be.Frames.Add(BitmapFrame.Create(src));
be.Save(fs);
}
2021/11/22(月) 21:07:55.51ID:hUu20bEe
>>277
IDLでしこしこ書いてもいいけど、簡単にマージできないよね??
これが最大の問題だと思う

よし、プロパティを追加しよう。IDLを修正。IDLからコード生成。
生成させたコードを既存のコードを壊さないように手動で合体?
2021/11/25(木) 12:50:38.47ID:Sh2rwOHm
Win UIが想像以上に完成度低くてお通夜状態
2021/11/25(木) 13:04:19.58ID:F3lCPX8r
普及で大事なのは馬鹿でも使えるということ。
2021/11/25(木) 13:10:27.97ID:HfSBZkbG
とういうかプログラミングってシンプルイズベストだろ
ややこしくしすぎてMSの中の人もわけわかんなくなってそう
2021/11/25(木) 14:16:20.42ID:1eveYBOZ
MSからWPFのベストプラクティスが出てこないのがその証左だろうなあ
2021/11/25(木) 16:58:35.44ID:glmhau2y
MSはVSの開発で実践したじゃん
> WPFのベストプラクティス
WPFの設計思想とか無視して低レイヤの機能だけを使用し、上に独自のフレームワークを構築するのが正しいWPFの使い方だよ
2021/11/25(木) 19:15:02.13ID:F3lCPX8r
ただでさえVS2008で実装すべきだったのにVS2010まで遅れた上に
独自フレームワークにしてしまうとは、VS開発者がWPFにブチ切れしてたのは想像に難くない。
2021/11/25(木) 21:17:25.30ID:9wQLS7Ls
1.VS2022でWinUI3のプロジェクト作成
2.EF CORE SQLite を Nuget
3.EF CORE TOOLS を Nuget

2までだと問題ないが、3までやるとエラーで止まる
.NET 5 では問題なかったんだけどね

対処法はマイグレーションを暫く諦めるしかないのかな
2021/11/25(木) 22:50:29.92ID:lmhzcWbf
windows appsdk 1.3ぐらいになったら呼んで
2021/11/25(木) 23:36:34.31ID:Xt1TOEJK
1.2から2.0になった時は起こした方がいい?
また不安定になってそうだから2.3まで待つ?
2021/11/26(金) 13:55:42.48ID:/oeWBaoB
291だが、
UWPと同じようにDBのクラスをクラスライブラリプロジェクトにするなど色々やると対応できた
295デフォルトの名無しさん
垢版 |
2021/11/26(金) 17:33:51.75ID:tm36Huze
WPFの置き換えならAvaloniaはアカンの?

マルチプラットフォーム
WPFとほぼ同じ書き心地で書きづらい所改良済(移植も容易)
標準でモダンなUI搭載
標準でMVVMなテンプレート用意済
Rx(ReactiveUI)との親和性高め
主要なIDEでのサポートやプレビュー搭載済
それなりの規模で開発継続中

プロダクトには使えないだろって言う人もいるけど

WPF
 +MaterialDesignInXamlToolkit or モダンなUIフレームワーク
 +ReactiveUI or ReactiveProperty
 +Prism or 他のMVVMフレームワーク

最低限これだけ外部のフレームワーク準備しなきゃ現代的なアプリ作れないWPFもどうなんって感じですけどねぇ

現状IMEのサポートが弱い点が痛いけど、最近割と優先度上げて対応してるし
もっと使う人増えてほしいな
2021/11/26(金) 18:22:44.75ID:RwpMVgND
Reactで十分だよ
2021/11/26(金) 19:13:17.80ID:gCQqWjbE
>>295
個人の趣味ならともかく業務ならWinFormsの代わりとしてのWPFの使い方で十分メリットある。
ReactiveXXもMVVMも使用禁止。
2021/11/27(土) 08:45:28.79ID:Zh9GgFO4
ていうかWinFormsでいいじゃん
2021/11/27(土) 10:19:50.09ID:D0pm5MxH
2022自体のIDEもWPFのままなの?
2021/11/27(土) 10:42:20.50ID:Pda/ZxZW
https://visualstudiomagazine.com/articles/2021/04/20/vs-2020-feedback.aspx
によると WPF & .NET Framework のまま
視聴者コメントではなんでCore移行しないのかと批判されてるけど、その答えはたぶん次はElectronになるからだろうな
301デフォルトの名無しさん
垢版 |
2021/11/27(土) 10:43:58.00ID:3dou0V/5
テレワーク需要でHiDPIとか複数モニタでもまともな見た目にしろって要件増えてきたから、WinFormsはちょっとね…

>>297
RxはともかくMVVM禁止で作られた業務ソフトって想像つかないなぁ
テストのこととか考えたら単機能ソフトしか作れなくないか
2021/11/27(土) 10:46:47.21ID:Pda/ZxZW
業務ソフトなんかほとんど人力テストだよ
手で操作してスクショ取ってExcel方眼紙に貼るの
2021/11/27(土) 11:05:20.18ID:HuMLJxHu
Xamlへのイベントハンドラー&Rxで十分だよな
2021/11/27(土) 11:09:52.24ID:HuMLJxHu
>>302
結合テストは入力が人力テスト同等じゃないと受け入れてもらえないからね

殆どの案件が人力による総合テスト
エビデンスはExcelへの画面キャプチャ張り付け

単体製造時のみ単体テストコード
2021/11/27(土) 11:42:28.61ID:xzMzDQEi
WinUI3など要らないなんて言っても、イベントのバインディングは便利だぞ
ブレンドのビヘイビアでも出来るけどアレは面倒だ
2021/11/27(土) 12:26:57.49ID:Zh9GgFO4
>>300
なるわけねえw
2021/11/27(土) 12:38:10.40ID:8s/iwdyZ
内部はともかくガワだけHTMLベースに変更は普通にありえるんじゃないか?
しれっと変えてもなんか綺麗になったなくらいで気付かない人が多いと思うぞ
VSCodeのエクステンションが使えるようになったりするかもしれないし良い事ずくめ
2021/11/27(土) 13:06:17.14ID:HuMLJxHu
>>307
eleven.net
2021/11/27(土) 13:08:02.88ID:HuMLJxHu
Electron.NET
2021/11/27(土) 16:07:17.94ID:xegZR0GR
>>298
Hi-DPI対応と全ての画面をレスポンシブ対応完璧にやってるならWinFormsでもいいけど。
WPFで作った方がはるかに楽だよ。
2021/11/27(土) 16:22:07.36ID:xegZR0GR
>>301
WPF使ったプロジェクトでMVVM採用してるのは自分が自己満足で採用した1例しか出会ったこと無い。
WPFでのMVVMはフレームワーク使用ありき(勉強目的以外で自力でやるのはただの馬鹿)だけど、
最近までMS公式とかそれに準ずるようなライブラリがなくて業務では使えなかった。
2021/11/27(土) 17:14:15.29ID:HuMLJxHu
>>311
それは片寄った経験だな
企業向けで10案件ぐらい経験してるけど全部MVVMだったよ
313デフォルトの名無しさん
垢版 |
2021/11/27(土) 17:18:28.71ID:s0wNoaUf
>>311
もしかしてサードパーティー製を一切許さないタイプの職場?
2021/11/27(土) 18:17:44.44ID:dnBIpGMX
>>313
まだまだ多いよ。ライセンス表記したくないから余計なものは入れるな、とか。
市販のコンポーネントの方がまだ利用障壁は低い。
ASP.NETだと最初から色々入ってるからちょっとぐらい追加してもバレないけど。
2021/11/27(土) 19:49:39.89ID:F0oZrHHj
>>314
そういえば昔 MVVM light は倫理規定で使えないから互換品の作成を依頼された事がある
316デフォルトの名無しさん
垢版 |
2021/11/28(日) 17:00:04.01ID:sYG9yljg
大手でもライセンス表記して普通に使ってるのに零細の妙なこだわりはようわからんわ
2021/11/29(月) 19:58:51.38ID:y9ywxRiX
もうlinux使ってないテレビなんて売ってないんじゃないかなあと思う
318デフォルトの名無しさん
垢版 |
2021/11/30(火) 01:23:34.45ID:Oe0BBDJQ
数年後はハカーさんの天国でしょうね
2021/11/30(火) 01:53:00.89ID:2WJpUEoD
winformsからWPF+MVVMってのがそもそも飛躍なんだよな
もとのwinformsはMVVMだったのか?ってことだよ
MVCとMVVMの比較ならわかるが
2021/11/30(火) 02:02:44.37ID:Jx+1f9a0
確かにすごい飛躍で俺も大変だったが、他の環境でも同じじゃね??
例えば今androidで開発始めるとしても、jetpack composeだと宣言型+MVVM(MVなんか)だし
flutterやるとしても同じもだし
SwiftUIも..
もちろん、今までのビューベースの開発もできるが
2021/11/30(火) 06:06:44.82ID:3achTmNF
いや、ASP.NET MVCはMVCで作ることを前提としたアーキテクチャだけど、
WPFのMVVMは後付け。MVVMありきじゃない。
アプリケーションの性質によってMVVを採用するべきか毎回考えるんだよ。
Template StudioでもコードビハインドかMVVMを選択するようになってる。
2021/11/30(火) 08:15:17.48ID:KciFETfH
>>318
地デジTV出てからどんだけ経ってると思うの?
323デフォルトの名無しさん
垢版 |
2021/11/30(火) 21:11:04.11ID:wsx8LlIZ
まだMVVM界隈は宗教論争やってんのか
10年近く進歩してないねえw
324デフォルトの名無しさん
垢版 |
2021/11/30(火) 21:49:46.93ID:QH+xYlUG
フォームおじさんが進歩しないだけ
2021/11/30(火) 23:02:40.36ID:4jk6utxq
WPFが世に出て苦節16年
2021/12/01(水) 02:48:23.68ID:X2z5g09w
UnoPlatform 4.0
MVU-X

avalonia UIもゴミ品質だしUnoもゴミ品質だし
みんなでリリース分散して自滅するという
2021/12/01(水) 09:02:42.66ID:6JQMsHXZ
プロパティにget set initだけじゃなくて bindを追加して自動実装してくれたらもっと普及していた可能性も…

ないか…
2021/12/01(水) 10:13:29.74ID:2rNk/soB
>>324
フォームおじさんはそもそもwpf使えない
xamlにビビって逃げ出しちゃう
2021/12/01(水) 12:01:49.36ID:5YTb+CfL
Xamlって時間の無駄だよな
2021/12/01(水) 13:03:08.16ID:Jc/jp9/O
>>329
WinFormsでポトペタするよりは数倍効率的だよ。
2021/12/01(水) 13:26:02.89ID:+zDAsEb1
>>329
むしろ早い
2021/12/01(水) 18:33:31.85ID:5YTb+CfL
333デフォルトの名無しさん
垢版 |
2021/12/01(水) 21:41:31.22ID:nSOuXXm5
XAMLなどという安易なオレオレDSLを濫造した結果、
辻褄合わせの不完全な無理筋アーキテクチャが誕生して技術者に愛想つかされて廃れてしまったのがWPF
2021/12/01(水) 21:43:32.32ID:rxAAI6we
XMLは元々MSの提唱した規格じゃなかったか
335デフォルトの名無しさん
垢版 |
2021/12/01(水) 21:47:50.53ID:nChWqNp+
廃れるどころかXAMLの世界を広げていったよな
2021/12/01(水) 21:55:57.21ID:K43krm2i
最新リリースのフレームワークでもXAML使われてるしね
337デフォルトの名無しさん
垢版 |
2021/12/02(木) 01:26:47.17ID:aSDTjPGK
あわしろ氏もMS言語はベンダーロックインされるから避けろと言ってる。
2021/12/02(木) 01:51:50.99ID:tCUN1pkY
>>337
誰やねん
2021/12/02(木) 02:34:32.58ID:6LBfFrhG
Rubyゲェジが挙げる人間って実在してんのか?
2021/12/02(木) 12:39:59.44ID:IA5MHj07
Xaml はそもそも出が bland 用の言語なので!( ̄▽ ̄;)
2021/12/02(木) 14:40:16.59ID:ZkomhGTX
UWPからWinUI3に移植しているが、Null関係で挙動が変わって落ちるのが多い
nullableが無効でも落ちるんだから、デバッグ不足なんだろうか?

例えばstring[]のプロパティーをSelectMany掛けたとき、プロパティーがnullだと落ち
以前のバージョンならnullでも落ちることはなかった

まあC#言語自体の問題だからWinUI3は直接関係ないが
342デフォルトの名無しさん
垢版 |
2021/12/02(木) 15:39:50.57ID:V1/8vw1n
エラーや警告全部潰したのか
2021/12/02(木) 15:45:26.39ID:2ZnSDNZw
コーディングが悪いに10ペリカ
344デフォルトの名無しさん
垢版 |
2021/12/02(木) 19:29:14.85ID:CTB0TicX
C#のバグをコーディングのせいにするなよ。
2021/12/02(木) 20:53:53.11ID:2ZnSDNZw
エラーと落ちるのは別問題だしnullチェックは実装側がチェックするんじゃね
2021/12/02(木) 22:23:02.65ID:VuWHbhh/
SelectManuでnullって元々例外にならん?
347デフォルトの名無しさん
垢版 |
2021/12/02(木) 22:35:04.02ID:+1sdEraP
なるね。そもそもUI関係ない話だしな
2021/12/03(金) 09:43:39.68ID:5p0sqebB
まさか仕事で使ってないよなw
2021/12/03(金) 15:24:52.56ID:RT3SWc39
https://github.com/lepoco/wpfui
これなんなの
ModernWPFに続いてこれ
また中途半端で終わるのかな
350デフォルトの名無しさん
垢版 |
2021/12/03(金) 15:30:45.19ID:RT3SWc39
ちょっと前も書いたがModernWPFも更新停止してて
Microsoftが強力なリーダーシップとらんからavaloniaやUnoPlatformとかみんなで戦力分散してどれも中途半端な品質になって全滅

つか、UnoPlatform 4.0でVisual Studio Codeや色々対応したぞ
これっぽっちも話題になってない
351デフォルトの名無しさん
垢版 |
2021/12/03(金) 15:32:56.90ID:RT3SWc39
ほれ
https://platform.uno/blog/announcing-uno-platform-4-0-four-major-components-added/
2021/12/03(金) 22:42:19.01ID:+QAa1WFf
XamarinでなくUnoでいいだよな。
Xamarinチームのろますぎる。
2021/12/03(金) 23:24:24.55ID:9uRuF5M7
unoってxamarinに乗っかってるんじゃなかったか
354デフォルトの名無しさん
垢版 |
2021/12/04(土) 02:17:34.97ID:duEC3q7J
MSがリーダーシップとる必要ないと思うけど
2021/12/04(土) 08:19:01.55ID:jisV9eX6
MS 昔backbone、今React推しだろ
2021/12/04(土) 10:55:56.21ID:Pfyferf0
Reactは無いわ
2021/12/04(土) 11:25:13.36ID:CGEx/W13
unoしてみようかと思ったけど
xamarinとかいれないといけないからやめた
2021/12/04(土) 12:38:09.08ID:kdi4wOGz
Reactはいかにも欧米的な徹底したトップダウン指向で、島猿には馴染みにくいところがあるよね
本来MVVMなんかも根底の思想はトップダウン設計なんだろうけど、見た目から入ってそこからVMを抽出するようなボトムアップな作り方でもなんとか形になるんだよ
対してReactはそうはいかなくて、抽象から具体へ一方向にデータを流す完全にトップダウンな構造が強制される
外人のいう、MVVMはビューとの細かいインタラクションがうざいみたいなのって日本人には理解しにくい感覚だろうな
2021/12/04(土) 13:36:56.15ID:jisV9eX6
WPF MVVMからReactに移行すると
あまりの簡単さに衝撃をうけるよな
簡単、極めてシンプルかつ必要なコード量も桁違いに少ない
あと驚くのがvscode使ってのデバック性能が桁違いによい
XAMLにブレークポイント貼れないとか笑える

MVVMで議論される事って
MVVMみたいな個性的な仕様を持ち込んだから発生してた事が良くわかるぞ
2021/12/04(土) 13:39:58.39ID:F0qid+KU
>>338
候補として二人居る:
1. あわしろいくや(UbuntuLinux、OpenOffice、翻訳家)
2. プログラミング関連のYouTuberにあわしろというどっかの企業社長がいる。
2021/12/04(土) 13:41:38.33ID:U53Fmlsk
>XAMLにブレークポイント貼れないとか笑える

どういうことをしたいんだろ
2021/12/04(土) 13:43:06.95ID:F0qid+KU
>>360
間違った。
2は、「エンジニアチャンネル」の「粟島」だった。
だから、1.かな。
2021/12/04(土) 13:43:45.86ID:wGH9SwaY
バインディングで値の変更が発生するタイミングに貼りたいことはあるなあ
2021/12/04(土) 14:01:29.89ID:jisV9eX6
証券のリアルタイムクライアントをWPFで
実装してた時とか
インジゲーターの発光条件のようなちょっとした判定がXAML内にあると苦労する
そういう時はコードビハインドで書いた方がよかった
2021/12/04(土) 14:23:58.38ID:U53Fmlsk
>>363
VMのプロパティに貼るで不足に思ったことは無いなぁ。
PropertyChangedがちゃんと飛んでいるか疑う場合とかかな。
2021/12/04(土) 14:37:26.13ID:tlMggZBm
散々言われていることだが
x:bindをバックポートしてくれるだけでかなり作りやすくなるのだがなぁ
全然完成しない次期UIプラットフォームよりWPFを拡張した方が実用になるんじゃないか
2021/12/04(土) 14:42:59.49ID:uWlSLupE
頑なにバックポートしないのはつまりそういうことだぞ
諦めたら?
2021/12/04(土) 14:55:11.84ID:B2/a6yVa
>>367
どういうこと?
2021/12/04(土) 19:27:22.33ID:VDz5c7+k
Uno 4.0の次はこれ
https://blog.jetbrains.com/kotlin/2021/12/compose-multiplatform-1-0-is-going-live/

Compose multiplatform
370デフォルトの名無しさん
垢版 |
2021/12/04(土) 19:33:01.60ID:VDz5c7+k
https://developer.android.google.cn/jetpack/androidx/releases/compose-compiler

jetpack composeも順調に細かくアップデートしてくれる

winui 3の品質と大違い
371デフォルトの名無しさん
垢版 |
2021/12/04(土) 19:39:39.42ID:VDz5c7+k
flutterの方も4か月に1回リリースするから
今月にリリースくるかな
flutterのwindows,linux対応どうなってんのかな
2021/12/04(土) 20:04:03.98ID:2JL+968q
winui3待ってる間にflutterに浮気中なり・・・
373デフォルトの名無しさん
垢版 |
2021/12/04(土) 20:41:06.59ID:duEC3q7J
フォームおじさんだったらflutterでも何も理解できないんだろうな
2021/12/05(日) 16:05:58.30ID:zwvwJ3GL
>>373
お前の理解度程度でw
2021/12/05(日) 22:10:53.32ID:2XZtwemX
WinUI3のWindow制御は、よく読むと必要な情報も機能も全て用意されているのは分かったが
AppWindowPresenterという概念を理解する前にuser32を使い始めたのが敗因だったわ
一応動いているけど作り直さんといかん

流石にwpfよりはちゃんとしている
2021/12/05(日) 22:59:54.39ID:Z8sJTB6x
Flutterで作られたWinアプリってなんかあんの?
2021/12/06(月) 09:10:25.40ID:kWdsX7BP
>>375
あんなの用意されてるとは言わんわ。
windows api使えば泥臭いけど色々できます、と同レベルやんけ。
378デフォルトの名無しさん
垢版 |
2021/12/08(水) 18:32:20.16ID:1/e0NkZI
WinUI 3触り始めたけどこれ現代版WPFみたいな感じだな
違和感が少なく作業できたわ
2021/12/08(水) 20:18:31.30ID:a4b1TrI6
ほぼ同じ感じだから使いたいんだけど、datagridやComboBoxのバインディングのエラーが改善されないと正直使い物にならないかなあ
かなり目立つし致命的なところだと思うんだけど、なんで放置されてるんだろ
2021/12/09(木) 02:27:48.11ID:OPHaQIOf
このスレでグチグチ言われてるのは、品質とパフォーマンスだね..
2021/12/09(木) 07:02:21.82ID:kmW2UpC8
パフォーマンスはともかく
MSに品質を期待するのは野暮ってもんだ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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