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/11/11(木) 23:48:15.82ID:JZxzrnkP
今やってるのを一区切りつけてからじゃないと新しいのに手を出せない俺
それまでにFixしといてくれよ
222デフォルトの名無しさん
垢版 |
2021/11/12(金) 00:05:11.39ID:4fWazNbK
依存症はよくない
223デフォルトの名無しさん
垢版 |
2021/11/12(金) 10:47:20.48ID:uCoii1J0
>>219-220
南無南無
224デフォルトの名無しさん
垢版 |
2021/11/14(日) 02:17:20.83ID:RCoTIHjC
アプリを.NET 6に載せ替えたら処理の引っ掛かりみたいなのが大幅に改善された
2021/11/14(日) 13:59:06.81ID:zlohTX33
WPFアプリが??
2021/11/15(月) 04:58:55.60ID:C16OsMO8
winui爆死する未来しか見えない
2021/11/15(月) 07:29:35.09ID:iooiPnyf
結局WPFが生き残るのか。
もうWPFをバージョンアップしてくれよ。
2021/11/15(月) 08:17:39.29ID:+6akv0mD
WFPでは皆様の寄付をお待ちしております
2021/11/15(月) 11:55:23.25ID:IH+BT7TN
2021/11/15(月) 14:15:27.62ID:/1xecnW4
vs2022にprismのテンプレート来ない?
2021/11/15(月) 14:28:10.63ID:kKRT+KTn
prismなんかいい加減卒業しろよ
2021/11/15(月) 14:30:20.08ID:G4EYkYuC
propptabtabのためだけにprism入れてるわ
2021/11/15(月) 16:33:07.33ID:x1+onMn+
多分prismいれなくてもできるんじゃ
2021/11/15(月) 17:43:03.63ID:0TlUiGC2
ViewModelのベースクラスってもう標準で用意されてるんだっけ?
2021/11/15(月) 18:22:58.00ID:iooiPnyf
Microsoft.Toolkit.Mvvm.ComponentModel.ObservableObject
2021/11/15(月) 18:28:51.50ID:rI6h6bd5
WindowsCommunityToolkitのObservebleObjectは?
2021/11/15(月) 18:29:16.65ID:rI6h6bd5
ごめんリロードしてなくて被った
2021/11/15(月) 18:43:19.59ID:CDLBepk7
ViewModelのベースクラスだけでいいなら別に1分で自作できるしな
後、DelegateCommandも自作。
これ以上求めるなら既存のパッケージ使った方がいいが

後、これにMicrosoft.Behaviorsと必要ならReactivePropertiesなりを
239デフォルトの名無しさん
垢版 |
2021/11/15(月) 18:47:10.18ID:CDLBepk7
まぁ、MVVMガチガチでやるならそこら辺のベースパッケージに他のPub/Subのメッセージ機能だのいろいろ含まれてるだろうから使った方がいいかも知らんが

俺は多少のコードビハインド上等!!で緩くMVVMやってるから
2021/11/15(月) 18:50:16.78ID:CDLBepk7
でも、今はそこら辺もコードジェネレーションさせるのがはやりなの?
全く知らんが
241デフォルトの名無しさん
垢版 |
2021/11/15(月) 19:40:59.72ID:ejWt9yMz
自作コントロールをコードビハインドで作ってね、というのがwpf元々のデザインなのかね?
2021/11/15(月) 20:28:40.80ID:lZl/HvLi
そいやMicrosoft.Toolkit.Mvvmって使ったことなかったな・・・
2021/11/15(月) 23:04:20.75ID:shaETTHE
>>226
UWP切り捨てなきゃだめだよな
win8以降のストアアプリ・タブレット互換路線は黒歴史
2021/11/16(火) 10:02:33.83ID:5D9mKY7b
世に出る前から黒歴史になるって言われてたのに強行して出して案の定黒歴史
245デフォルトの名無しさん
垢版 |
2021/11/16(火) 10:09:40.45ID:5cc/FgRz
WinUI3の事かーー!
2021/11/16(火) 20:01:11.22ID:ziRanpBl
MSはダメなんだよ
まともにアーキテクチャーを考えられる人材がいない
2021/11/16(火) 22:19:42.16ID:mlgO19O/
明日のcommunity callと共にゴミ品質のまま正式リリースですか?
2021/11/16(火) 22:30:06.77ID:5FWPEUJg
アーキテクチャを考えるのにアーキテキター
2021/11/16(火) 23:11:10.51ID:hZl5lwq3
どうせ誰も使わないんだからノープロブレムよ
MS自身も分かってやってるんだろ
2021/11/17(水) 00:18:40.38ID:PL0w9qJ+
WinUIのロードマップ視覚化ってのが出来てた
https://portal.productboard.com/winappsdk/1-windows-app-sdk/tabs/2-planned
2021/11/17(水) 01:09:29.51ID:l3rfe7cQ
>>249
俺は使うよ
2021/11/17(水) 05:04:04.64ID:F9/Q+7sp
ちゃんとサポートしてくれるならいいけどね
どうせいつもみたいにすぐ飽きて放置プレイだろ
2021/11/17(水) 05:20:35.01ID:mDvOmcEb
winuiってウィンドウのサイズが変更できないとかそんなことみた気がしたけど
どうなったんだろ
2021/11/17(水) 07:18:22.92ID:TiwSaLsb
同じ時期ぐらいに発表されたjetpack composeは順調なのに、mauiは延期でwinuiは品質低すぎって..
流石片手間プロジェクト
2021/11/17(水) 08:48:28.07ID:hfpDFEDy
現実的な打開策として、WPFを強化するしかないんじゃないの?
UWPベースのものはプロトタイプとしてきれいさっぱり捨てて、
WPFにWin10〜11のルック&フィールとx:Bind足すだけでWinUIよりも数段上のものが出来上がる。
ウィンドウサイズの件もそうだけど、WPFならデスクトップアプリに求められるあれこれを既に持っているんだから。
2021/11/17(水) 08:50:00.25ID:TiwSaLsb
https://docs.microsoft.com/en-us/windows/windows-app-sdk/api/winrt/microsoft.ui.windowing.appwindow?view=windows-app-sdk-1.0

これみるとサイズ変更できそうじゃね

つか、1.0リリースされたやん
2021/11/17(水) 09:26:32.18ID:hfpDFEDy
>>256
SizeInt32 Size { get; }

読 み 取 り 専 用
2021/11/17(水) 09:29:22.67ID:q/vNEJLr
メトロ、ストアアプリのときWPF続けてたらな
2021/11/17(水) 10:09:21.33ID:EI3vab8p
>>257
Resizeメソッドあるやん
触ったことないから知らんけど
2021/11/17(水) 10:12:22.56ID:0sKaSg3R
ElectronをWindowsでネイティブサポートするのが唯一の正解
Slack等が軽量爆速になれば数年前からMacしか使ってない俺でも乗り換えを検討するわ
2021/11/17(水) 10:30:00.80ID:wJ1eOL3L
>>260
Webview2作ったからそれはない
2021/11/17(水) 13:26:02.57ID:TiwSaLsb
https://docs.microsoft.com/en-us/windows/windows-app-sdk/api/winrt/microsoft.ui.windowing.fullscreenpresenter?view=windows-app-sdk-1.0
フルスクリーンも簡単にでき?るのかな??
263デフォルトの名無しさん
垢版 |
2021/11/18(木) 02:03:49.13ID:3BcDzx+Q
1.0なのに試験段階っていうのがよくわからん
バージョンナンバーの使い方がおかしい
2021/11/18(木) 05:48:29.00ID:ybXjdWUK
ロードマップ的にそろそろ出さなきゃ。
でもまだ品質が全然…
そうだ!
2021/11/18(木) 09:08:32.64ID:gtae6oKM
>>263
試験段階ってのは8月に出たやつ
今度のは正式リリースでStableだよ
https://docs.microsoft.com/ja-jp/windows/apps/windows-app-sdk/release-channels
2021/11/18(木) 09:13:27.09ID:+yickl7q
相変わらず本末転倒ですなあ
2021/11/18(木) 10:18:05.81ID:aGaNdek0
nugetのやつまだプレビューって付いてる
2021/11/18(木) 13:04:48.13ID:naW8oYaR
stableってMS語だとalphaくらいの勢いだろ
2021/11/20(土) 03:57:22.14ID:XyEhzNsD
>>199
https://github.com/microsoft/microsoft-ui-xaml/issues/1633#issuecomment-968612478
これだな
ゴミ決定
2021/11/20(土) 06:23:25.85ID:yZJtYWFA
Dependencyとかアホかと
いい加減やめればいいのに...
2021/11/20(土) 08:12:32.83ID:RcKVzoxT
現段階で作るならWPFだな。
272デフォルトの名無しさん
垢版 |
2021/11/20(土) 20:36:36.89ID:41BZ9bnj
>>269
こりゃ酷えなw
2021/11/21(日) 05:58:51.60ID:O2NBUc/R
WinUIの100倍高速なWPFがまた勝ってしまった
274デフォルトの名無しさん
垢版 |
2021/11/21(日) 07:46:34.96ID:HzrwXwCY
不毛なMVVM論争に始まりこの界隈腐り切ってるな
もうこんなゴミ捨ててWin32でいいだろ
2021/11/21(日) 13:51:31.68ID:XVFFQpa8
出たwin32おじさん
2021/11/21(日) 14:48:21.41ID:Hm7POycp
>>269
これはmanaged,unmanaged間のinterlopのオーバーヘッド?
つまり、c++/winrt使えば問題ないのかな..
2021/11/21(日) 19:15:52.27ID:nVO1gnhV
コンポーネントを書く時に今時インターフェイスをIDLでシコシコ手書きさせられるあのC++/WinRTでつか
2021/11/22(月) 08:56:34.80ID:ihL7kPV2
WPFの対応は?

What's new in Windows Forms in .NET 6.0
https://devblogs.microsoft.com/dotnet/whats-new-in-windows-forms-in-net-6-0/
What’s New for Visual Basic in Visual Studio 2022
https://devblogs.microsoft.com/dotnet/whats-new-for-visual-basic-in-visual-studio-2022/
2021/11/22(月) 09:11:13.76ID:hmzMhf+2
当然使えるよ。
2021/11/22(月) 10:20:53.76ID:Jfwl1W4W
WPFはコントロールテンプレートで実装丸見えだから細かい改善はやりづらいだろうね
コミュニティによるコントリビューションもいくつか入ってるみたいだけど、
そういうのもWPFの場合は作法に合ったコントロール作るの無茶苦茶難しいからかなりハードル高そう
2021/11/22(月) 15:48:31.64ID:Fwq2USUe
resizeBitmap.Save("xxx.bmp")でセーブしたらPNGフォーマットのxxx.bmpファイルができちもうた。 こんなもんなの?
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も..
もちろん、今までのビューベースの開発もできるが
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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