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

レス数が900を超えています。1000を超えると表示できなくなるよ。
2022/10/29(土) 11:34:34.12ID:OGteGRtm
WPF(Windows Presentation Foundation)について語るスレ。

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

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

コードを貼る場合は以下のサイトの利用をお勧め。
https://ideone.com/
811デフォルトの名無しさん
垢版 |
2023/01/15(日) 02:56:42.79ID:CnKOeOE3
>>809
CommunityToolKitにはあるからそれ使ってる
812デフォルトの名無しさん
垢版 |
2023/01/15(日) 08:46:46.24ID:xA8RWlPa
>>810
まぁ、50歳過ぎでWPF始めた新参者ですから!。
データテンプレートは聞いたことはあるが知りません。
始めて二か月目だし。

コントロールの配置とかモニタ解像度(dpi)、マルチスレッドの
勉強にはなったな。
813デフォルトの名無しさん
垢版 |
2023/01/15(日) 08:50:48.04ID:xA8RWlPa
>>808
そうなんだ。

新規行追加したときにそのままフォーカス
もっててマウス操作しなくても入力できるの?
814デフォルトの名無しさん
垢版 |
2023/01/15(日) 10:13:17.25ID:CnKOeOE3
>>812
がんばれ!
2023/01/15(日) 11:16:15.80ID:kNedhIGT
>>812
仲間だ!
インチキでもなんでもできるだけすごいよ。
2023/01/15(日) 12:50:06.43ID:pBiKKGen
好きなようにしたらいいよ
MVVMだと普通にダイアログすら出せないからな

どうやってダイアログを出すべきか10年ぐらい揉めててこいつら馬鹿なんじゃないかと思ってた
それ以前にWPF自体に各種ダイアログがなくてwinformsのものを使ってた
2023/01/15(日) 15:11:49.98ID:I8mw9xxt
WinUI3でメディアトランスポートコントロールをカスタマイズしようと
Win10SDKからgeneral.xaml引っ張り出してコピーすると
何故か形状が昔のデザインに先祖返りする
サッパリ分からんわ
818デフォルトの名無しさん
垢版 |
2023/01/15(日) 16:01:31.95ID:cKux9meR
>>816
笑いのプロフェッショナルなのでは
2023/01/15(日) 16:24:10.91ID:nTjQWEPz
MVVMなんてやらないほうがいいぞ
開発効率下がるだけでメリットはほぼ無いし
2023/01/15(日) 16:24:55.81ID:2daho8Vx
MVVMでViewModelからダイアログ出すのはDIを使うんだぞ
好きにしたらMVVMを使う意味がなくなるだろ
そのDIに複数の種類があってどれを使うかは派閥があったが今はサービスでほぼ決まりだ
場合によってはメッセンジャーが便利なこともある
2023/01/15(日) 16:26:59.58ID:2daho8Vx
>>819
テストしないやつはそういうこと言うんだよw
お前は本当に効率の良い開発をまだ知らんから自分の稚拙な技術で判断してるだけだ
幼稚園児が「箸よりスプーンの方が食べやすい」とボロボロこぼしながら食うようなもんだな
822デフォルトの名無しさん
垢版 |
2023/01/15(日) 16:35:29.91ID:xA8RWlPa
>>819
それはよく聞く。
かなりの大規模システムなら有効らしいけどな。
2023/01/15(日) 17:05:39.05ID:pBiKKGen
WPFが長年ダイアログを用意しなかったのは何か深い意味があるのか?
2023/01/15(日) 17:06:41.17ID:pBiKKGen
>>820
それって10年以上揉める必要はあったのか?
2023/01/15(日) 17:09:16.28ID:pBiKKGen
>>822
定説としてMVVMは大規模開発には向かない

中規模か小規模の開発向き
個人開発レベルでは不要

フェイスブックなどがmvvm投げたのは大規模開発に向かないからだと
ある日勝手に通知が立つバグがでて全部コード追って修正しても次の日にはまた間違って通知が出るって
これは状態がおえないし担保出来ないから無理ってことでmvvm捨てた
2023/01/15(日) 17:14:43.62ID:9TmZgkVb
>>821
お前はカレーを箸で食べるのかよ
WPFはMVVMであるべきって思い込んでるだけ
2023/01/15(日) 17:19:33.28ID:R4vpna1L
このスレはほんと脳みそが20世紀で止まってるwinformsおじさんだらけだな
隙あらばMVVMいらないなんでもコードビハインドでいいとか言いだす救いようの無い馬鹿
新しいことが覚えられず時代についていけないだけの無能
一生winforms触ってろw
828デフォルトの名無しさん
垢版 |
2023/01/15(日) 17:24:07.21ID:xA8RWlPa
インチキデータグリッドはこんな感じ。
https://i.imgur.com/dDsAiTo.jpg

ゴミコードって言われたけど、
・行追加ボタンでマウス操作なしで必須カラムに入力フォーカス持たせてマウス操作
 なしで即時入力可。
(普通、編集開始する際はマウスクリックが必要なんだよな。面倒なんでマウス操作なしで
 よろしく、って大抵言われる)

・カラム毎のIME制御。
・個数を変えた時点でリアルタイムで合計金額を可変。(keydown,keypressイベント)
・ラジオボタンも使用可。 (普通はコンボボックスで事足りるが)
・数字 3桁毎に , を自動的に入れる。(keydown,keypressイベント)
・コンボボックスの値によって色可変。
・例えば3桁目に - が入っていない場合は自動的に補完または警告出す。

なんて事が出来るようになってます。

正当な作りで使い勝手が悪いとか、お客の要望が実装できないより、
ゴミコードでも要望通りで使いやすい方が選ばれるのは自明ですよ。
2023/01/15(日) 17:24:30.16ID:pBiKKGen
>>827
MVVM自体が遅れてるとフェイスブックなどが言ってるんだけどwwwwww

mvvmはピタゴラスイッチみたいなもの
予測できない副作用が起こってもそれが分かりづらい
間でてこが動きすぎて関係ないスイッチを押しちゃって気が付かない

ロジックが小さい間は全てを追い切れる
それがどんどん規模が大きくなるとコードが追いきれない

手続きを書くほうは問題の箇所をいじってる場所が大体集約されてるからデバッグしやすい
通知をいじってるのはここでここへ作用してる場所はと追いやすい
830デフォルトの名無しさん
垢版 |
2023/01/15(日) 17:28:23.37ID:xA8RWlPa
>>827
言ってることは納得できない所があるけど
アンタはMVVM活用してんだ。
それはすごいと思う。
尊敬に値するわ。
2023/01/15(日) 17:30:34.23ID:pBiKKGen
どこかの誰ががピタゴラスイッチの間のコードを書き換えたら急に次の日から動かなくなりました
そのどこかの誰かが書いたコードは問題なくテストを通ります
でも副作用が連鎖して全体の状態が変わってしまいます
それがとても追いづらいんです

これでMVVM使う理由って何?
2023/01/15(日) 17:36:41.86ID:pBiKKGen
ちなみにwinformsが出たのも21世紀です
2023/01/15(日) 17:44:46.51ID:I8mw9xxt
mっvmは疎結合だから、ちゃんと設計すればピタゴラスイッチになりにくいはずなんだけどな
偶々そのプロジェクトの設計に欠陥があったんじゃね?
2023/01/15(日) 17:45:45.82ID:pBiKKGen
フェイスブックに言ってやれw
2023/01/15(日) 17:46:44.44ID:cAxzhPBU
開発環境がMVVMに追いついてないんだよな
分離しすぎてるから注入経路を推測して追跡ぐらいしてくれないと人間が把握できない
2023/01/15(日) 17:50:16.62ID:pBiKKGen
フェイスブックは当初はWPFを絶賛してクライアントアプリ作ってたけど確か完成前にWPFを投げ捨てたはず
確かc++でクライアントは開発された
WPFは非常に生産性が悪いんだってさ
837デフォルトの名無しさん
垢版 |
2023/01/15(日) 17:57:05.77ID:xA8RWlPa
>>836
フェイスブックってwebアプリのみじゃないの?。
デスクトップ用のフェイスブッククライアントなんてあるんか。

MFC使いだけどWPFの方がまだマシ。
C言語は色変えるだけども一苦労。
プロパティで色々簡単に変えられるのはイイ!
2023/01/15(日) 17:57:52.01ID:azr6O1Cn
MVVMのメリットってなんなんやろ
すべての機能でテストコードなんて書かないし、複雑で修正がよく入りそうなとこだけ疎結合にしとくのが効率いいよ
2023/01/15(日) 17:59:41.07ID:pBiKKGen
フェイスブックは確かc+++MFCでクライアント開発しなおしてリリースしたはず
2023/01/15(日) 18:02:46.63ID:uT3GlkL2
マウイ君はほんと頭悪いな
2023/01/15(日) 18:05:20.65ID:pBiKKGen
ファイスブックがWPF捨てたあたりから完全に潮目が変わった
当初は著名人もWPFに興味津々で本書いて出してたけどそいつらみんなwebの方に行ってしまった
2023/01/15(日) 18:08:19.79ID:I8mw9xxt
>>839
MVVMが問題なら。WPF使ったって問題ない
CLRのパフォーマンスの問題と考えるのが普通だな
2023/01/15(日) 18:08:49.17ID:y+EPo4wc
>>838
一番のポイントは依存性がV→VMの一方向に限定されていること。
それによってVM-Mだけでロジックのテストを完結できる。
2023/01/15(日) 18:10:26.97ID:R4vpna1L
>>830
脳死でいつまでも昔のやり方に固執してる奴はマジで終わってるしチームにいたら普通に迷惑って話
最初から最後まで一人で作って後任もいないか趣味なら好きにしろ

>正当な作りで使い勝手が悪いとか、お客の要望が実装できないより、
>ゴミコードでも要望通りで使いやすい方が選ばれるのは自明
正当な作りで使い勝手が悪くなるのはそいつがただ無知なだけであって
古いやり方のほうが優れてるみたいな年寄り特有の独りよがりは恥ずいからやめとけ
素直に勉強しろ
2023/01/15(日) 18:12:48.53ID:0/uPn3/5
素人にもメンテ出来る作りにしてくれたらどうでもいいよ
開発者のオナニーで複雑に作られたらメンテする人が可哀相
2023/01/15(日) 18:15:03.08ID:pBiKKGen
WPF+mvvmって全然流行ってないよね?
そんなに優れてるならなんで採用例がほぼないの?
2023/01/15(日) 18:18:38.80ID:pBiKKGen
WPFが正式リリースされる前から注目度は高かった
自分はムック買って付属のCDのWPFプレビュー版をインストールして使ってた
付属ソフトで3D表示をいじったりしてた

でも実際リリースされたらXAMLの書式ががらっと変わってて使えなくなってた
2023/01/15(日) 18:23:03.51ID:THKmoAep
速度は.NET6や7でかなり速くなったらしいけどどうなの?
2023/01/15(日) 18:26:18.24ID:pBiKKGen
WPFと言えば3D風カルテかなあ
あれって実際動かした覚えがないなあ
850デフォルトの名無しさん
垢版 |
2023/01/15(日) 18:29:05.84ID:xA8RWlPa
>>848
.NET6などは知らんけどやたら早い。

WPF + DataGrid 職員データ7000件の表示で1.2Sec位。
WinFoms + DataGridView で3-4Sec。
段違い。
851デフォルトの名無しさん
垢版 |
2023/01/15(日) 18:29:57.04ID:CnKOeOE3
>>833
これ
852デフォルトの名無しさん
垢版 |
2023/01/15(日) 18:30:42.51ID:CnKOeOE3
MVVMでピタゴラスイッチになるか???
2023/01/15(日) 18:36:34.62ID:I8mw9xxt
初期のWpfでMVVMやると結構辛いところもあったが
ReactivePropertyでmのプロパティーを簡単にVMでリレーできるようになって
イージーモードになったよな
2023/01/15(日) 18:37:19.59ID:IdI6Yaqd
個人でMVVMやる理由がない
仕事でもMVVMやるほど分業してるところなんて少ない
855デフォルトの名無しさん
垢版 |
2023/01/15(日) 18:43:15.65ID:xA8RWlPa
MVVMが良いとか悪いとか喧々諤々してる時点で失敗作。
2023/01/15(日) 18:52:49.51ID:pBiKKGen
WPFに出会ってから18年ぐらいたってるけどいまだにこんな感じ
2023/01/15(日) 18:59:03.25ID:pBiKKGen
思い出したけど3D風カルテは確かデフォの状態でコード動かしても起動時にエラー吐いて死ぬんだったなあ

おまかんなのかもしれないが
2023/01/15(日) 19:04:57.75ID:IdI6Yaqd
MVVMが手段ではなく目的になってる奴が多いからな
MVVMやってることに優越感を覚えてるだけ
これ言うとキレて反論してくる奴いるけどw
2023/01/15(日) 19:18:00.08ID:ssAeiLbk
>>858
ここの住人はほぼそうですが何か?
860デフォルトの名無しさん
垢版 |
2023/01/15(日) 19:18:56.66ID:CnKOeOE3
MVVM楽だけどな
x:Nameわざわざつけんでいいし
2023/01/15(日) 19:19:17.24ID:FZ6iEp1r
まーた始まったよMVVM初心者の馴れ合い
2023/01/15(日) 19:19:33.21ID:pBiKKGen
ボタンクリックでコードビハインドでダイアログ出して結果をVMに送っても何も問題ない
2023/01/15(日) 19:29:07.15ID:0/uPn3/5
>>861
初心者を蔑ろにした結果が今なんだが
2023/01/15(日) 19:47:53.03ID:y+EPo4wc
>>854>>858
この10年の間、このスレにやってきてWPFに文句つける人の主張をきれいに濃縮したようなレス
2023/01/15(日) 19:51:26.41ID:IdI6Yaqd
なに意味不明なこと言ってんだ
MVVMの話をしてるんであってWPFの批判なんぞ一言もしとらんぞ
2023/01/15(日) 21:15:02.27ID:iltDDRsm
MVVMにまでする必要はないけどBinding使うとすっきりするよね
コントロールのイベント拾ってハンドラ書いてとかあんまり楽しい作業じゃないしな
867デフォルトの名無しさん
垢版 |
2023/01/15(日) 21:21:21.69ID:CnKOeOE3
MVVMToolkit神だわ
とりあえずVMのプロパティに[ObservableProperty]
コマンドに[RelayCommand]って書くだけで簡単にバインディングしやすいもの作ってくれる
2023/01/15(日) 21:37:15.33ID:3VNVbvO3
毎度のことながら、MAUI君がMVVMわからんだけでしょ
2023/01/15(日) 22:03:49.49ID:pBiKKGen
どこにMAUI君がいるんだ?
2023/01/15(日) 22:10:14.58ID:pBiKKGen
MVVMのボイラープレートの克服までほぼ18年
長かったな
871デフォルトの名無しさん
垢版 |
2023/01/16(月) 01:05:57.79ID:Iz2auSAp
>>870
ソースジェネレーター様々やね
2023/01/16(月) 01:31:56.05ID:jbRKb4Hw
いや、こんなおもちゃレベル役にたたねぇわ
ReactivePropertyに戻ったわ
873デフォルトの名無しさん
垢版 |
2023/01/16(月) 01:41:18.22ID:Iz2auSAp
>>872
まぁリアクティブプロパティのほうが便利ではあるかな
2023/01/16(月) 02:08:51.53ID:/GlbjUVw
ところで、WPFはMVVM使って無いんだっけ?
2023/01/16(月) 02:40:34.45ID:oqRccVVg
WPF自体はMVVMを前提にした設計じゃないし
2023/01/16(月) 05:35:38.45ID:ln473g1j
https://resanaplaza.com/%E4%B8%96%E7%95%8C%E3%81%A7%E4%B8%80%E7%95%AA%E7%9F%AD%E3%81%84%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%81%A7%E8%A6%9A%E3%81%88%E3%82%8Bmvvm%E5%85%A5%E9%96%80/
2023/01/16(月) 05:47:45.42ID:ouvn8Qe6
>>876
グロ
2023/01/16(月) 05:49:34.85ID:/hQdjI/Z
都合が悪いらしいw
2023/01/16(月) 06:20:44.96ID:XnQwhXwg
いつまでも昔のやり方(MVVM)に固執してる奴は本当に終わってる
2023/01/16(月) 06:39:46.83ID:SiY4XPCw
>>879
でお前の思う最新のやり方って何?
881デフォルトの名無しさん
垢版 |
2023/01/16(月) 07:31:23.53ID:D6HKBdG5
最新に拘る必要性はない。
未だにMFC使ってるところもある位だ。
2023/01/16(月) 07:49:13.57ID:w9H3AhrL
もうMFCはメンテでしか使わないけどMFC以前は大変だったよな。
2023/01/16(月) 07:54:49.72ID:c+FIjEwY
C#案件でもいまだにWinFormsが主流だからね
WPF、UWP、WinUI全部足しても足元にも及ばないしこれまでの実績からしても逆転は難しいと思うわ
まあMSがWinForms廃止とか思い切った事すれば別だけど
2023/01/16(月) 09:29:45.28ID:qA2gV+xU
結局>>879はWinFormおじさんでFA?
2023/01/16(月) 11:19:33.01ID:0JXp7IbD
WindowをShowしてタイトルバーの✕ボタンで閉じるとメモリが解放されないんだけど、どうすれば解放されますか?
ちなみに、ShowしたあとにCloseをコードで呼ぶとメモリは増えません
2023/01/16(月) 11:58:31.09ID:WxVH55lQ
スタイルでカラーだけを定義することってできないの?
SolidColorBrushのColorにStaticResource使いたいんだけど
2023/01/16(月) 12:26:08.54ID:dASaOUn0
>>877
見てみたが、グロではなかった。
「世界で一番短いサンプルで覚えるMVVM入門」
というサイト。
Windows Form と WPF における構造の違い
など。1
2023/01/16(月) 12:27:38.92ID:dASaOUn0
>>881
というか、WindowsでC++やろうとすれば、MFCが最強。
そして、プロが使う言語No.1は、C/C++という調査結果がある。
889デフォルトの名無しさん
垢版 |
2023/01/16(月) 13:34:17.40ID:Iz2auSAp
MVVM+Sという風に作るのが一番整理しやすい気がしてきた
M…モデル データクラスの置き場所
V…ビュー 画面表示のみ
VM…ビューモデル Vの情報から必要なSに繋ぎこむ、簡易的なプロパティの変更などはここで行っても良い
S…サービス モデルを活用してほしい情報を作り出す(VMからもらった情報を処理してVMに返すなど)
こんな感じ
890デフォルトの名無しさん
垢版 |
2023/01/16(月) 13:35:10.32ID:Iz2auSAp
VMは情報をやり繰りするだけだから肥大化しにくくなる
サービスに投げるだけでいい
2023/01/16(月) 13:35:35.51ID:F54AIUF2
>>888
MFCなんてただの黒歴史だろw
時々いるんだよMFCとSDKの区別がついてないやつ
2023/01/16(月) 13:40:56.86ID:dASaOUn0
>>891
MFCが良いと言いたい訳ではない。
2023/01/16(月) 13:41:55.32ID:dASaOUn0
ただ、WinFormsも、Windowsアプリというより、ダイアログアプリになるし、
さらに、イベントハンドラもメンバ関数ではなくグローバル関数で受けることになる。
2023/01/16(月) 13:51:24.70ID:dASaOUn0
MFCを使わないというなら、VisualStudioで、VisualStudioの機能を生かした
状態ではC++は使えない、ということになる。
2023/01/16(月) 14:01:34.32ID:6LxSdNjw
そうですか
迷惑なんでそっちのスレに帰ってください
2023/01/16(月) 14:01:42.01ID:9XKZ39ED
XamlのBorderを、コントロールの内側に沿って引くのでは無く、
GroupBoxみたく外側に沿って引く事は出来ますか?

もしくはGroupBoxのヘッダを無くす事は出来ますか?
2023/01/16(月) 14:07:08.51ID:8YM4/SqS
C++でGUI作るとかどんな苦行だよ
2023/01/16(月) 14:26:05.60ID:dASaOUn0
C++は、CUI Onlyという訳にも行かない。
899デフォルトの名無しさん
垢版 |
2023/01/16(月) 15:31:21.68ID:MsfEWWA2
MFCが糞なんであって
C++の責任ではないな
wxWidgetsとかあるし
900デフォルトの名無しさん
垢版 |
2023/01/16(月) 15:38:14.73ID:Iz2auSAp
いい加減スレチ
2023/01/17(火) 05:33:10.39ID:ygVLikR5
海外のナレッジコミュニティですらUWPでアプリ沢山作ってるんだけど次世代は何に移行すればいいの?Windows App SDKとWinUIの違いがわからないから教えて?
って質問が腐るほどあるんだよなMSはいい加減社内の派閥争いや予算編成のための糞見たいなプロジェクトをすべて清算して構造改革しろや
ずっとMSの開発環境で開発してきたPGですらMSの次々作っては捨て作っては捨てを繰り返してる環境が理解できないのだが
いやもちろん理解はできてるWindow App SDKは.NETのサブセットでもない独立したWin10/11のフロントエンドFWでWinUIを内包するツールキットである
このスレでもこれをまったく理解してない馬鹿も多いがネイティブな英語圏の奴等でも理解してない馬鹿も多いからしゃーないわなMSが悪い
2023/01/17(火) 05:58:58.13ID:xhrCM/NA
まず句読点をおぼえような
2023/01/17(火) 09:30:18.92ID:24vv2EmE
>>901
そいつらが馬鹿なだけ

MSのFAQに答えが乗ってる
>>677
2023/01/17(火) 10:52:24.83ID:YygKbhO7
XAMLのレイアウトでWithやHeightをウィンドウ枠に追従させたいのですが、
クリップみたいなマークが出る時と出ない時があります。
またマークが出てもその時の最大値が設定されているだけで、ウィンドウ枠を拡大しても追従しない時があります。
必ずウィンドウ枠に追従させるには、どの様にしたら良いのでしょうか?
WinFormのアンカーみたいな機能はありませんか?
2023/01/17(火) 11:12:10.06ID:mymdZu3l
タグの方でWidthとHeightを消すと最大になる
あとはMarginで調整
2023/01/17(火) 11:28:11.99ID:vy/ApWO8
デザイナー使うのは初めのざっくりとした配置の時ぐらいに留めて、なるべくxamlを直接弄った方がいいぞ
2023/01/17(火) 12:15:14.68ID:5q5rlfCc
android studioのデザイナー使うとXaml編集はやりたくなくなる。
2023/01/17(火) 15:22:10.34ID:YygKbhO7
>>905
消しても上にあるコントロールの長さまでになるのですが、何か対策はありますでしょうか?

<TextBlock Width = "200" Text="abcdefghijklmn" />
<GroupBox Header="hoge"/> <!-- 上のTextBlockと同じ長さになる -->
909デフォルトの名無しさん
垢版 |
2023/01/17(火) 16:23:11.93ID:p+xlncxJ
何も知らないなら全部出せ
2023/01/17(火) 17:37:49.48ID:24vv2EmE
>>908
基礎からやりましょう
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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