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

■ このスレッドは過去ログ倉庫に格納されています
2023/01/22(日) 05:53:16.97ID:oY263ilm
WPF(Windows Presentation Foundation)について語るスレ。

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

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

コードを貼る場合は以下のサイトの利用をお勧め。
https://ideone.com/
2023/05/09(火) 15:41:13.56ID:fHFGuVZX
>>336
そうです
Windows11 22H2の「Win32アプリケーションから印刷しています」ダイアログで事前にプリンタを変更できません。
339332 336
垢版 |
2023/05/09(火) 18:26:02.30ID:EfOvDufh
>>338
11は手元にないからざっと調べるだけ調べてみたけど新しい印刷ダイアログは曲者らしいね
ただ見つかるのはレジストリいじって従来のに戻す方法に関する情報ばっかりで
プログラムから操作する際の注意点なんかは見当たらず
同じ問題に遭遇して解決した人の目に留まればいいんだけど
2023/05/09(火) 18:27:44.52ID:K+hXzBCZ
留まったけど教えてやるメリットを感じない
341デフォルトの名無しさん
垢版 |
2023/05/09(火) 19:21:57.74ID:oR/IazVW
そりゃそうだろ。教えて自分に何のメリットもない。
親切心で書くくらいだ。
2023/05/09(火) 19:26:29.22ID:K+hXzBCZ
質問しながら嫌味を書くやつだからなぁ
343デフォルトの名無しさん
垢版 |
2023/05/09(火) 20:23:43.53ID:D8tEecOC
>>342
一石二鳥やないか
344デフォルトの名無しさん
垢版 |
2023/05/09(火) 20:25:08.84ID:oR/IazVW
OSの違いだけで動作不良なら仕様外の動作してるんだろ。
あとLINQはバグの元だ。
345デフォルトの名無しさん
垢版 |
2023/05/09(火) 21:24:01.40ID:oR/IazVW
https://www.winhelponline.com/blog/restore-legacy-print-dialog-windows-11/
346デフォルトの名無しさん
垢版 |
2023/05/09(火) 21:25:33.34ID:oR/IazVW
reg add "HKCU\Software\Microsoft\Print\UnifiedPrintDialog" /v "PreferLegacyPrintDialog" /d 1 /t REG_DWORD /f
これとかね。
2023/05/10(水) 07:40:52.97ID:zXoG8uKj
https://github.com/dotnet/wpf/discussions/7788
やる気ないからほぼ何も変わってねぇ
2023/05/10(水) 07:45:21.01ID:zXoG8uKj
https://www.youtube.com/live/cNfINi5CNbY?feature=share
さぁ、待機の時間だよ
Dart 3
Flutter 3.10
2023/05/10(水) 12:27:48.18ID:ihVK8fAX
>>344
この場合、仕様外の動作って何を指してるん?
2023/05/10(水) 12:40:53.83ID:qs6QvCEc
LINQはバグの元とか言っちゃうあたりお察し
後から従来のダイアログを使う方法を出してきたあたり、適当なこと言ったって自覚はあるのだろう
2023/05/10(水) 15:57:17.52ID:tAwBKs0U
>>347
WPFは枯れた技術という事じゃね?
2023/05/10(水) 17:23:21.83ID:m/tthB0D
もう枯れっ枯れよ
2023/05/10(水) 22:22:46.25ID:zXoG8uKj
this feature may not make it in time for .NET 8 (possibly .NET 9)
Win11Themeのこれよ
.NET 8に間に合わないかも?
354デフォルトの名無しさん
垢版 |
2023/05/11(木) 00:11:44.16ID:KBR636WS
>>348
Dart 3たいしたものないな・・・
2023/05/11(木) 00:54:19.67ID:8SO9KQ3l
Dartの言語機能よりFlutterのwasmやマルチウィンドウへの対応の方が気になる
Impellerとかほんと迷惑だよな
apple向けのjankを取り除くためだけに無駄な労力がかかってるし
2023/05/11(木) 12:51:11.44ID:2/EQwNdd
米国年収では、Ruby がGo/Rust/Elixirの3強を超えた!
PHP, Dart は、高卒の茶髪ギャルがやるイメージ

Ruby, Elixir : 9.3 万ドル
Go : 8.9
Rust : 8.7

多くの言語 : 6.5〜7

PHP : 5
Dart : 4.4
2023/05/11(木) 23:47:08.87ID:Q1P2sT3q
>>326
アリが㌧
358デフォルトの名無しさん
垢版 |
2023/05/14(日) 07:28:02.53ID:Z9t5AO6q
CANVASに決め打ちで位置指定できればいいんだけど。そんなツールないかね。
印刷して位置確認してまた修正してまた印刷。プリンタ間の往復。
2023/05/14(日) 11:48:30.69ID:O9KLOqkG
flutter 3.10ガッカリ
360デフォルトの名無しさん
垢版 |
2023/05/14(日) 19:44:57.32ID:i9/qYKmG
最近WPF始めたけど
これUI作成楽だしバインドも簡単でいいね
C#コード書くより簡単で分かりやすい
2023/05/14(日) 19:59:11.83ID:MlTTbBuH
珍しいやつだなお前
普通はxamlに殺意湧くもんだと思ってたけど
それはこれからか
2023/05/14(日) 20:01:53.02ID:gjxwqavB
mauiだぞ
363デフォルトの名無しさん
垢版 |
2023/05/14(日) 20:18:07.91ID:9JCMYqC6
>>361
HTMLやってたんじゃね。
2023/05/14(日) 22:10:39.64ID:akRvJfoN
FormsからならXAMLは天国だなあ
365デフォルトの名無しさん
垢版 |
2023/05/15(月) 06:52:52.99ID:3w+UV2De
>>361
XAMLのほうがコード量が明らかに減ったから
変更が簡単で楽だと感じた
MVVMをガチガチに守ろうとすると面倒なことが多いけど
366デフォルトの名無しさん
垢版 |
2023/05/15(月) 07:37:26.45ID:RajzSWfQ
MVVMやってる人いるんだw
2023/05/15(月) 12:07:27.74ID:VtI330xM
コードビハインドとMVVM以外に何か選択肢あるの?
2023/05/15(月) 12:35:07.78ID:wS5FtXi0
V.VMというかV.M
でやってます
369デフォルトの名無しさん
垢版 |
2023/05/15(月) 19:42:06.89ID:RajzSWfQ
MVVM使うほどのアプリ作ってないしなぁ。

CANVASで帳票印刷してるんだがwindow作ってそれのコンテンツプロパティに
CANVAS指定でプレビューできんのな。
しかも使用してるモニタが93DPIなんでほぼ原寸で出てた。感動したわ。
2023/05/15(月) 20:42:41.83ID:WX+SovFb
>>369
そういうときコードビハインドでやってるの?
それとも>>368みたいな感じ?
371デフォルトの名無しさん
垢版 |
2023/05/15(月) 22:09:33.99ID:RajzSWfQ
分からないという事もあり、アンチMVVM!
2023/05/15(月) 22:35:33.78ID:0oc4REo8
そもそもバインドするデータが無い
という場合はどうしょうもないな
2023/05/16(火) 08:12:50.00ID:scMhFUkR
Canvasって、ViewModelとChildrenバインドできたっけ?
XamlからItemSource、ItemTemplate使ってもうまくいかなかったような・・・
仕方なくコードビハインドでやった記憶がある。
2023/05/16(火) 09:49:54.49ID:202gI0ra
そういうときはサービスクラスを作ってカプセル化してVからVMにインジェクションする
って、書いただけじゃ伝わらないよな
2023/05/16(火) 16:18:50.60ID:/dwC7JTn
>>374
もうちょっと具体的に紹介してよ
376デフォルトの名無しさん
垢版 |
2023/05/16(火) 18:01:09.06ID:4Qe65khc
MとかVMとか、なんか、いろいろ難しそうなことやってんだな。。
2023/05/16(火) 19:51:15.02ID:n3YZZSHv
データグリッドの値をいじったりするのは
データバインドしなきゃやっとれんでしょ
378デフォルトの名無しさん
垢版 |
2023/05/16(火) 20:00:54.76ID:4Qe65khc
そんなことはあるまい。
379デフォルトの名無しさん
垢版 |
2023/05/16(火) 20:07:59.79ID:MBYEcVuB
MVVMっぽい何かはしてるけど
たいした物つくらないから時間の無駄な気がしてならない
2023/05/16(火) 20:46:43.78ID:yTYZJaUk
データグリッドをバインドなしで扱うとするとイベントハンドラでゴリゴリデータ書き換え?
381デフォルトの名無しさん
垢版 |
2023/05/16(火) 20:54:05.20ID:4Qe65khc
データグリッドの殆どがDBとかCSVからのデータ表示用だろ。入力もあるけど。
だから検索して表示した後は放置。必要があればまた全更新。
だからゴリゴリデータ書き換えって事態はないんじゃね。

しかしデータグリッド早いよな。7000件をCSVから全表示させても1秒かかるか
どうかって感じ。非同期化してたのを戻したわ。
2023/05/16(火) 21:10:29.48ID:HznneTlP
いや、データ編集ありの場合にデータバインドなしでどうやんの?って話の流れでしょ
383デフォルトの名無しさん
垢版 |
2023/05/17(水) 07:05:06.66ID:Lo59nD5D
データグリッドに手を加えてバイディングなしでやってた。
2023/05/17(水) 15:05:01.97ID:k2sfi7EW
またmっvmかよ
2023/05/17(水) 18:00:09.26ID:ELtH3TLu
なぜMVVMかって?
ドメインモデルに集約するためさ。 .Net Conf 2022でも2023でも聴講すればわかる。
>374のような、ボケスタイルはやらない。 
DIでレポジかインスタンス参照を渡すとか言ってるんだろうが、VMからV参照は双方向参照。
SOLID原則を学べ・・・ と言いたい。
386デフォルトの名無しさん
垢版 |
2023/05/17(水) 20:16:07.84ID:Lo59nD5D
さっぱりわからんわ〜。
ま、大事なのは要件が実装できかどうかだと思っている。
2023/05/17(水) 20:53:45.90ID:KKhsw4JF
>>375
1.例えばCanvasのようなUI部品をプロパティーに持ち、それをアクセスルルメソッドなどで構成されたサービスクラスを作る
2.VMでインスタンス化してプロパティーとして公開
3.VのコンストラクタでVMで公開されているサービスのインスタンスに自身のCanvasのインスタンスを挿入
4.VMからはサービスクラスを介してUI部品をメソッドを使って簡単にアクセスできるようにする
5.単体テストが必要な場合はサービスクラスのインターフェースを用意して、スタブでデバッグする

つか、WinUI3のConnectedAnimationなど、このやり方じゃないと不可能だよ
388デフォルトの名無しさん
垢版 |
2023/05/17(水) 21:01:02.55ID:Lo59nD5D
ますます分からなくなった!
2023/05/18(木) 00:26:14.80ID:M0TxVFb2
1.例えばCanvasのようなUI部品を持つMyView.xamlクラスを作る
2.VMでプロパティーとして公開
3.VのコンストラクタでVMで公開されているMyView型のプロパティに自身のthisを挿入
4.VMからはプロパティを介してUI部品に簡単にアクセスできる
5.単体テストが必要な場合はViewのインターフェースを用意して、スタブでデバッグする
390デフォルトの名無しさん
垢版 |
2023/05/18(木) 20:30:12.83ID:NmURz+IP
難しい〜
どんな凄いアプリ作ってんだ?!
391デフォルトの名無しさん
垢版 |
2023/05/18(木) 21:22:50.78ID:NmURz+IP
new FixedPage() と canvas で両面印刷はどうすんだ?
片面しかできん。
2023/05/18(木) 21:44:03.34ID:67t/SXkw
>>389
VMにVのインスタンスを注入すれば機能的には全く問題ないんだろうが
ちょっと不細工だから不採用だな

好みの問題なんだが
2023/05/18(木) 22:20:22.72ID:oHW8akGV
原則としてVMがVに直接依存するべきでないからそこに依存性逆転パターン使うわけやね
2023/05/19(金) 16:09:03.65ID:6FflI5yr
MVVMとデータバインドをごっちゃに考えてしまう
395デフォルトの名無しさん
垢版 |
2023/05/19(金) 19:27:50.45ID:FoiQio6I
MVVMの話は難しいな〜。ホンマ感心するわ。
で、new FixedPage() と canvas での両面印刷はどうするんでしょう。
こちらもお願いします。。
2023/05/19(金) 20:40:03.06ID:pCo6gpmL
今回シンプルな画面だしイベント駆動でいっかー

あれよあれよと言う間に仕様追加で画面ゴテゴテ

こんなんならデータバインドで作ってたわ・・・(いまここ)
2023/05/20(土) 05:27:38.90ID:bdMg4j0I
そもそもVMでUIElementを操作するなという事では?
DIP原則守る為としてインターフェースをVMにインジェクションしても、そのRepository経由でコンテナーのUIElement操作したら本末転倒。
とどのつまり、UIElementをコードで操作するような場合は素直にコードビハインドでやれという事。
DataGridにエクセルの操作性追加や選択範囲のデータ取得、Adonerにグラブハンドル入れてCanvasのShapeをResizableにしたり等々の処理をVMでやるとかあり得ない。
398デフォルトの名無しさん
垢版 |
2023/05/20(土) 08:57:25.79ID:B3aysABv
>>391
自己レスになるがFixedDocument() で土台作ってFixedPage()で全ページをaddして
最後にXpsDocumentWriterで一気にプリンタにデータ送って両面印刷できた。
プリンタダイアログの設定で袋とじとか自動的にその通りに印刷された。楽だなこれ。
2023/05/20(土) 09:00:00.77ID:mmZhl8HV
>そもそもVMでUIElementを操作するなという事では?
>DIP原則守る為としてインターフェースをVMにインジェクションしても、そのRepository経由でコンテナーのUIElement操作したら本末転倒。

本末転倒ってのはどういうところが?
UIElement へ直接依存することが問題だしそれを切り離せればとりあえず問題はないと思うが。
2023/05/20(土) 10:26:20.92ID:hKeHfHFy
分かってると思うけど >>389 は皮肉だぞ
2023/05/20(土) 16:23:18.29ID:mmZhl8HV
>>389 に問題があるのは当然として >>397 はそれを依存性逆転で改善したうえでの話と思ったが。
2023/05/20(土) 16:42:27.96ID:MBF+Fo/f
>>389は一応動くから、ちょっとやばいけど使っている人がいても不思議じゃないと思ったわ
>>387のやり方で何も問題なく見えるが>>400の方は何が気に食わなかったのやら
403デフォルトの名無しさん
垢版 |
2023/05/21(日) 06:10:54.88ID:Elr5wk/3
マルチスレッドや印刷、GDI、ソケット、、そういう事が出来る奴の方が頼もしいわ。
結局誰も>>391の質問に答えられないし、プログラマの勉強に終わりは無いな。
2023/05/21(日) 09:44:52.17ID:WLjUQB8s
質問の意味が分からんからな
裏写りを表現したいということかな?
405デフォルトの名無しさん
垢版 |
2023/05/21(日) 10:05:20.77ID:Elr5wk/3
>>397
とかどうやって勉強したんだ。本?
2023/05/21(日) 12:36:49.38ID:VUm7ancq
>>403
>結局誰も>>391の質問に答えられないし
ChatGPTに聞けば答えてくれるよ
ほんと便利な時代になったもんだね

DocumentViewerとDocumentPaginatorを使ってCanvasをPagenationできるようにする
もしくは
自分でページサイズに合わせてcanvas内の要素を複数のcanvasに分割して各FixedPageに割り当てる
FixedDocumentのPageContentとして各FixedPageを追加
2023/05/21(日) 18:52:32.73ID:CTJ8pTH5
>>405
POS開発と、CodeProjectと.NET Conf現地参加・・・ ITギークナカーマ一杯。
基板開発とクリーンアーキエンベッディドもやってるよ。
ESP32の広大なFLASH空間に満足しています。
408デフォルトの名無しさん
垢版 |
2023/05/21(日) 19:56:08.47ID:Elr5wk/3
組み込み系か。c言語で?
POSにしてもMVVMとは無関係ぽいが。
409デフォルトの名無しさん
垢版 |
2023/05/21(日) 21:25:54.24ID:2oe1bdCf
POSめちゃ関係あるやろ
業務系のなかでもぎゅうぎゅうに詰め込んだUIの典型
410デフォルトの名無しさん
垢版 |
2023/05/22(月) 07:28:05.97ID:B1W7qz7E
UIが多い == MVVMなのかい。
2023/05/22(月) 10:40:27.78ID:G50scNn0
UIが小規模でシンプルならMVVMにする利点が少ないのは確か
2023/05/22(月) 12:26:52.57ID:ELDsg2JM
MVVM面倒くさすぎるんじゃ
413デフォルトの名無しさん
垢版 |
2023/05/22(月) 19:02:59.28ID:B1W7qz7E
picだったな。メモリ少なくてアセンブリ使ってた。
MVVMは少数派。これ持論。
2023/05/22(月) 19:30:21.46ID://uiZhvt
何がなんの持論なんだかさっぱり
2023/05/22(月) 20:58:50.24ID:ZbjQP4KZ
つまり脳内では少数派ということなんだろう
416デフォルトの名無しさん
垢版 |
2023/05/22(月) 21:06:14.14ID:B1W7qz7E
MVVMのフレームワークは何が主流なんだい?
2023/05/22(月) 21:09:21.79ID:LcxeGXQe
>>413
いつの話?
最近なら結構リッチな環境になってそうだけど
2023/05/22(月) 21:10:12.98ID:650aSK01
>>413のどこに「論」があった?
2023/05/22(月) 21:23:00.27ID:650aSK01
MVVMは不要って言うならそれは持論と言えるけど
少数派って言われてもそりゃただの観測結果でしょとしか
2023/05/22(月) 21:25:30.98ID:0Q80TM1a
観測結果というより妄想?
2023/05/22(月) 22:12:02.55ID:GhXjprUX
周りに馬鹿しかいないど底辺なんだろ察してやれ
ここでいつもMVVM分からん言ってる奴はハナから覚える気無いジジイだから相手するだけ時間の無駄
2023/05/22(月) 22:40:26.93ID:kQxWLq4v
アセンブリが採用されるような案件は最初からMVVMは選択肢に入らんわな
そんなとこで少数派!少数派!って井の中のなんとやらでしかない
2023/05/23(火) 04:28:10.10ID:n2ndAtT+
何? このスレ。 数人以外カスばかりやん。 アホ草
424デフォルトの名無しさん
垢版 |
2023/05/23(火) 06:09:51.03ID:ExJFC8Fq
MVVMバリバリのユーザは50-60万円はもらってそうだな。
そのくらいは出て当然だと思う。
2023/05/23(火) 10:19:45.99ID:gVolEOCK
>>423が一番カスっぽい発言という高等ギャグ
2023/05/23(火) 10:36:48.80ID:3Hegzcg2
高等か?
2023/05/23(火) 11:04:41.99ID:K2e/wchZ
え?そんなとこ噛み付くの?
2023/05/23(火) 11:07:52.35ID:6rldbTL4
とりあえずWPFのスレでアセンブリ言語のことアセンブリと言うのやめなよ
2023/05/23(火) 15:07:15.85ID:LZSiSUgr
どこのスレであれ誤解を生むなら必要だし文脈から判断できるなら不要
2023/05/23(火) 15:15:19.78ID:6rldbTL4
さすがにややこしいわ
2023/05/23(火) 16:49:55.10ID:ckJ3AhZD
それはさすがに文章読解力に問題があるのでは?
2023/05/23(火) 17:21:10.69ID:6rldbTL4
読解力じゃなくアセンブリと書く方に日本語能力の大きな欠陥があるという話だぞ?w
読む方はちゃんと読み分けてるわけだしなw
2023/05/23(火) 17:23:12.98ID:uAOe//9g
C#使っててアセンブリ言語なんて使うことないからC#のスレでアセンブリ言語のこと何の説明もなくアセンブリって言われたら「アホの子かな?」と思うのが普通
2023/05/23(火) 17:35:11.12ID:cgIANDwC
ちゃんと読み分け出来てるってことはややこしくないってことだよね
2023/05/23(火) 17:59:47.57ID:DmnDg9MH
読み分ける方の言語能力が高いだけでややこしいのはかわりない
2023/05/23(火) 18:15:40.28ID:h3ro3yVV
日本語能力の欠陥とか強い言葉を使った方が勝ちみたいなゲームはノーサンキュー
2023/05/23(火) 18:16:10.30ID:m84tNyob
C#のスレでアセンブリって言ったらアセンブリのことに決まってんじゃん
アセンブリのことアセンブリって言うならちゃんと区別しろよってだけだろ
2023/05/23(火) 18:19:56.26ID:bf2Gh3nr
学校で「やっぱりデスクのせいだよな」って言ったらみんな頭にはてなマーク浮かべるだろ
他人に伝わるかどうか考えられないのは日本語能力に欠陥があると言われても仕方ないぞ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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