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

■ このスレッドは過去ログ倉庫に格納されています
2022/04/11(月) 05:10:34.19ID:LqBiqZMV
WPF(Windows Presentation Foundation)について語るスレ。

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

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

コードを貼る場合は以下のサイトの利用をお勧め。
https://ideone.com/
2022/06/13(月) 19:38:49.60ID:4OK78Cnc
dartだけで作れるようになってくれたらつかったげる
2022/06/15(水) 11:28:35.56ID:5MewLf9U
XAMLで面倒だなって思ったのが一覧表示のループ
foreachとかwhileがない代わりにtemplateで記述
これ初心者のハマリどころだよな、難しい言われても仕方ない
2022/06/16(木) 20:16:16.61ID:vJM7hqNm
Electronキラー、Tauri 1.0 リリース!
2022/06/24(金) 21:18:43.92ID:d+czrOOd
TAURIを使って、デスクトップアプリを作ってみる
https://tech.excite.co.jp/entry/2022/06/24/165315
2022/06/24(金) 21:29:03.03ID:5JzJDf7L
rustという言葉に踊らされすぎ
2022/06/25(土) 00:42:48.41ID:rKfSzAxy
いかがだったでしょうblogを紹介するなよw
自作自演か?
2022/06/25(土) 06:44:20.68ID:z9QRxAiq
いや宣伝でござろう
2022/06/25(土) 08:36:15.50ID:8rCEDsWI
内部でWebView使うって事で
環境が異なるとUI崩れるって事でもあり
もうクソなんだかな
2022/07/03(日) 14:30:11.65ID:lZextqQ1
WPFのメニューってbreak(改列)できないんか
2022/07/03(日) 19:01:06.86ID:Cq6eEVnB
できるよ
2022/07/04(月) 23:41:13.23ID:ACrvegIY
1.1.2が出たけどドキュメントが見つからない
https://github.com/microsoft/WindowsAppSDK/releases

どうなってるんだ?
2022/07/05(火) 10:38:34.61ID:0g/3/w2y
>>238
昔はよく ルーク、ソースを使うのだ!みたいなスターウォーズパロディみたいなことを言われた
2022/07/05(火) 10:40:06.56ID:0g/3/w2y
「ソースを使え,ルーク(Use the Source, Luke)」
2022/07/05(火) 10:49:18.70ID:QDVn5oKy
1.3からが本番
2022/07/05(火) 14:18:58.37ID:+kWyY0YB
winrt apiでwpfからwindows 10の機能が簡単に使えます♪って改めていうことか??

最初からできてなきゃいけねえだろ(笑)
2022/07/05(火) 14:20:05.11ID:+kWyY0YB
>>219
webのwordやexcelは良くできてるだろ
2022/07/05(火) 19:43:28.96ID:oH74dK5o
Web版はビューアー程度にしか使えないだろ
2022/07/05(火) 21:34:24.51ID:WgTDpJoD
web版officeは「webアプリにしては」よくできてると思うが、普段はやっぱりデスクトップアプリの方を使っちゃうよなあ。
2022/07/05(火) 22:36:24.16ID:QDVn5oKy
まぁ、excelとかwebアプリのピンキリのピンのだろ?
webアプリを平均すると安っぽいイメージしかない
2022/07/05(火) 22:41:11.86ID:ZZ3vHKnw
SIerの作るWebがゴミなだけで、使いやすいWebサービスはいくらでもあるよ
2022/07/05(火) 23:08:34.62ID:WgTDpJoD
つまり凡百のSIerが使いやすいWebアプリを開発するのはハードルが高いから
おとなしくデスクトップアプリ作っとけってことだな。
2022/07/06(水) 06:37:01.81ID:RDCX64nD
概ね同意だけどデスクトップアプリは展開に難があるからなあ…
2022/07/06(水) 07:40:20.02ID:YYeQNW8S
そういうのは多少UIを我慢してもWeb化するメリットがある案件だな。
スタンドアロンで十分なものにまでWeb化をごり押しするのは困りもんだが。
2022/07/06(水) 07:57:03.71ID:TEsmn4dq
凡百のSIerにとってスタンドアロンで十分な案件なんてほとんど存在しないからね
2022/07/06(水) 08:05:56.24ID:YYeQNW8S
こんなふうに「ほとんど存在しない」とか決めつけちゃうところがごり押しだよなぁ。
こんなスレに来てWebを布教するのはこんなのばっかり。
2022/07/06(水) 08:13:20.04ID:gczJF8Ta
アイデンティティを自分以外の何かに仮託してる奴ってそうなるね
仮託先を否定されると人格否定と受け取ってムキになる
ゲーハーと変わらない
2022/07/06(水) 08:13:54.80ID:TEsmn4dq
決めつけも何も一般論として実際そうだろ?
俺はデスクトップアプリにするメリットのある案件が存在することは否定していない
それと純粋なスタンドアロン案件が稀であることは矛盾しないよ
2022/07/06(水) 09:13:23.84ID:Cu5CJVOG
確かに今どきはなんだかんだでネットワーク使うからな
スタンドアロンって言葉的には当てはまる案件はなかなかないかもね

デスクトップアプリかWebかなんて要件次第すぎて決着付くはずもない
2022/07/06(水) 21:11:26.96ID:YYeQNW8S
べつに決着つけるような話でもないがな。
どんな統計を基に話してるのかは知らんが、仮にスタンドアロンアプリの開発が少数dとしても
だからといって必要もないのにWebアプリにしようなんてことにはならんしな。
2022/07/06(水) 21:48:00.04ID:mycuJuFy
WEBアプリがどうたらとかスレチの話題はお腹いっぱい
為にもならない同じ内容を繰り返してるだけだし
2022/07/08(金) 20:27:36.34ID:RyJ+2hF2
webはuiの作りがよくわからんのだわ
wpfが好き
2022/07/08(金) 20:36:18.63ID:cRr1rtL8
Webは古典的なサーバーサイドの状態遷移は独特なノウハウが必要でデスクトップな人には馴染みにくかったけど、SPAの時代になって分かりやすくなったよ
ReactなんかのクライアントサイドテンプレートはWPFの複雑怪奇なバインディングよりずっと分かりやすいしな
2022/07/08(金) 21:12:44.35ID:vEJej2ti
WPFを知らない人はWPFを複雑怪奇だと感じ、Hooksを知らない人はHooksを複雑怪奇だと思う。
そういうことじゃないのかね。
2022/07/08(金) 21:58:57.57ID:G/CdBPp1
両方とも全部学ぼうとするとまあ大変だ
WPFもreactも小さい部分だけ使えばさほど難しくない

でもノウハウがないと開発つらい
ググってばかりになる
2022/07/09(土) 08:57:56.95ID:KVtAWM9u
WPFでUIとか苦行過ぎる
WPFでもUI部分はWebview2でCSS使うわ
2022/07/09(土) 10:05:26.35ID:6ug5/LDh
Webの人はいまだにWPFが気になってしょうがないみたいだな。
いいかげんWPF離れして好きにやれよ。
2022/07/09(土) 12:25:46.34ID:/0pJGefZ
WPFも20年前にもっと盛り上がりがあれば良かったのに
2022/07/09(土) 15:26:19.18ID:lwwTn4Ql
今はGUIでマウスなどのイベント処理はビヘイビアつかうのかトリガー使うのかイベントトリガーを使うのかどれが正解なんですか

ぐぐって出てくる情報はどれも交錯していて意味がわかりません
2022/07/09(土) 16:26:40.52ID:6ug5/LDh
どっちが一方が正解ってことはないんじゃないかな。
対象のイベントまで含めた「振る舞い」として再利用したいならビヘイビアとか。
2022/07/09(土) 16:27:12.08ID:C8JWEzRQ
WPFに正解などないから好きなの使って自由に作ればいい
もはやコミュニティが存在しないからね
2022/07/09(土) 16:34:19.61ID:gk+Ey3kQ
>>265
> ぐぐって出てくる情報はどれも交錯していて意味がわかりません
これが一番ガンだと思う
WinFormみたいに一つの方法でしかできないって奴でないと老人には辛いw
2022/07/09(土) 22:28:12.95ID:8pSs/5cx
ビヘイビアと言えば古のLivetに殆どのコントロール用が用意されていたのを思い出してググったら
ビヘイビアやコンバーターが別パッケージに分離されて他のMVVMライブラリーと併用できるようになっていた
意外と使えるかもしれんな
2022/07/10(日) 15:20:46.50ID:tUo11rW5
回答ありがとうございます

リストボックスなどにマウスエンターされたらアイテムを若干大きくしたりしてます
前だったらblendでストーリーボードのきっかけがGUIで作れたんだけど
今はないみたいですね

コードビハインドで実現してますけどMVVMだとどれがおすすめなんでしょうか?
2022/07/10(日) 15:44:57.80ID:naI65OPh
>>270
WinUI3で似たようなことやっているけど、参考にしたMSのサンプルはイベントトリガー使っていたわ
272デフォルトの名無しさん
垢版 |
2022/07/13(水) 23:51:16.12ID:7p8v4H7J
WPFで作られてるソフトって有名なの何がある?
勝手にAutodesk製品はWPFだと思ってるわ
リボンUIだし
2022/07/13(水) 23:56:46.69ID:UzSTT+o3
Visual Studio
274デフォルトの名無しさん
垢版 |
2022/07/14(木) 00:00:39.77ID:0p9MpZ60
>>273
Officeもでしょ?
2022/07/14(木) 00:11:35.00ID:Mhf5ppko
Officeはネイティブ
WPFなんか使ってないよ
276デフォルトの名無しさん
垢版 |
2022/07/14(木) 08:09:43.54ID:qEMIlyQn
>>275
リボンUIどうやって実装してるの?
277デフォルトの名無しさん
垢版 |
2022/07/14(木) 08:17:06.91ID:qEMIlyQn
何のソフトがWPF使ってんだろ?
2022/07/14(木) 09:28:42.12ID:eRmUCHn1
最近使ってないから変わってるかも知らんけどSource TreeはWPFだったな
グラフィックスデバッガのPIXとかMSがWin専のツールとかで稀に使ってる

リボンUIとかMFCにも実装あるでしょ
279デフォルトの名無しさん
垢版 |
2022/07/14(木) 10:01:35.96ID:dxotV0yq
>272-274
UTAU
2022/07/14(木) 12:05:56.86ID:V2MVf7k9
もしかしてWPFよりMFCの方がいいの?
2022/07/14(木) 12:08:39.09ID:lnbsEUJQ
.NETという巨大な環境が不要だからね
2022/07/14(木) 12:13:41.03ID:V2MVf7k9
もしかしてAutodeskもWPFじゃなくてMFC使ってたとか?
2022/07/14(木) 12:23:57.79ID:ONBtwkKY
大昔のEvernoteがWPFだったな。
重いからすぐに作り替えたらしい。
284デフォルトの名無しさん
垢版 |
2022/07/14(木) 12:25:58.78ID:V2MVf7k9
>>283
重いのかよ…
今リボンUIのアプリ作ろうとしてるけどWPFに拘らなくてもいい感じなのか???
2022/07/14(木) 12:26:33.84ID:ydWTibZZ
.NET5以降のWPFは.NET Frameworkの時より軽くなったのかな
2022/07/14(木) 13:23:16.88ID:0XtnMUqR
もうWPFってメンテしてないんじゃないの?
2022/07/14(木) 14:15:31.35ID:jrtNkMJw
してるよ
2022/07/14(木) 18:00:51.77ID:9W27SdtS
mvvmなんか気にせず画面周りだけxamlを使えばいい
2022/07/14(木) 19:22:34.64ID:xVVWLKER
ドッキングウィンドウ実装するためにAvalonDock使おうと思うんだけどこういうオープンソース系って商用利用してもいいのかな?
そういうライセンス的なものに疎い
フルーエントリボンのライブラリも勝手に商用利用していいのかわからん
2022/07/14(木) 19:22:59.11ID:xVVWLKER
こういうライブラリって本気になれば作れるんだろうけどどうやって作るのかすらわからん
2022/07/14(木) 19:55:16.93ID:ZkG98XYT
>>289
MSPLだから一般的には商用利用可能だが、お前が今の案件でそれを利用していいかは別の問題だ
社内に明確なルールがないなら客との契約次第だから法務に相談しろ
また、受託開発においてはライセンスを受ける主体がお前の会社ではなく元請やユーザー企業になる可能性があり、その場合お前の会社の責任で判断できることではない
2022/07/14(木) 19:56:42.82ID:xVVWLKER
>>291
案件ではなく趣味です
2022/07/14(木) 19:59:39.97ID:ZkG98XYT
>>292
だったら問題ない
どうせ完成させて売れるとこまでいく可能性は極めて低いんだから細かいこと気にしないでよろしい
2022/07/14(木) 20:06:38.01ID:xVVWLKER
>>293
サンクス
2022/07/14(木) 20:11:37.16ID:JGI4j5iF
裁判になったら5chで大丈夫と言われたと答えろよ
2022/07/14(木) 21:42:06.30ID:24aif2KW
WPFで作ろうとして実際に重すぎて使わなかった話は昔はたまに聞いた
FBはMVVMも捨てた

MVVMで作ったら状況バグがデバッグできないし困難だから
間違った通知をデバッグして消しても翌日また復活してるって

関係ないけどtwitterのwebのバグがこれ
サイト開くとたまにベルにバッジが一瞬出て消える
ベルを押すとやはり新規の通知がある
2022/07/14(木) 23:16:51.34ID:C041SKom
日本語でおk
2022/07/14(木) 23:40:40.90ID:24aif2KW
mvvmは大型案件には向かない
状態が意図しない場所で常に変わり続けてデバッグが困難
2022/07/15(金) 07:35:30.35ID:S6wl3Ezz
MV*アレルギー発症しちゃってる子がきたのか
お前使いものにならないから要らないってこないだも俺言ったよね?
2022/07/15(金) 09:20:20.86ID:1x1Qrr1X
状態が変わらないということは言われても聞かないということである
有言実行でスバラシイね
2022/07/15(金) 09:38:24.45ID:yDg/Ty3J
MVVMはビューに反映させる必要のあるデータを全てVMの状態として持たなきゃいけないから、
Mの更新があったときにVMの更新前の状態に依存した複雑な更新ロジックを書いてしまいやすいんだよね
その点Reactなんかは、MからVへの単方向バインディングで済むデータについてはVM相当の中間層(コンポーネント)に状態を持たないからプログラマが間違える余地がない
本来MVVMでもVMはMの内容を関数的に反映しているだけになるように作るのが正しいのだが、それをアーキテクチャ的に強制できないんだよ
2022/07/15(金) 12:01:55.52ID:l4dzAa6f
mvvmは無理に使う必要なくて機会が有れば覚えたらいいよ
303デフォルトの名無しさん
垢版 |
2022/07/15(金) 12:55:37.46ID:Oo3I2Lae
>>301
それはVの更新の仕方をカスタマイズするために仕方なくなんじゃないの?
304デフォルトの名無しさん
垢版 |
2022/07/15(金) 12:58:12.62ID:laDvzGYl
nuGetやVisual Studio Marketplaceでこれは汎用的に使えて便利のおすすめのライブラリってあります?
2022/07/15(金) 15:12:39.30ID:OwXqeWIQ
>>303
そういうケースもあるだろうし、単にプログラマの頭が悪いだけの場合もあるだろうね
いずれにせよそれこそがまさにFBの問題意識であって、Reactでは後者のケースは自然に排除されるし、前者のケースもReactが自動的にツリーの差分を取ることで解決した
2022/07/15(金) 15:43:35.60ID:XzYs8QwT
前提条件を揃えないと何を比較しているのかよくわからない話になるよね。

>Mの更新があったときにVMの更新前の状態に依存した複雑な更新ロジックを書いてしまいやすいんだよね

複雑なことは複雑で

>その点Reactなんかは、MからVへの単方向バインディングで済むデータについてはVM相当の中間層(コンポーネント)に状態を持たないからプログラマが間違える余地がない

簡単なものは簡単

としか言っていないようにも見える。
2022/07/15(金) 20:02:09.83ID:6ZoU+QiU
つか
pubulic ReactiveProperty<bool> hoge=>model.hoge;
と書けば、Modelのプロパティーは簡単にVMでリレーできるんだよな
要はやり方次第
308デフォルトの名無しさん
垢版 |
2022/07/15(金) 23:46:29.68ID:laDvzGYl
AvalonDock使ってみたけどライセンスがどうとかでエラー出るな
有志がパクったDirkSter版のAvalonDockならライセンス関係なく使えるって書いてあってそれ試してみたけど
冒頭宣言部xmlns~が上手くいかない
githubと上手く連携取れてないんかな?
https://resanaplaza.com/2022/01/05/%e3%80%90wpf%ef%bc%8b-net-6%e3%80%91-avalondock%e3%81%a7%e3%83%93%e3%83%ab%e3%83%89%e3%82%a8%e3%83%a9%e3%83%bc%e3%82%92%e8%a7%a3%e6%b6%88%e3%81%99%e3%82%8b%e3%81%ab%e3%81%af/
309デフォルトの名無しさん
垢版 |
2022/07/15(金) 23:47:14.45ID:laDvzGYl
こういうめんどくさいことがあるからできれば自分でこういうUIのライブラリ作りたいんだがどうやってやるのかわからん
2022/07/16(土) 09:38:10.18ID:vcXm8HYX
ソースあるんだからパクればええやん
2022/07/16(土) 10:15:46.79ID:0bqu7l7J
>>310
いやそのソースをどうパクればいいのかわからん
どうやってそのソリューションに持ってくるのかというか…
312デフォルトの名無しさん
垢版 |
2022/07/16(土) 10:18:43.48ID:0bqu7l7J
しゃーないから標準のDockPanel使ってそれっぽいの作ってみた
もちろんフローティングとかタブ、幅調整なんてできないが…
https://i.imgur.com/DoNQzbr.jpg
2022/07/16(土) 10:39:01.09ID:0bqu7l7J
ドラッグでサイズ変更可能なコントロールってあったっけ?
それをDockPanelに仕込めればそいつ大きくしたらDockPanelも追随してでかくなりそうなんだが、もちろん縮小も
314デフォルトの名無しさん
垢版 |
2022/07/16(土) 13:29:07.16ID:UnHoIShC
>>313
Window
315デフォルトの名無しさん
垢版 |
2022/07/16(土) 13:30:31.64ID:0bqu7l7J
>>314
Windowの中にWindowは入れられないってさ
一応それ思って試してみたけど無理だった
316デフォルトの名無しさん
垢版 |
2022/07/16(土) 13:47:56.74ID:numirY42
>>313
GridSplitterじゃダメなん?
317デフォルトの名無しさん
垢版 |
2022/07/16(土) 14:36:25.07ID:0bqu7l7J
>>316
試してみる
2022/07/16(土) 16:57:10.06ID:Nb4vyBV3
サイズ変更可能な画面splitはwinformsの方が楽だな
2022/07/16(土) 17:05:22.06ID:f7Zx8/54
つか、どんなアプリ作ってるのか知らんが、今時リボンなの??って感じだが
2022/07/16(土) 17:22:45.81ID:S+0YIOAF
リボンに替わる今時のUIってなんだろう?
うちはずっと旧来のメニューバーのままだけど。
2022/07/16(土) 18:08:54.13ID:MfFIbMfc
横からだけど、リボンってそんなに悪いの?
リボンUIにするってことは多機能なアプリなんだろうから、使いづらいと感じるのは多機能ゆえに習熟に時間がかかるだけじゃないかと
2022/07/16(土) 18:32:39.98ID:Nb4vyBV3
長所
アイコンが大きく出来る場合が多く非熟練者には操作が類推できる場合が多い
非熟練者には機能がタブ分けされていてわかりやすい

短所
リボンは画面に占めるUIの割合が大きくなり作業領域が減る
各アイコンが大きく一覧性に欠ける
またそのためタブ切り替えなどの操作が増え熟練者にはつらい
例:
従来 アイコンAを押す→アイコンBを押す → アイコンAを押す →…
リボン アイコンAを押す → タブの切り替え → アイコンBを押す →タブの切り替え → アイコンAを押す → …

ウインドウのサイズに合わせてレイアウトや各アイコンなどの表示が文字単体に変わり操作感が変わる
2022/07/16(土) 18:34:38.84ID:Nb4vyBV3
タブなどを超えて短時間にガンガン操作する人にはつらい
操作回数がかなり増えてる
嫌がらせ

ゆったりポチポチする人向け
2022/07/16(土) 18:39:02.88ID:rAI3mwaZ
今どきならNavigationViewにCommandBarかな
2022/07/16(土) 18:43:18.14ID:Nb4vyBV3
リボンの利点はまだあった
タブレットなどのタッチ操作向き
プレビュー機能などが表現しやすい
2022/07/16(土) 19:17:19.35ID:0bqu7l7J
GridSpliter使ってみたけどだめだったわ
これは最大範囲の中でどの割合でスプリットするのかを決めるスライダーみたいで
最小範囲をデカくするためのスライダーじゃないみたいだ

リボンUIは個人的に今のOfficeやAutodesk製品ソフトが昔のメニューバーより使いやすいから
もちろんショートカットでゴリゴリって人には必要ないかもしれんけど未習熟者にはかなり扱いやすいUIだと思って使ってる
今のパワポ感覚でAdobeのイラレみたいなソフト使えれば面白いなと思って趣味で開発中
2022/07/16(土) 19:20:00.73ID:0bqu7l7J
navigationviewにcommandbarはほんとに簡易的アプリって感じよな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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