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/
2021/08/28(土) 00:01:20.25ID:t/0aPppO
>>736
サンクスや鳥会えず見てハロワで基礎かしらねば如何もです
738デフォルトの名無しさん
垢版 |
2021/08/28(土) 00:09:05.90ID:5cd2kTad
>>737
最初のはBlazorだからデバック面倒なのでやめといたほうが良いね

ASP.NET CORE MVC の方が良いでしょ
動けば、ローカルリソースを使う部分以外のUI的なのは普通のWebアプリと同じ

一応、Electron.NETは派生なので、元のElectronとは少し違う、似てるけど、
.NETな人が雰囲気つかむ目的なら最適かな
739デフォルトの名無しさん
垢版 |
2021/08/28(土) 00:15:46.06ID:5cd2kTad
記事のリンク先にあった、こっちのが素のElectonだ
https://qiita.com/nqdior/items/091200c9f01e8827fdbd

この場合、ローカルアクセス部分をC#で書きたいなら、
Edge.js という便利なのがある
https://github.com/agracio/edge-js
これは js <-> C# ブリッジだ!

では、貴殿の検討を祈る!
2021/08/28(土) 00:20:01.51ID:U4nd98Cv
>>738
ASPとか素人なのでLinuxのコマンドみたいなのはよくわからない
Windowsの黒い画面にコピればいいのかな?
エラーの嵐これは場違いなようだワ出直してくらぁ
でもあーざーした
2021/08/28(土) 01:37:37.38ID:iKEKAWV9
スレチと自分語りしかいなくなってしまったなw
2021/08/28(土) 02:57:21.18ID:5qToFZIh
>>732
Windows Template Studio、さっそくインストールして試してみました。
いいですね。Navigation Paneのテンプレートもすぐに試せました。

でも、その参考にしたサイトがPrism推しで、
良いチュートリアルがあるみたいなんで
Prismでもいいのかなとまだ少し迷っています。
ああいうサイトがもう少し前にあったらPrismやってたんですけどね。
2021/08/28(土) 06:38:54.70ID:hybb9KOp
信者がキモイからElectronはやめておこうっと…
2021/08/28(土) 11:56:24.12ID:Ft/jS/XE
Prismは複雑怪奇だったんだが、Ver7で破壊的更新をやって前との互換性は失ったけど
機能は整理されて格段に使いやすくなっているんだよな
昔触った人が二度と使いたくないと思う気持ちはわかるし、
互換性を犠牲にしたバージョンアップで他所に移った人もいるだろうが
今のやつは言うほど酷いものじゃない
2021/08/28(土) 20:09:03.92ID:VSJ2s/IQ
prismは途中から路線変更してフレームワーク的なライブラリみたいなのになったところで切った
2021/08/28(土) 21:00:05.63ID:gUcQvnZZ
なんで?
2021/08/28(土) 21:04:04.97ID:/sXnGLY7
Webview2ってClearScriptみたいにJSのFunctionオブジェクトをデリゲートに変換できないのかな?
UIだけReact、それ以外の層を.NETで実装してて詰まった
素直にmessage使うしかない?
2021/08/28(土) 21:57:39.12ID:5oeB/yz3
>>745
切らないでも便利なライブラリだけ使えばよくね?
2021/08/28(土) 22:09:34.58ID:2IM7P+Sb
>>720
BlendはXAMLの拡張だしMicrosoft.Toolkit.Mvvmと比べるようなものではないだろ
XAML=MVVMだと思っているのか
2021/08/28(土) 22:34:13.14ID:5cd2kTad
>>747
素直にElection.NETじゃね?
2021/08/29(日) 08:10:20.00ID:Fm6ljTvP
>>748
だからPrismみたいに図体の大きい融通の利かないのじゃなくて
他の便利なライブラリに移ったんだろ
752デフォルトの名無しさん
垢版 |
2021/08/29(日) 12:47:48.75ID:HULgazpW
>>751
DLLのサイズ確認したけど
Prism.dll : 90KB
Microsoft.Toolkit.Mvvm.dll :73KB
大してサイズ変わらないと思う
Prism.Coreだけnugetしたら特別図体が大きいわけじゃないね
2021/08/29(日) 12:55:35.31ID:V85oGWwE
本質のわからないの登場!
2021/08/29(日) 14:40:31.76ID:iwrRkutN
もう頑張らなくていいのよ。
Prismはオワコンだもの。
2021/08/29(日) 15:02:04.81ID:4bz4iTJn
prism使ってるけどwindow開いていってるわ・・・
2021/08/29(日) 15:25:31.85ID:jvopQfa6
本質というか、周回遅れすぎる感じ
すでに表彰式終って解散してるのに、これからマラソン始める人いるよ
2021/08/29(日) 15:28:39.38ID:ik0U7t7o
WPFの周辺技術にオワコンでないものなんて存在しないんだから好きなの使えばいいよ
2021/08/29(日) 15:35:30.15ID:LTWMhyi3
WPFとUWPオワコンなの気づかずにまた2つを合体させようと頑張ってるMSってなんか哀れだよね
759デフォルトの名無しさん
垢版 |
2021/08/29(日) 16:12:15.50ID:dtCWmxdj
でWinUI3は使い物になるのかねエロい人
2021/08/29(日) 19:14:54.89ID:9Pk8AgqG
WPFとかUWPとか関係ない
Windowsがオワコンなだけ
WPF、UWPに変わる優れたシングル環境のフレームワーク出てきてもwindowsアプリ増えないから

flutterなどのクロスプラットフォームに寄生して、ついでにWindows向けをビルドしてもらうしかない
2021/08/29(日) 19:20:15.34ID:9Pk8AgqG
まぁ、win11でandroidアプリの実行環境が用意されるから、もうこうやってアプリ増やすしかない
LOBとかならまだしも一般向けのアプリのwindows専用に作る人なんてわずかだろ
2021/08/29(日) 21:53:04.96ID:pAl4bTqC
そもそもソフトウェア自身が儲けにくくなってきてる気がするよ。
検索エンジンで儲けた金で大量のプログラマに作らせたソフトを無料で配布される
ようになってしまったり、MS Officeみたいに独占禁止法違反してそれ以外のものが
入っていく余地がほとんど無くなったり。作っても作っても、MS Wordなどに
真似されて実装されるから自分が作ったものがまともに売れることは無い。
763デフォルトの名無しさん
垢版 |
2021/08/29(日) 22:37:23.02ID:Gp+if449
Wordの新機能なんて興味ないから全く知らないんだが
なんかひどいことしてんの?
764デフォルトの名無しさん
垢版 |
2021/08/29(日) 22:42:34.76ID:Tc6fsQ2f
今時Windowsのソフト開発なんてほとんどがB2Bでしょう
2021/08/29(日) 23:17:01.60ID:V85oGWwE
業務システムはほぼWebになったよ
2021/08/30(月) 00:08:17.14ID:SBazV8cv
C#でWeb系やるとしたらASP.NETしか無いですか?
C#とJavaScriptとの組み合わせも可能ですか?
それをやるんだったらNode.jsとの組み合わせの方が楽ですか?
767デフォルトの名無しさん
垢版 |
2021/08/30(月) 01:57:25.98ID:N02FEXFE
>>765
そういう会社もあるかもしれんけど、たとえば奉行なんか使っている大多数の企業はなってない
2021/08/30(月) 02:20:34.86ID:IRMGlM4T
>>767
大手、中堅どころの企業なら
システム開発はほとんどWebだよ

業界の人なら営業が持ってる案件表見てみるがいい
もしクライアントアプリがそこに有るとすれば
スマホ位しかない

大体運用やメンテナンスし辛いクライアントアプリとか
情室が嫌がる
2021/08/30(月) 02:24:16.67ID:IRMGlM4T
業務系のエンジニアなら
10年以上前からその流れになってたから
殆どのエンジニアはWebに流れたよ
仕事先細りして食ってけないから
2021/08/30(月) 06:08:05.56ID:ptT0Gy37
C#はクロスプラットゲーム向けと、
内部GUI/CUIツール向きかな。
2021/08/30(月) 06:20:07.92ID:GR8G5Ywb
デスクトップアプリからWebに移ってまたデスクトップに回帰する流れもあるところはあるけどな
772デフォルトの名無しさん
垢版 |
2021/08/30(月) 06:40:21.81ID:xlSOQRHN
WebやるならVueがWPFに似てるから良さそうだな
773デフォルトの名無しさん
垢版 |
2021/08/30(月) 09:03:38.02ID:IRMGlM4T
業務系の開発現場にいたらわかるけど、
(自分は独立してて、あちこちの開発現場に出入りしてた)
10年以上前から Web開発者 > クライアントアプリ開発者 になってた
今じゃ、クライアントアプリの開発なんて保守しかないし
会議にも呼ばれなくなって立ち位置がどんどん低くなってんだよ
(俺も専門は元々クライアント側だったけど、web系に完全シフトした
WPFもXamarinももう依頼されても仕事受けない)

それでも、サーバーサイドはまだC#は残ってる
ASP.NETの新規開発はまだあるし
ただWeb開発担当者の口癖は、
3年位前は次はAngularで、
2年位前は次はVue.jsで、
1年位前から絶対React!!になってる 笑
世界的に見ても、React一強の情勢になってしまったからね

あと、クライアントアプリの新規開発はFlutter激増してる
これはデスクトップからスマホにWebアプリまで作れる
しかも新機能のリリースがめちゃくちゃ早い
笑うぐらいに死角が無いし、開発者ならすぐ仕事みつかる
2021/08/30(月) 09:42:39.49ID:txgJXV1k
ReactかSvelteかな
MVVMの本来の目的を意識低く実現していて、ああ、MVVMで色々変なクラス捏ねくり回してやろうとしてたのは結局こんなくだらないことだったんだなあと
Vueは所詮MVVMなのでアーキテクチャ的にはあまり学びはないかな
775デフォルトの名無しさん
垢版 |
2021/08/30(月) 10:11:13.12ID:IRMGlM4T
>>774
“MVVMで色々変なクラス捏ねくり回してやろうとしてたのは”
過剰なまでの疎結合だよ
意味的にもMVVMとはちと違う指向
776デフォルトの名無しさん
垢版 |
2021/08/30(月) 10:15:37.52ID:IRMGlM4T
そういえば、1年位まえに期間限定で(3カ月〜半年?)b
blazorは良く話題に出たね
もう半年以上前から全く聞かなくなったけど、
流行が早い早い
2021/08/30(月) 10:43:57.17ID:VJCtgJu8
Web系はガキのお遊び感があるからな。
オモチャを取っ換え引っ換えして非生産的なことしてんなーって。
業種によってはC/C++もここ数十年見たことも聞いたことない、とっくに滅んだっしょっ、て認識のところもあるしなー。
2021/08/30(月) 10:45:00.65ID:ptT0Gy37
flutterも数年かなという印象やな。

ぼっと作ってはWebエンジニアが飛びついて、
2、3年で古くしていくってもうアホなのカスなのって感じ。
あんなのと無縁で幸せだわ。
779デフォルトの名無しさん
垢版 |
2021/08/30(月) 14:12:46.83ID:a7szkEqk
ほんそれ
2021/08/30(月) 15:19:24.77ID:q7ZGBIFp
Googleだけでも、少なくとも Go, Kotlin, Dart の3つの言語作ってしまったし。
GoogleDriveやOneDriveなどの多数のOnlineStorageをまとめて制御できるライブラリ
がGoogle自らGoで書いているが、Flutterでそれを使いたくても橋渡しが
難しいだろうし、全部推進という訳には行くまい。
2021/08/30(月) 15:21:53.98ID:q7ZGBIFp
どれか一つの言語だけに集中させないことにはどうにもならないということ。
2021/08/30(月) 15:23:45.62ID:q7ZGBIFp
Cはまだ、どの言語からも呼び出せる方法が存在していることが多いし、また、
Wasm化しても小さいしまだいい。
Goで書かれたライブラリはWasm化したらサイズも大きいし、多言語から
の呼び出し方も自明では無いし困る。
2021/08/30(月) 20:52:43.38ID:0LjWH8LC
>>773
購買や経費管理といった、昔ならクラサバでやっていたような「業務システム」は10年どころか
20年くらい前からWeb化されていたけど、業務で使うソフトウェアってそればかりじゃないわけで。
そのへんは業種業態によって変わるだろう。うちはメーカーだけど内製のツールはまだまだ
スタンドアロンが多いな。つか、そういうのはわざわざWeb化するメリットも少なかったり。
784デフォルトの名無しさん
垢版 |
2021/08/30(月) 21:22:51.90ID:N02FEXFE
>>768
うちはパッケージ屋が本業だからうちのパッケージしか案件表にないんだ
すまんなw
けど大手企業とかもいまだにパッケージ頼りのところ結構あるぜ
比率は知らんけど
785デフォルトの名無しさん
垢版 |
2021/08/30(月) 22:23:36.00ID:IRMGlM4T
確かに、パッケージ屋は個別業務開発とは趣きが違うから想像はできるけど、
クラウド化は推進してないの?
ちょっと前に出入りしたパッケージ屋さんだと、昔はオンプレで運用してたらしいけど、
今はデフォがクラウドでマルチテナントで運用してたねー−
オンプレとかデスクトップクライアントとかは個別対応になる感じだったかな
786デフォルトの名無しさん
垢版 |
2021/08/31(火) 00:30:57.16ID:FDZ2966r
クラウド化が何を指してるのか分からんが
AzureもAWSも使ってバーチャルデスクトップ運用してるところが多いよ
今後はAzure Virtual DesktopだかでiPadとかChromeBookがクライアントの案件増えるっぽい
2021/08/31(火) 01:12:13.43ID:CVnDLQG8
使いにくそう
2021/08/31(火) 12:18:58.46ID:T79gwdP9
>>780
Kotlinはgoogleじゃないような
789デフォルトの名無しさん
垢版 |
2021/08/31(火) 12:36:05.84ID:OM0KfKDz
Formsなのですが、FileStreamで一つのファイルの更新って難しいですか?

今、壁になっていることは

ファイルを読み込む

読み込んだファイルがロック状態になる

書き込もうとしても書き込めない

読み込むファイルと書き込むファイルが違えば可能なのですが、
これってよくあるテンポラリーファイルなどを複製して対応するしかないのでしょうか
2021/08/31(火) 12:43:21.40ID:obbXOwAL
>>789
streamはそういう仕様。
791デフォルトの名無しさん
垢版 |
2021/08/31(火) 12:49:11.17ID:OM0KfKDz
>>790
ありがとうございます!
一時ファイルを複製して対応します
2021/08/31(火) 12:51:16.63ID:8qO1h2Cp
試してないけど読み込み側FileStreamのコンストラクタでFileShare指定すればいいんじゃないの
793デフォルトの名無しさん
垢版 |
2021/08/31(火) 13:05:05.10ID:OM0KfKDz
>>792
ありがとうございます
何かできそうな気がします!
2021/08/31(火) 17:02:54.56ID:0Y8XnIWp
StreamReader/Writerのコンストラクタに渡せん?(あんま覚えてない
2021/08/31(火) 18:21:02.48ID:b4XuI4dD
つうか、
1.元ファイルを読みながらテンポラリファイルに書き込む
2.元ファイルを削除
3,テンポラリファイルを元ファイルの名前にリネーム

この手順が定番だが、これをやらないと書き込みエラーでファイルを失うよ
2021/08/31(火) 20:42:24.00ID:S8r07VdU
読み込むファイル自体に、書き込む香具師は、頭おかしい。
エンジニアじゃない

安全配慮義務違反
2021/08/31(火) 21:01:42.89ID:jRAzxqNw
不正アクセス禁止法で逮捕されるぞ
2021/08/31(火) 22:46:50.56ID:521GQ/2f
追記されていくだけのログとかならFileShare.Readつけても大丈夫だけどな
2021/09/01(水) 01:06:46.56ID:bQ9HbNuf
どれもこれも全部サクラエディタって奴が悪いんだ
2021/09/01(水) 04:15:02.36ID:4UYQNKo4
>>795
元ファイル削除しないで新規ファイルをリネームで上書きできない?
2021/09/01(水) 05:21:00.61ID:Vv+SLpMR
WPF関係ある?
2021/09/02(木) 07:06:57.92ID:t5Xnv5c8
Windows App SDK 0.8.3
2021/09/08(水) 11:42:39.52ID:txwdym3f
MAUIもxamlなの?
2021/09/08(水) 11:55:27.04ID:YKU1gQn9
>>803
Xamarin.Formsの発展形がMAUIなんだし、xamlが基本になるんじゃね?
2021/09/08(水) 13:52:14.51ID:txwdym3f
>>804
ふーん
C#はもう諦めるわ
2021/09/08(水) 15:47:04.39ID:AltSwm2n
>>805
イミフ
2021/09/08(水) 16:46:08.35ID:ZH44DFyL
>>805
雑魚ww
2021/09/08(水) 21:07:13.93ID:4MNBog85
>>805
意味わかってなさそう
2021/09/08(水) 22:37:10.46ID:2xQeb5pF
XAMLもIntellisenseで自動で埋めてくれんかな
ItemsSource{Binding = Data}
とか書いた時点でDataがどんな型か読み取って適当に表示してくれればいいのに
例えばList<int>だったら自動で要素まで分解して表示するとかさ
例えばList<List<int>>だったら自動で2×2で要素まで分解して表示するとかさ
ComboBoxやListBoxだって適当に良きに計らえよ

いちいち打つ側が指定してやらんのが面倒くさい
2021/09/08(水) 23:02:45.97ID:cN4s0i9P
d:DataContext="{d:DesignInstance ...

で行けたような。
811デフォルトの名無しさん
垢版 |
2021/09/09(木) 04:15:16.01ID:J/vtDPz0
VS2022でマウスポインタを上に載せたら型が表示されたけど
2021/09/09(木) 08:56:30.61ID:QA/522jQ
>>809
スニペットddc使えよ
ちゃんと補完するぞ
2021/09/09(木) 09:26:45.67ID:1R8XfWJw
>>809
UWPとWinUIのx:Bindはインテリセンス効くよ
2021/09/09(木) 13:08:42.17ID:2xcgEBdF
終わったプラットフォームと始まる前のプラットフォームの話してるやつなんなの?
2021/09/09(木) 13:19:26.52ID:We0c3TJB
MSのUIプラットフォームは始まる前に終わるので
816デフォルトの名無しさん
垢版 |
2021/09/09(木) 14:43:39.58ID:W15P/1XI
署名なしの野良配布で開発モードONはなしで、
mauiは普通に野良配布できるの?
2021/09/09(木) 16:01:43.06ID:o5mbqb9U
名前を変えただけの悪名高きxamarinに何を期待してるんだか
2021/09/09(木) 16:10:33.92ID:mXrNvNu+
Xamarinと違って一からMSが開発するから期待してる
2021/09/09(木) 20:46:17.54ID:lJRSMQ7p
何でもいいから一つにまとめろや
2021/09/09(木) 21:10:08.64ID:q0TKbS94
>>814
じゃあ終わってないプラットフォームの話して。
2021/09/09(木) 22:20:16.73ID:wRnzaYRw
このスレで扱うのが適切な、始まっててかつ終わってないプラットフォームって実は存在しないのでは?
822デフォルトの名無しさん
垢版 |
2021/09/09(木) 22:43:15.68ID:d4+NBsbj
MSのコードプラットフォームの主力がVSCodeに移ってもう長いし、
そもそもMSがオープンソースに舵切ってから相当たってるのに、
MSからまともなライブラリのが出てくる見込みはねえぞ。
823809
垢版 |
2021/09/09(木) 23:45:47.17ID:RORfDysf
>>810-813
♪あ〜〜〜〜〜〜り〜がと〜〜〜〜う
♪あ〜〜〜〜〜〜り〜がと〜〜〜〜う

XAMLでIntellisenseできました
スニペットでddcも行けました
UWPとWinUIはまた今度で
824デフォルトの名無しさん
垢版 |
2021/09/10(金) 01:39:42.95ID:7ibsVcuq
このスレ見てる時点でWindowsに絞ってる人間なんだから先にあるのはMAUIじゃなくてWinUI 3だよね
2021/09/10(金) 03:37:48.26ID:QQ5PLj0w
>>821
うん、存在しないね
2021/09/10(金) 06:02:04.48ID:Lruqlpqj
>>821
WPF。
UWPは始まりもしないまま終わったけどな。
2021/09/10(金) 11:27:22.51ID:RmQ4ECJ8
MAUIとWinUIって開発工程においてはどれくらい違うの?
2021/09/10(金) 11:37:57.48ID:mLV+UlPw
XAMLの
<ListBox ItemsSource="{Binding MyItems, ElementName=MyWindow}"/>
をコードビハインドで書くとどうなりますか?

this.listBox.ItemsSource = MyItems;
のようになるのは分かっても、ElementNameの指定方法が分かりません。
2021/09/10(金) 11:59:06.77ID:L+jftwLU
>>828
なんかおもいっきり違うな...
2021/09/10(金) 12:13:47.11ID:Lruqlpqj
>>828

<StackPanel>
<ListBox x:Name="list1" Height="100"/>
<Button Content="押しやがれ" Click="Button_Click"/>
</StackPanel>

private void Button_Click(object sender, RoutedEventArgs e)
{
list1.Items.Add("aaa");
}
2021/09/10(金) 12:55:58.47ID:Q+a9aIEQ
DirectXのDLLを参照してソフトを開発しているのですが、
開発環境ではちゃんと動作するものの別のPCだと参照エラーになる
調べてみると普通のPC(Windows10)にはDLLがインストールされていなくてこうなっているみたい

DLLを実行ファイルと同じ階層に置いてそれを参照するように設定すると
どの環境でも動くのですが、実行ファイルごとMSが作ったDLLを勝手に
配布したりするとダメらしい

たった2つのDLLのために2つも大きなランタイムファイルを
インストールしてもらうのも億劫なので、どうするべきか(T_T)
2021/09/10(金) 14:53:58.46ID:hSrIzeXT
>>829
全然違いました。

>>830
訂正、ありがとうございました。
それを使います。
833デフォルトの名無しさん
垢版 |
2021/09/10(金) 15:03:18.84ID:7ibsVcuq
どうするかは利用者が決めることだろ
2021/09/10(金) 15:37:55.55ID:I2sJLr90
>>831
DirectXのバージョンは?
2021/09/10(金) 16:08:35.11ID:G+HVY4K2
>MicrosoftのWin UI 3はUWPを捨ててWin32に集中

MSもようやく学習したかな?
2021/09/10(金) 16:21:51.87ID:cwpfUPcV
>>835


まじでアホなのか、
コード書けないマネージャークラスが
非IT的な裁定を下してるかだな

それにもうMSもオープンソースに任せてんだろ
オープンソースはガチで良いものしか
上がって来れないからね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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