[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 09/07 23:20 / Filesize : 232 KB / Number-of Response : 1007
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2023/01/22(日) 05:53:16.97 ID:oY263ilm.net]
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/

537 名前:デフォルトの名無しさん mailto:sage [2023/06/13(火) 00:24:07.79 ID:Y05jGU7w.net]
WPF 限定かもだけど INotifyPropertyChanged.PropertyChanged イベントは
ちゃんと UI スレッドにディスパッチしてくれるようになってる。
非 UI スレッドから VM を操作しても問題ない。

ObservableCollection とかは一工夫いるけど。
(BindingOperations.EnableCollectionSynchronization)

538 名前:デフォルトの名無しさん mailto:sage [2023/06/13(火) 00:31:49.19 ID:1h3p4bkQ.net]
コマンド使えよ

539 名前:デフォルトの名無しさん [2023/06/15(木) 15:10:54.81 ID:rRvNWqra.net]
Task を直接 await しないで下さい。
Task.ConfigureAwait(Boolean) を呼び出して継続の意図を示すことを検討してください。
https://learn.microsoft.com/ja-jp/dotnet/fundamentals/code-analysis/quality-rules/ca2007

540 名前:デフォルトの名無しさん mailto:sage [2023/06/15(木) 16:36:37.39 ID:yjHL9xaz.net]
全部trueで困ったことないな
falseにして劇的にパフォーマンスあがったという体感もない
ゲームだとシビアなのかもしれんが多分他にやることあるだろう

541 名前:デフォルトの名無しさん mailto:sage [2023/06/15(木) 17:51:20.80 ID:yjHL9xaz.net]
ちょっと実験してわからなくなった
asp.net mvc (クラシック)で自己再帰でthread idとurlをデバッグ出力してDelayするだけのコードを動かした
ConfigureAwait(falae)してないのに戻ってきた後のthread idが変わってる
にもかかわらずコンテキストからurlはちゃんと取れてる

542 名前:デフォルトの名無しさん mailto:sage [2023/06/15(木) 17:58:34.24 ID:yjHL9xaz.net]
continueOnCapturedContext
Boolean
継続をキャプチャされた元のコンテキストにマーシャリングする場合は true。それ以外の場合は false。


元のコンテキストとしか書いてないから同じスレッドに戻る保証はないのか
知らなかった

543 名前:デフォルトの名無しさん mailto:sage [2023/06/15(木) 18:32:41.75 ID:AU7Lfb35.net]
>>532
なにをどーしたらそんな風になるの?

544 名前:デフォルトの名無しさん mailto:sage [2023/06/15(木) 23:40:26.44 ID:akjjH2QK.net]
何もしなくてもやってくれんじゃん

545 名前:デフォルトの名無しさん mailto:sage [2023/06/15(木) 23:54:36.14 ID:rRvNWqra.net]
C#使ってて思うのは、細かいところ気にしなくても、公式ライブラリ自体が色々配慮してくれてるんだよね。
自分も一層心掛けるわ。



546 名前:デフォルトの名無しさん mailto:sage [2023/06/16(金) 07:08:56.02 ID:g6vkIwv2.net]
>>537
同期コンテキストによるので、
・GUIアプリケーション(の同期コンテキスト)だとtrueで元のスレッドに戻る
・コンソールアプリケーション(の同期コンテキスト)だとtrueでも元のスレッドに戻らない
だったかと。

547 名前:デフォルトの名無しさん [2023/06/19(月) 19:44:51.70 ID:qIw288aX.net]
https://imgur.com/a/KIpYdS4
心電図(?)作ってみた。

ソケットや共有メモリで他機器からデータ受信してリアルタイム表示。
アイコンは飾り。画像貼ってるだけ。

プログラムはじめて40年以上。まだまだ若いもんには負けねーぜw

548 名前:デフォルトの名無しさん [2023/06/20(火) 18:14:26.86 ID:mfTYjI5Q.net]
やっぱUIデザイナーって専門で必要なのかなと感じた

549 名前:デフォルトの名無しさん mailto:sage [2023/06/20(火) 18:51:52.94 ID:Op03/FKW.net]
>>542
40年でそれはさすがに負けてんぞ
俺が学生の時はオシロスコープのデータ解析は学生が自分たちでプログラム組んでやってたからな
端末はDOSだったわ

550 名前:デフォルトの名無しさん [2023/06/20(火) 19:04:46.49 ID:UreReEmE.net]
x86 (MASM)でGDC直叩きでやってたこと考えると高級言語で出来ちゃう今が
凄いよな。

551 名前:デフォルトの名無しさん mailto:sage [2023/06/20(火) 19:15:29.15 ID:LcGR2FrV.net]
>>542
グラフ部分の描画はWPF標準のCanvas?

552 名前:デフォルトの名無しさん mailto:sage [2023/06/20(火) 19:52:46.25 ID:FDgZeyem.net]
>>542
良く出来ていると思いますよ。
普通にプロレベルに達していますね。
これだけの物を作れる人は少数派です。

553 名前:デフォルトの名無しさん mailto:sage [2023/06/20(火) 19:57:28.04 ID:FDgZeyem.net]
「俺も同じようなもの作れるわ」
と思っている人の作品見てみると、細かい部分がちゃんと出来て無い
ことが多いです。
細部までちゃんとしているものを作れて無いのに、同じだと思っているだけ。

554 名前:デフォルトの名無しさん mailto:sage [2023/06/20(火) 20:18:02.54 ID:SIobN1qD.net]
悔しそうで草

555 名前:デフォルトの名無しさん [2023/06/20(火) 20:58:16.66 ID:FA7f5bQf.net]
>>547
>>548
「プロレベル」がなんなのか分からないけど「細かい部分」を見ると、
画質悪いのもあるけどボタン?のアイコンが何だか分からない…
あと、スライダーの部分は数値入力なしで全部スライダーで大丈夫だろうか?
あと、RGBがちょっと邪魔な感じで、右端のボタンが小さくなってて押しにくそう
あと、スライダーとRGBの間にあるチェックボックス?はテキスト位置を上にして他と揃えた方が良さそう
という気がするけどどう?



556 名前:デフォルトの名無しさん [2023/06/20(火) 21:13:52.23 ID:UreReEmE.net]
https://www.youtube.com/watch?v=sQTcqKGBj1c&ab_channel=MedicalEngineer

これの真似しただけ。アイコン画像もここからコピー。だから解像度も低い。
(アイコンは飾り。画像貼ってるだけ。 って書いておいたけど)
細かいこと言ったら切りないだろ〜。遊びで作ったもんだし。。

canvas にline()で書いてる。

557 名前:デフォルトの名無しさん mailto:sage [2023/06/20(火) 21:24:25.92 ID:iJMYm/hz.net]
白い巨塔のバイタル警告音を思い出す

558 名前:デフォルトの名無しさん mailto:sage [2023/06/20(火) 22:13:50.37 ID:91aDk3JE.net]
WPFでWinUI 使っている人いますか?
なんかやり方がよくわからないんだけど
わかりやすいサイトありますか?

559 名前:デフォルトの名無しさん mailto:sage [2023/06/21(水) 03:24:12.51 ID:i5eSB4dS.net]
>>553
https://learn.microsoft.com/ja-jp/windows/apps/desktop/modernize/host-custom-control-with-xaml-islands#add-a-control-from-the-winui-2-library-to-the-custom-control

560 名前:デフォルトの名無しさん mailto:sage [2023/06/22(木) 05:58:37.42 ID:d9imgnzP.net]
同じようなものは誰でも作れる。
新創造に価値がある。 畢竟、思想に価値があると言える。

561 名前:デフォルトの名無しさん mailto:sage [2023/06/22(木) 12:08:51.67 ID:f4QrThnD.net]
口だけならなんとでも言える
動いてる物を出せよ無能

562 名前:デフォルトの名無しさん [2023/06/22(木) 20:18:12.49 ID:2/GtWGn8.net]
グラフ表示の事か?
基本的な非同期の知識とcanvasに線が書ければ後は頑張り(?)次第。
手練れは頑張りなんて不要なんだろうけど、基本動作まで自分は2時間は掛かった。
始めはWinFormsだったけど勉強がてらWPF版も作ってみた。
後者の方が綺麗で動きもよかった。
自己満足だが真似する時はどれだけそっくりに作れるかこだわると面白い。

563 名前:デフォルトの名無しさん mailto:sage [2023/06/22(木) 21:00:45.20 ID:CCzLUMWa.net]
WPFの描画機能は規模が大きくなると速度低下が激しいのが残念
SkiaSharp等を使えば一応回避出来るけど

564 名前:デフォルトの名無しさん mailto:sage [2023/06/22(木) 22:05:57.96 ID:oInj3jkO.net]
UWPとWindowsAppSDKだと、Win2DというDirect2Dの公式ライブラリがありますね
一回使ったけど流石に早かった

565 名前:デフォルトの名無しさん mailto:sage [2023/06/23(金) 00:18:21.51 ID:HwDl1XJv.net]
DrawingVisualで描画すれば速いよ



566 名前:デフォルトの名無しさん [2023/06/25(日) 09:24:47.83 ID:RV4PZadR.net]
SkiaSharp DrawingVisual あまり資料がないな〜

567 名前:デフォルトの名無しさん mailto:sage [2023/06/25(日) 12:00:19.37 ID:bsDOU/Dc.net]
あまり情報がないものでも、ChatGPTが組み合わせて教えてくれる場合がある。
その場合、複数言語のページの内容を混ぜて回答してくれるのかな?

568 名前:デフォルトの名無しさん mailto:sage [2023/06/25(日) 16:20:15.73 ID:Avq8WYKk.net]
DrawingVisualはWPFの機能でMSのサイトに解説とコードサンプルがあり、リファレンスがあるのだから資料がないということはないだろう

DrawingVisual オブジェクトの使用 - WPF .NET Framework | Microsoft Learn
https://learn.microsoft.com/ja-jp/dotnet/desktop/wpf/graphics-multimedia/using-drawingvisual-objects

569 名前:デフォルトの名無しさん [2023/06/26(月) 20:38:37.00 ID:/ad+dyyW.net]
https://swharden.com/csdv/skiasharp/skiasharp/
ベンチマーク
10万本で0.4secで驚異的。

570 名前:デフォルトの名無しさん [2023/06/26(月) 21:30:09.55 ID:/ad+dyyW.net]
でもSkiaSharp + OpenGL はハードル高そうだな。
だったらSystem.Drawingの方がいいじゃん。

571 名前:デフォルトの名無しさん mailto:sage [2023/06/26(月) 22:37:30.04 ID:Jb1NpiVn.net]
>>564の比較はWinFormsで
OpenGLで動かしたい場合はSKControlクラスの代わりにSKGLControlクラスを使うだけで良いみたい
WPFの場合はSKElementクラスだけど、これの性能には触れてないな

572 名前:デフォルトの名無しさん mailto:sage [2023/06/26(月) 22:47:47.73 ID:Jb1NpiVn.net]
比較対象が多いページ見つけた
https://swharden.com/csdv/platforms/compare/

573 名前:デフォルトの名無しさん [2023/06/27(火) 19:40:57.53 ID:ZU8ILpLR.net]
https://blog.emoji-gen.ninja/posts/20190204/skia.html
>日本語のドキュメントに至っては、ほぼ皆無です。そのため、Skia を使って本格的に開発する場合は、ある程度の覚悟が必要です。

なんだと!!ww
ヤフー知恵袋も質問0 だった。。

574 名前:デフォルトの名無しさん [2023/06/27(火) 21:04:13.08 ID:ZU8ILpLR.net]
一応、線は引けるけど、非同期コードいれるとcanvasが壊れてるといって落ちる。
あと、XAMLで指定したメソッド以外でどうやって描画するのか不明。

575 名前:デフォルトの名無しさん mailto:sage [2023/06/28(水) 02:24:02.68 ID:HaY2f2W2.net]
>>569
SKElementはメソッドやイベントが少なくて超シンプル
https://learn.microsoft.com/en-us/dotnet/api/skiasharp.views.wpf.skelement?view=skiasharp-views-2.88

基本的に、SKElement.PaintSurfaceイベントで描画するだけ
再描画したい場合、InvalidateVisual()を実行すると上記イベントが発生する



576 名前:デフォルトの名無しさん [2023/06/28(水) 06:39:28.56 ID:+Blkfaog.net]
じゃボタンを押したときに線を引かせたいときはそのボタンのイベントハンドラで
InvalidateVisual()実行させて線を引くコードはPaintSurface 内に記述するのか。
なんか面倒だし、PaintSurfaceが巨大化しそう。まぁPaintSurface内で自作関数呼べ
ば良いんだろうけど。

577 名前:デフォルトの名無しさん mailto:sage [2023/06/28(水) 08:32:25.75 ID:ngy9I2lE.net]
WM_PAINTでの経験が活かされますね

578 名前:デフォルトの名無しさん mailto:sage [2023/06/28(水) 09:38:16.64 ID:NAypQ388.net]
描画とかボタン処理は同じコンテクストで実行されるから
何も考えずに処理書けばいい

タイマーや通信など他の契機で描画したいなら工夫がいるだけ

579 名前:デフォルトの名無しさん [2023/06/28(水) 14:41:27.72 ID:BVdlIcNn.net]
漠∞!!!!
列∞!!!!!
后∞!!!!!!
機∞!!!!!!!
枚∞!!!!!!!!
図∞!!!!!!!!!
寿∞!!!!!!!!!!
非∞!!!!!!!!!!!
駅∞!!!!!!!!!!!!
頓∞!!!!!!!!!!!!!
官∞!!!!!!!!!!!!!!
司∞!!!!!!!!!!!!!!!
戸∞!!!!!!!!!!!!!!!!
城∞!!!!!!!!!!!!!!!!!
堺∞!!!!!!!!!!!!!!!!!!

580 名前:デフォルトの名無しさん mailto:sage [2023/06/28(水) 19:47:18.96 ID:HaY2f2W2.net]
>>573
PaintSurfaceイベント毎に(SKSurfaceクラスやSKCanvasクラスの)オブジェクトが変わるから(変わらないこともある)
ボタンのクリックイベント等で描画するのは無理じゃないかな

581 名前:デフォルトの名無しさん [2023/06/28(水) 19:54:32.34 ID:+Blkfaog.net]
求めていたものやっと見つけた。中国サイト。
良くできてるな〜。

await Task.Delayではなく、
SpinWait.SpinUntil(() => false, 1000 / 60); //每秒60帧
だそうだ。こんなの知らんわ。


https://www.dongchuanmin.com/net/3188.html
https://zhuanlan.zhihu.com/p/567618102

582 名前:デフォルトの名無しさん mailto:sage [2023/06/28(水) 20:35:15.51 ID:OvMs43YX.net]
中華リンク貼られても見ねーよ

583 名前:デフォルトの名無しさん mailto:sage [2023/06/28(水) 23:57:16.98 ID:i6K+M06u.net]
中国語、韓国語、ロシア語等、いろいろなページを見てるわ。

584 名前:デフォルトの名無しさん mailto:sage [2023/06/29(木) 00:40:34.34 ID:Wk17Qk7t.net]
DOBON.NET

Thread.SpinWaitメソッドはスレッドの同期のために

585 名前:熾狽ナ使用されているようですが、通常は私たちが使用する機会はないでしょう。 []
[ここ壊れてます]



586 名前:デフォルトの名無しさん mailto:sage [2023/06/29(木) 00:47:40.82 ID:puM++CKl.net]
>>576
ビジーウェイト状態になりそうなコードだから試してみたけど、予想に反してCPU時間の消費がそんなでもないな
ただ、環境によってループの頻度が違うみたいだ
.NET7: 毎秒約500回
.NET Framework 4.7.2: 毎秒約1万回

587 名前:デフォルトの名無しさん mailto:sage [2023/06/29(木) 01:11:48.23 ID:0ql7o6ud.net]
Win32APIのInitializeCriticalSectionAndSpinCount()みたいな実装をするためのものか。
ほんのちょっと待てばロックを取得できる場合に数千回ループで待って、
できるだけスレッド切り替えにかかる無駄な時間を避ける。

InitializeCriticalSectionAndSpinCount 関数 (synchapi.h) - Win32 apps | Microsoft Learn
https://learn.microsoft.com/ja-jp/windows/win32/api/synchapi/nf-synchapi-initializecriticalsectionandspincount

588 名前:デフォルトの名無しさん [2023/06/29(木) 06:25:02.66 ID:ejYRoEqU.net]
>>578
他国でもソースは同じだもんな。

589 名前:デフォルトの名無しさん mailto:sage [2023/06/29(木) 07:36:02.98 ID:G16HAkDq.net]
匿名掲示板に貼られた中華リンクのソースが必ず正しいと思ってるやつがいるのはおめでてーな

590 名前:デフォルトの名無しさん [2023/06/29(木) 10:00:47.73 ID:df8BmqTV.net]
MSの翻訳は糞だから日本語のMS公式観るより
英語のMS公式観た方が良いのは事実

591 名前:デフォルトの名無しさん mailto:sage [2023/06/29(木) 10:16:30.19 ID:e/2/rrz3.net]
匿名掲示板の中華リンクと公式の英語を同一視してるやつやべーな

592 名前:デフォルトの名無しさん [2023/06/29(木) 11:10:54.33 ID:df8BmqTV.net]
そんなやついたか?

593 名前:デフォルトの名無しさん [2023/06/29(木) 11:44:14.93 ID:ejYRoEqU.net]
碌に読んでないの多いよな。
>中華リンクのソースが必ず正しいと思ってるやつがいる
リンク張っただけなのにコレだもん。

594 名前:デフォルトの名無しさん mailto:sage [2023/06/29(木) 11:56:50.12 ID:IrCo4C0s.net]
ページ自体はまともでも、そこに貼られてる広告がヤバそう(偏見

595 名前:デフォルトの名無しさん mailto:sage [2023/06/29(木) 11:59:03.18 ID:3KkF7hHh.net]
悔しそうで草



596 名前:デフォルトの名無しさん mailto:sage [2023/06/29(木) 18:30:52.58 ID:puM++CKl.net]
>>576
このコードでSpinWait.SpinUntil()で待機させるメリットって何だろう
Dispatcher.Invoke()してるから1ループの実行時間は結構ばらつくし、Thread.Sleep()で十分な気がするのだけど
精度を出すなら、System.Timers.Timer使った方が良いし

597 名前:デフォルトの名無しさん mailto:sage [2023/06/29(木) 18:58:35.73 ID:AdXw454n.net]
60フレームだそうとしてるのになんともいえん感じにはなる

598 名前:デフォルトの名無しさん mailto:sage [2023/06/29(木) 20:40:19.95 ID:puM++CKl.net]
>>590
Thread.Sleep()で十分な気がするって書いたけど、
実際に試すとSpinWait.SpinUntil()のままよりThread.Sleep()に置き換えた方が明らかにFPS向上するなw
PCに負荷をかけたらまた違うのかねぇ

599 名前:デフォルトの名無しさん [2023/06/29(木) 21:07:27.01 ID:ejYRoEqU.net]
await task.delay ()だと例外で落ちるから。

600 名前:デフォルトの名無しさん mailto:sage [2023/06/30(金) 03:50:01.15 ID:G8RX/6Lm.net]
>>593
InvalidateVisual()呼ぶだけならUIスレッドで実行されるように気を付ければawait Task.Delay()で問題無いよ。

601 名前:デフォルトの名無しさん [2023/06/30(金) 07:00:48.53 ID:ClIVzebM.net]
よーし何か作ってみよう〜

602 名前:デフォルトの名無しさん [2023/06/30(金) 19:36:32.72 ID:ClIVzebM.net]
ここ という所で1sec wait掛けたい。どうすんだ?

public MainWindow(){
Task.Run(() =>{
try{
while (true){
Dispatcher.Invoke(() => {
canvas.InvalidateVisual(); });
_ = SpinWait.SpinUntil(() => false, 10); //每秒60帧
}
}
catch (Exception e){
}

});
}
void OnPaintSample(object sender, SKPaintSurfaceEventArgs e){
Render (e.Surface.Canvas );
}

public void Render (SKCanvas canvas){
SKPaint thickLinePaint = new SKPaint{
Style = SKPaintStyle.Stroke,
Color = SKColors.Orange,
StrokeWidth = 1
};

for (int x=0;x<=600;x++){
canvas.DrawLine(x, 0, x,100, thickLinePaint);
// ここ
}
}

603 名前:デフォルトの名無しさん [2023/06/30(金) 19:37:34.75 ID:ClIVzebM.net]
書き忘れ
skiasharp .netframework.

604 名前:デフォルトの名無しさん mailto:sage [2023/06/30(金) 21:02:19.59 ID:k2cLJ2r8.net]
フレームごとに呼ばれるシステムはフレームイベント内部でwaitさせるんじゃなくて
何フレーム目かとかの時間情報を持たせてその時間基準で全部描画するもの

605 名前:デフォルトの名無しさん [2023/06/30(金) 21:18:03.73 ID:ClIVzebM.net]
へー。今まで(?)の手法とは違うんですね。
難しい〜。



606 名前:デフォルトの名無しさん mailto:sage [2023/06/30(金) 21:40:58.12 ID:G8RX/6Lm.net]
>>596
ここ という所での待機はNG。UIスレッドを掴んだままで描画されない。(イベントが終わったら描画される)
https://ideone.com/vggwyV

607 名前:デフォルトの名無しさん [2023/06/30(金) 21:46:05.66 ID:ClIVzebM.net]
ほう。ご丁寧にソースまで。ありがとう!!

608 名前:デフォルトの名無しさん mailto:sage [2023/06/30(金) 21:51:04.15 ID:k2cLJ2r8.net]
実行環境違うだろうけどここ参考にしたら
https://learn.microsoft.com/ja-jp/xamarin/xamarin-forms/user-interface/graphics/skiasharp/basics/animation

609 名前:デフォルトの名無しさん [2023/07/02(日) 07:22:17.31 ID:NrLD8OfZ.net]
https://ideone.com/SdsWsv
フラグが多くなりそうだな。

610 名前:デフォルトの名無しさん [2023/07/02(日) 07:28:34.32 ID:NrLD8OfZ.net]
canvas.childlen.add()の場合はaddし過ぎる(500超えるとヤバい)と
酷いときは止まるけど
skiasharpは描画を続けても平気なのかね。

611 名前:デフォルトの名無しさん [2023/07/05(水) 21:26:03.46 ID:iW/VMTsC.net]
心電図、SkinaSharp版を作って試したけどCPU使用率は canvas.chilren.add版が
24%、Skina版が2.5%、他の項目は殆ど差なしだった。
限度はあるだろうが、Skinaはcanvas.clearしなくても軽いな。

612 名前:デフォルトの名無しさん [2023/07/08(土) 06:53:37.52 ID:9pZJE7Lr.net]
画面遷移のやり方わかんなくて調べてるけど
MVVM使わない方法しか出てこないよ...😢

613 名前:デフォルトの名無しさん mailto:sage [2023/07/08(土) 09:31:12.51 ID:rhn5/plT.net]
どういう調べ方をしたんだ
メッセンジャーを使ったりサービスを使ったりすればいいだろ
今の主流はサービスかな

614 名前:デフォルトの名無しさん mailto:sage [2023/07/08(土) 11:04:12.71 ID:gObB59CG.net]
Template Studioという拡張機能をVSにインストールしてアプリの雛形を作ると画面遷移のコードまでジェネレートしてくれる
WinUI版しか使ったこと無いが、恐らくWPF版も同様と思われる

615 名前:デフォルトの名無しさん [2023/07/08(土) 15:06:36.80 ID:EY12ydBx.net]
ホント、MVVMって手間ですね!



616 名前:デフォルトの名無しさん mailto:sage [2023/07/08(土) 15:26:11.20 ID:p+sO9/0D.net]
画面遷移は遷移サービスに依頼
サービスは作られるときにGUIのフレームの参照をもらってる

フレームをくれるのはメインウィンドウ(MetroWindow継承)のコードビハインド
メインwindowsを作るのはホストサービス
ホストサー・・・

本当に意味不明だわ

617 名前:デフォルトの名無しさん mailto:sage [2023/07/08(土) 15:42:14.13 ID:p+sO9/0D.net]
サービス作る
VM作る
画面など作る

だとサービス作る時に画面がないのでアウトだけど
先に画面作るのも気持ち悪いし画面でサービスを使わないと限らない

普通はどうしてるんだろ
MVVM原理主義者たちは?

618 名前:デフォルトの名無しさん mailto:sage [2023/07/08(土) 15:48:28.55 ID:Ug32iaVM.net]
>>610
> サービスは作られるときにGUIのフレームの参照をもらってる
サービス(モデル)がGUIのフレーム(ビュー)に依存してるって設計が悪んじゃないの

619 名前:デフォルトの名無しさん mailto:sage [2023/07/08(土) 15:52:16.34 ID:p+sO9/0D.net]
サービスはinterface越しで操作してたような気がするけどそもそもGUIに依存してもいいだろ

なんだか知らないことに口出しをするのもめんどくさいな

620 名前:デフォルトの名無しさん mailto:sage [2023/07/08(土) 15:57:28.09 ID:L9qo6Y2h.net]
GUIに依存するとデバッグが大変になるんだよ

621 名前:デフォルトの名無しさん mailto:sage [2023/07/08(土) 16:09:37.95 ID:0FxLf7Ij.net]
>サービスはinterface越しで操作してたような気がするけどそもそもGUIに依存してもいいだろ

それを直接依存させないのがMVVMやクリーンアーキテクチャの考え方。

622 名前:デフォルトの名無しさん mailto:sage [2023/07/08(土) 17:01:16.26 ID:p+sO9/0D.net]
考えるだけ時間の無駄だけど自作クラスNaviService(INaviService継承)がコンストラクタでGUIフレームをもらってるとして
それの何がいけないのか
デバッグやテスト用にはDummyNaviService(INaviService継承)を作るだけだろと思うが

フレームをわざわざラップさせる意味は多分ない
class NaviServiceに
MyFrame _frame;

bool GoBack()
{
return _frame.GoBack();
}
とおいて自作MyFrameに更に同じようなものを書くのはただの無駄

623 名前:デフォルトの名無しさん [2023/07/09(日) 08:22:10.73 ID:F2jcE+HG.net]
凄いよな。
で、難解なMVVM駆使して何作ってんだ?

624 名前:デフォルトの名無しさん mailto:sage [2023/07/09(日) 09:18:14.11 ID:bY6lUE+2.net]
誤)難解なMVVM
正)お馬鹿なMVVM

625 名前:デフォルトの名無しさん [2023/07/09(日) 10:36:40.65 ID:F2jcE+HG.net]
MVVMより、SkiaSharpなど2Dグラフィック系の勉強してる。MVVMは自分には無理や。。



626 名前:デフォルトの名無しさん [2023/07/09(日) 12:47:45.01 ID:/vDoZjEa.net]
一応WPFの思想はMVVMなんじゃないか

627 名前:デフォルトの名無しさん [2023/07/09(日) 15:57:12.07 ID:F2jcE+HG.net]
それはない。MS自体、使い分けと言ってる。

628 名前:デフォルトの名無しさん mailto:sage [2023/07/09(日) 17:55:53.87 ID:dWXLeXtb.net]
別に同じ物を書いても目的が達成すればいいのでは?
DIはDIP規則をやるための機構だが、マルチインジェクションはISP原則から必須になる。
Microsoft.Extentionを使うとシェルもナビゲーションも簡単でマルチDIは簡単だが、PrismはViewModelLocatorがマルチインジェクションに対応していないのが残念だ。
ViewModeにこそマルチインジェクションが必要と思うのだか・・・
Prismでは、追加インジェクション関数をViewModelに入れている。
MVVM否定? 今時MVVM否定論なんて流行るのか?

629 名前:デフォルトの名無しさん mailto:sage [2023/07/09(日) 20:36:20.21 ID:LqamH1A3.net]
マルチインジェクションてなんですか?

630 名前:デフォルトの名無しさん [2023/07/10(月) 06:31:31.15 ID:nluT7sbQ.net]
燃料噴射装置。ある意味正解。

631 名前:デフォルトの名無しさん mailto:sage [2023/07/10(月) 09:42:06.59 ID:+87QqsLJ.net]
そもそもPrismは開発終了で今から使っちゃいけないものだよな
それとも新しいのが出たんだろうか

632 名前:デフォルトの名無しさん mailto:sage [2023/07/10(月) 14:14:23.34 ID:h4a2e+7i.net]
開発終了したっけ?

633 名前:デフォルトの名無しさん mailto:sage [2023/07/10(月) 14:48:31.42 ID:6m3EwvsS.net]
この辺の話かな
https://github.com/PrismLibrary/Prism/releases/tag/DNF
>Prism is leaving the .NET Foundation. Before making any changes to the Prism repo, we are archiving the current source code which is under the .NET Foundation.

634 名前:デフォルトの名無しさん mailto:sage [2023/07/10(月) 15:40:16.84 ID:yIoSKETV.net]
>>627
https://github.com/PrismLibrary/Prism/issues/2683

.NET Foundationを離れて開発を続けるって書いてあるぞ

635 名前:デフォルトの名無しさん mailto:sage [2023/07/10(月) 16:13:40.89 ID:xp+Y6DUu.net]
Prismはちょっと重厚すぎてオブジェクト志向で言うところの単一責任原則から離れすぎてて使いにくい



636 名前:デフォルトの名無しさん [2023/07/10(月) 19:35:36.03 ID:nluT7sbQ.net]
で、マルチインジェクションって何だろ。

637 名前:デフォルトの名無しさん mailto:sage [2023/07/10(月) 20:01:58.73 ID:7HtUCVrE.net]
.NET FoundationはMVVM Toolkit推しみたいだね
Community.Toolkit(旧Microsoft.Toolkit)に含まれてるやつ

638 名前:デフォルトの名無しさん mailto:sage [2023/07/10(月) 23:29:38.85 ID:c1hj3m9Z.net]
自分もマルチインジェクションがわからん

639 名前:デフォルトの名無しさん mailto:sage [2023/07/11(火) 06:15:49.09 ID:tEhhj7Dg.net]
>>628
しかしそれから一年行方不明

640 名前:デフォルトの名無しさん [2023/07/14(金) 07:31:28.85 ID:uNvEuXay.net]
止めたんじゃね。殆どMVVM使われてないし作るメリットが見いだせない。

641 名前:デフォルトの名無しさん [2023/07/15(土) 16:17:56.97 ID:xVqfKfwW.net]
>>629
Prismは最初のDIコンテナのUnityがくっそ重かったけど、DryIocが事実上の標準になって軽くなったんだけどね

642 名前:デフォルトの名無しさん mailto:sage [2023/07/15(土) 20:40:31.18 ID:UiYhW/dJ.net]
Prismは実践的なmvvmの使い方とそれ用の軽いライブラリ提供しようとしてたら
ドンドン仕組みが大きくなって実践的と言うより宗教的になって来たので辞めたんだろ

MVVMのvm自動生成機能のためにフォルダ構造やファイル名まで指定してくるようになったらもう完全な宗教だろ

643 名前:デフォルトの名無しさん mailto:sage [2023/07/15(土) 22:13:09.54 ID:qTZx5K+e.net]
android studioでjavaでやっていますが、WPFの仕事が入りそうなんで質問です。
ViewModelと言うことで同じ様な組み方と思ったのですが、UIのデザイナーは無いのですか?
androidはポトベタ風(相対関係)にデザインして、xmlで若干補ったけど、こっちは全部xmlで記述するんですか?

644 名前:デフォルトの名無しさん mailto:sage [2023/07/15(土) 22:17:18.73 ID:UiYhW/dJ.net]
WinGUI3はそうだよ
開発が間に合ってない

WPFとかUWPとかwinformsはデザイナがある

645 名前:デフォルトの名無しさん mailto:sage [2023/07/15(土) 22:21:32.04 ID:IAi8wYQ9.net]
WPF〜UWPで首切りまくったせいで絶賛劣化中



646 名前:デフォルトの名無しさん mailto:sage [2023/07/15(土) 22:29:58.82 ID:WTK8CS0X.net]
>>637
Visual Studio Professional
70,858円

647 名前:デフォルトの名無しさん mailto:sage [2023/07/15(土) 22:41:20.26 ID:qTZx5K+e.net]
>>640
それmsdn3年付きで導入しました。

648 名前:デフォルトの名無しさん mailto:sage [2023/07/15(土) 23:04:31.50 ID:F8pGys1G.net]
>>641
C# で WPF を使った Hello World アプリ - Visual Studio (Windows) | Microsoft Learn
https://learn.microsoft.com/ja-jp/visualstudio/get-started/csharp/tutorial-wpf?view=vs-2022

649 名前:デフォルトの名無しさん [2023/07/16(日) 08:53:57.15 ID:kPWMqAlO.net]
>>637
絶対指定によるペタも可。ただしリサイズしない場合に限る。
50個くらいコントロールあるとき面倒なんでポトペタですませた。

650 名前:デフォルトの名無しさん mailto:637 [2023/07/16(日) 11:43:41.21 ID:Zkk0ia7G.net]
android studioのデザイナのGuidelineみたいな補助線と横幅の割合設定などありますか?

651 名前:デフォルトの名無しさん [2023/07/16(日) 15:04:36.79 ID:kPWMqAlO.net]
知らんけど、XAML習得を勧める。難しそうだが何とかなる。

652 名前:デフォルトの名無しさん mailto:sage [2023/07/16(日) 15:41:11.43 ID:Kbd6AKbP.net]
もういい加減機能追加が止まったwpfで新規アプリを作りたくないんだが
出来ないことの回避策を探す事に時間取られるWinUI3で作るのも地獄だし
もうずーっとWindowsのGUIアプリは今は作るな時が悪いで停滞してんじゃねーか

653 名前:デフォルトの名無しさん mailto:sage [2023/07/16(日) 15:48:37.64 ID:oB6p9OVz.net]
それを「枯れた」という。

654 名前:デフォルトの名無しさん mailto:637 [2023/07/16(日) 17:11:14.42 ID:Zkk0ia7G.net]
>>645
了解、android studioのデザイナ位で良いのでMSもやって欲しいな。

655 名前:デフォルトの名無しさん [2023/07/16(日) 17:26:09.46 ID:kPWMqAlO.net]
機能追加って何が欲しいんだ?
一通りあると思うけど。あとは工夫次第だろ。



656 名前:デフォルトの名無しさん mailto:sage [2023/07/16(日) 17:48:27.06 ID:NIqQTkMR.net]
最低限色付きのemojiは対応して欲しいな

今は自分で作るかnugetでいいのを探して使ってる

657 名前:デフォルトの名無しさん mailto:sage [2023/07/18(火) 15:46:29.61 ID:uuDyB+uu.net]
WinUI3公式のサンプル試そうと思ったら依存関係ないとかいう例外出て情報も少なくて早々に投げちゃった

658 名前:デフォルトの名無しさん mailto:sage [2023/07/18(火) 16:55:57.68 ID:0hGflB6j.net]
絵文字よりSVGだろぉ
はよせい

659 名前:デフォルトの名無しさん mailto:sage [2023/07/18(火) 19:29:02.67 ID:5UWIDgaz.net]
webのUI使ってるとWPFの表現力の限界が見える

660 名前:デフォルトの名無しさん [2023/07/18(火) 20:27:45.99 ID:mNXjpdDn.net]
デスクトップアプリなんてそんなもんだよ。
事実上、WIN32APIの画面でも問題ない。

661 名前:デフォルトの名無しさん [2023/07/18(火) 20:56:20.17 ID:AK2q1/EQ.net]
事実上?

662 名前:デフォルトの名無しさん mailto:sage [2023/07/18(火) 22:21:23.88 ID:SyIOChPo.net]
GUIはあらかじめ決められたUI/UXガイドラインに沿っていればよくて
あまり奇をてらう必要はないよな。というかかえって害悪だよな。

663 名前:デフォルトの名無しさん mailto:sage [2023/07/18(火) 22:27:51.77 ID:5UWIDgaz.net]
基本的なリングプログレスも用意されていないのでUI/UXデザインがどうとかいう話でもない

664 名前:デフォルトの名無しさん mailto:sage [2023/07/18(火) 23:05:33.75 ID:Isn7rP+W.net]
プログレスバーならあるし
ウエイトカーソルでいいだろ

665 名前:デフォルトの名無しさん [2023/07/19(水) 11:41:28.51 ID:x9es5cRL.net]
Webは退化



666 名前:デフォルトの名無しさん mailto:sage [2023/07/19(水) 12:35:30.77 ID:A8CV4uql.net]
WPFも外部のライブラリにはMSが出してないUI部品がいろいろとあるじゃん
>>657 のいうwebには外部のライブラリを使わずにhtml,cssの機能ですぐに使えるクルクルってあるのかい?

667 名前:デフォルトの名無しさん mailto:sage [2023/07/19(水) 12:47:37.05 ID:iEaOd/wb.net]
.gif

668 名前:デフォルトの名無しさん mailto:sage [2023/07/19(水) 20:38:09.57 ID:tH39MvqA.net]
>>660
どんなモノでも簡単に作れる
https://blog.stackfindover.com/css-progress-bar/

デザインが先に来て後から実装するのが普通なぐらい

669 名前:デフォルトの名無しさん [2023/07/19(水) 21:12:34.35 ID:Ov59KYrm.net]
>>662
#2 Pure CSS radial progress bar は三角関数必要だろ。どうやってんだろ。
なんかうまく工夫してんだろうか。

670 名前:デフォルトの名無しさん mailto:sage [2023/07/19(水) 21:28:55.59 ID:5c4o81Qs.net]
その昔、MacがToolboxとして標準ウィジットを搭載してユーザーインターフェースガイドラインを発表したら
GUIのデザインを独自にやりたいといってDOSプログラマは否定的だったとか。

671 名前:デフォルトの名無しさん mailto:sage [2023/07/19(水) 22:19:12.68 ID:1tsx70I0.net]
ProgressRingクラス使うより簡単には見えなかった

672 名前:デフォルトの名無しさん mailto:sage [2023/07/19(水) 22:41:45.76 ID:1biVaVka.net]
>>665
UI設計って基本作りたいラフスケッチ/ワイヤーフレームを先に決めてから実装に落とす

WPFじゃ簡単に出来ないどころか不可能だと思うけど...

673 名前:デフォルトの名無しさん mailto:sage [2023/07/19(水) 23:41:59.04 ID:gAbRA/Vo.net]
WPFは当初から基本的なAPIやコントロールがあまり実装されない
それでwinformsから借りてた
現在はUWPから借りてる
UX/UIの基準がもう更新されていないから今風なコントロールの基準からかなり遠ざかっている

674 名前:デフォルトの名無しさん [2023/07/20(木) 15:46:30.38 ID:q9wMynRV.net]
numericupdownやchartくらいは実装しておいて欲しかった

675 名前:デフォルトの名無しさん mailto:sage [2023/07/20(木) 20:05:17.02 ID:4+aEc/KW.net]
ただ固まらないように使ってるだけじゃないの



676 名前:デフォルトの名無しさん mailto:sage [2023/07/21(金) 00:08:18.44 ID:UX0onJ+y.net]
numericupdownはたまに作ると「まだ無いのかよ」って毎回がっかりしてる
グラフはともかく、これは必須でしょう

677 名前:デフォルトの名無しさん [2023/07/21(金) 06:41:34.68 ID:RqIZ05fo.net]
winformsにあるからな。WPF作るとき実装すれば良かったのに。簡単なコントロールだろ。

678 名前:デフォルトの名無しさん mailto:sage [2023/07/21(金) 15:50:52.27 ID:bOOjw2GE.net]
WPF用にコントロールの見た目を全部刷新すれば、もっと使う人も増えたんだろうけどな
WPFで作ってもコントロール表示がWinFormsのままだと萎える

679 名前:デフォルトの名無しさん mailto:sage [2023/07/21(金) 18:44:40.80 ID:wzbrv7/A.net]
WinFormはWin11風に変わるけど
wpfは変わらないのですが…

680 名前:デフォルトの名無しさん mailto:sage [2023/07/24(月) 19:29:13.93 ID:A+Ff56tZ.net]
新しい職場に来てWPFの案件なんですが正直レベルが高すぎてついていけません
今までもやったことはあったんですがまぁバックグラウンドにごりごりコード書いちゃうようなwinformsと大差ないようなので
当然MVVM全開でリアクティブでicommandでみたいな。正直このウインドウどこで呼んでるのどこでクリック処理してるのとかそのレベルでコード読むのが大変です
WPFwithMVVMを勉強するのになにかいいリソースってありますか。日本語書籍とか全然無いですよね。随分昔に出たXAMLプログラミングなる書籍は一通り読んだんですがそれにはMVVM一切無くて

681 名前:デフォルトの名無しさん [2023/07/24(月) 21:00:07.43 ID:KKtTNygQ.net]
それはキツイな。同情するわ。

682 名前:デフォルトの名無しさん mailto:sage [2023/07/24(月) 23:28:55.70 ID:L/yEgKIa.net]
俺はネットの情報だけでMVVMを覚えたけど、
リアクティブとicommandが何のことか分からない素人なので、
残念ながら助言できない。

683 名前:デフォルトの名無しさん [2023/07/25(火) 00:06:37.05 ID:GKGh2WSx.net]
ReactivePropertyとかだったらokazukiのブログを一通り読むと少しは分かるかな

684 名前:デフォルトの名無しさん mailto:sage [2023/07/25(火) 00:52:00.23 ID:kw8ArH5v.net]
リアクティブでごりごりされてたら読む気がおきない

685 名前:デフォルトの名無しさん mailto:sage [2023/07/26(水) 11:55:11.15 ID:BzcAP5MI.net]
wpf のShowModalでダイアログ出しても
タスクバーで親ウインドウ選べてタブでフォーカス移動とか出来るのは
なんか対策ありますか?



686 名前:デフォルトの名無しさん mailto:sage [2023/07/26(水) 17:54:38.19 ID:iOxX8HKc.net]
普通にOwnerの設定忘れじゃなくて?

687 名前:デフォルトの名無しさん mailto:sage [2023/07/27(木) 19:09:01.36 ID:T1U/urv+.net]
Ownerは設定しています
マウスで親ウインドウをクリックならちゃんと子ウインドウがチカチカしますが
タスクバーで選ぶと選べてしまいます

688 名前:デフォルトの名無しさん mailto:sage [2023/07/27(木) 20:05:05.04 ID:4LOg1fU5.net]
>>679
俺のWPFのWindowクラスにはShowModalというメソッドがない
Ownerを設定してShowDialog()したらフツーにあんたが希望してる動作になったぞ

689 名前:デフォルトの名無しさん [2023/07/27(木) 20:56:02.18 ID:83Yj8N2k.net]
そう。多分勘違い。

690 名前:デフォルトの名無しさん mailto:sage [2023/07/28(金) 01:56:53.18 ID:fJMcb68e.net]
申し訳ありません確認不足でした
スペルはミスです
それとメインウィンドウからの一段回目のダイアログは問題ありませんでした
サブのサブを出したときに変な感じです
imgur.com/a/Ny0LW7A

691 名前:デフォルトの名無しさん mailto:sage [2023/07/28(金) 02:42:36.52 ID:tnpoO9lU.net]
これは知らなかったな
マウスで操作する分には何も起こらないけど
キーボードで操作したらボタン押せちゃって、もう1個ウィンドウが開いた

692 名前:デフォルトの名無しさん mailto:sage [2023/07/28(金) 02:47:31.78 ID:tnpoO9lU.net]
サンブルとしてボタンをクリックしたら、サブウィンドウが出るように作ったってことね

693 名前:デフォルトの名無しさん mailto:sage [2023/07/28(金) 03:22:34.24 ID:V2VuB5te.net]
・Win32 API の EnableWindow で開く前に自身を無効化しておく(false)
・子の Closed イベントを購読しておいて子が閉じた時に Enablewindow を使用して有効化(true)する
・そのあとで子を ShowDialog

でいけないかな

694 名前:デフォルトの名無しさん mailto:sage [2023/07/28(金) 03:36:24.33 ID:V2VuB5te.net]
Closed イベントじゃなくて ShowDialog の後で EnableWindow でもいいかも
子が閉じるまで処理止まるはずだから

695 名前:デフォルトの名無しさん mailto:sage [2023/07/28(金) 03:42:52.01 ID:V2VuB5te.net]
var hWnd = new WindowInteropHelper(this).Handle;
EnableWindow(hWnd, false);
win.ShowDialog();
Enablewindow(hWnd, true);

みたいに。試してないが。



696 名前:デフォルトの名無しさん mailto:sage [2023/07/28(金) 09:10:07.71 ID:rw0v5Bhm.net]
>>684
俺の環境だとまったくそうならない。win11でのvs17.6.5で.net framework4.8.9167.0
バージョンは何?

697 名前:デフォルトの名無しさん mailto:sage [2023/07/28(金) 12:08:54.40 ID:tnpoO9lU.net]
>>684
キーボードで操作出来ちゃうのは、↓で防げるな
子ウィンドウをShowDialog()する前/後で、親のウィンドウのIsEnabledプロパティを無効/有効

>>689
効果なかった

698 名前:デフォルトの名無しさん mailto:sage [2023/07/28(金) 23:47:06.43 ID:fJMcb68e.net]
>>690
win10, win11どっちもで
vs2017express と vs2022community
.NET Framework4.8 と .NET6

vs2022からデバッグで起動すると
そもそも動きがダメダメで駄目だった
exe直接開かないと話にならない
何だこりゃ

699 名前:デフォルトの名無しさん mailto:sage [2023/07/29(土) 11:50:08.48 ID:I6XWshKt.net]
そもそもモーダルwindowからモーダルをまた開くのがおかしいのでは?

700 名前:デフォルトの名無しさん mailto:sage [2023/07/29(土) 16:07:13.22 ID:KgtriUaM.net]
>>692
バージョンにそれほど差異はなさそうだ。
だがこっちで.NET 6と7でも試したがどうにも再現しない
コードはこれ
https://i.imgur.com/3ImqsVk.png
https://i.imgur.com/w3gN1Bi.png

仮想環境上のほぼ素のWin10に.NET Framework 4.8で作ったexeを持っていって実行しても再現しない

他の人は再現しているようだから起こるんだろうね。だが俺には無理そうだ
最後に念のため当方の環境を書いておくよ

Windows 11 Pro
バージョン 22H2
OS ビルド 22621.1992
Windows 10 Home
バージョン 22H2
OS ビルド 19045.3208

Microsoft Visual Studio Community 2022
Version 17.6.5
VisualStudio.17.Release/17.6.5+33829.357
Microsoft .NET Framework
Version 4.8.09032

RuntimeInformation.FrameworkDescriptionで取れる.NETのバージョン
.NET Framework 4.8.9167.0
.NET 6.0.20
.NET 7.0.9

701 名前:デフォルトの名無しさん mailto:sage [2023/07/29(土) 16:57:46.82 ID:zcThIP3a.net]
>>694
そのコードで再現する
実行時の操作方法が合ってないと思われ
タスクバー使ってない気がする

702 名前:デフォルトの名無しさん mailto:sage [2023/07/29(土) 17:29:00.89 ID:k66xJEd7.net]
.vsとbinとobj削除したプロジェクトzipでくれ

703 名前:デフォルトの名無しさん mailto:sage [2023/07/29(土) 19:57:44.82 ID:I6XWshKt.net]
だからShowDialogしたwinodwからShowDialogするアプリってなんだよ
実際

704 名前:デフォルトの名無しさん mailto:sage [2023/07/29(土) 20:31:56.47 ID:rLsm4ZL4.net]
普通にありそうだけど。
例えばモーダルの設定画面から起動するファイルダイアログとか。

VSのオプションで、「プロジェクトおよびソリューション」→「場所」とか

705 名前:デフォルトの名無しさん mailto:sage [2023/07/29(土) 22:57:25.29 ID:I6XWshKt.net]
ああそういうことか

やっとお前らが何を言ってるのか理解した
結論としてはモーダルwindowをタスクバーに出してるんだろ
それじゃダメ

win.ShowInTaskbar = false;
その後にshowdialog



706 名前:デフォルトの名無しさん mailto:sage [2023/07/29(土) 23:03:32.75 ID:I6XWshKt.net]
何か特殊な状況とかあってハマってるのかと思ったら古来から伝わる話だった

707 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 00:27:23.64 ID:SWW1XK+d.net]
>>695
なった、なった。俺の勘違いだった。すまん

モーダルのダイアログボックスがモーダルのダイアログボックスを開くことはある。たとえばこんな感じ
https://i.imgur.com/wWF3YI5.png

すでに >>699 に書かれてるとおり、この動作がこれまで問題になってないのは、上の画僧のようにモーダルにするダイアログボックスはタスクバーに表示させないのがUI作成の作法だからだろう
モーダルにするダイアログボックスというのは所有ウィンドウと内容が強く関連し、その一部のようなものだからモーダルにするのだし、単独では存在しないのだから、タスクバーに出すのは先頭の所有ウィンドウのみにすべきだと思う

よって、ShowInTaskbarをfalseにすれば問題解決

708 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 09:17:38.39 ID:ra9EA2uQ.net]
>>701
こんなん普通だろ
モーダルウインドー表示中に
システムエラーでるパターンは大体こうなる

709 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 18:51:53.90 ID:7eSyhjys.net]
いろいろやってみたけど
モーダルではない Show で出したウインドウからShowDialogしてもダメダメだし
メインウィンドウ以外はタスクバー使うなって事なのかな?
最小化すると懐かしい雰囲気が味わえるね
IsEnabledで被害を防ぐのはいいんだけど戻ったときに親のフォーカスがなくなるのが難点
子ダイアログではなく親ウインドウをタスクバーから消すのもやってみたがウインドウまるごとチラつくのでやな感じ
これなら親を消すほうがいいな

710 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 20:45:37.33 ID:XpUMrXC2.net]
今更どうにもならんとは思うが、ページ遷移型で組んでコンテントダイアログ使うのが一番いい
ウインドウは一つだけだから何も考えなくていいからね

711 名前:デフォルトの名無しさん mailto:sage [2023/08/04(金) 22:18:29.56 ID:p+l3H84b.net]
久しぶりにwinUI3触った
あんまり進展はないようだ

GUIデザイナがないのは致命的で知らないコントロールの機能を手探りで実装していくのは大変だった
優秀な人には余裕なのかもしれないけどここまで辛い状況とは思わなかった
知っている人向けなんだよ全部が

712 名前:デフォルトの名無しさん mailto:sage [2023/08/04(金) 22:50:44.24 ID:p+l3H84b.net]
UWPで開発してそれをWinUI3に移植するのが近いのかと思ったけど
それも怪しい
なんか思ってたのと全然違う

713 名前:デフォルトの名無しさん mailto:sage [2023/08/04(金) 22:51:51.21 ID:H/tEfCiJ.net]
>>705
HTML、CSS とかはどうやってるの?

714 名前:デフォルトの名無しさん mailto:sage [2023/08/04(金) 22:54:22.35 ID:p+l3H84b.net]
>>707
ググれば山ほど記事が出てくるでしょ?
国内外問わずに

winUI3はそれがない
あってもMSのクソドキュメント

715 名前:デフォルトの名無しさん mailto:sage [2023/08/04(金) 22:58:35.63 ID:p+l3H84b.net]
WinUI3は基本のテンプレートのルートにあたるレイアウトコントロールがstackpanelになってる
しかもorientationがhorizontal

XAML入門者がGridをデザイナ抜きで使いこなせるとは思えないからだろう
Gridも仕様変更か追加されてて普通に使いにくい



716 名前:デフォルトの名無しさん mailto:sage [2023/08/04(金) 23:02:46.68 ID:p+l3H84b.net]
デザイナがあればツールボックスにコントロールが一覧表示される
そこに表示されているアイコンや名前から機能を類推して選択することが出来る
それがない

手探りはまずいと思ったのかストアからギャラリーがインストールできるようになってるけど
出来が悪い
残念ながらサンプルとコードが一致してない
コピペで動くようにすらなってない

717 名前:デフォルトの名無しさん mailto:sage [2023/08/04(金) 23:36:37.10 ID:0JBhJhQY.net]
HTML扱えたらXAMLも似たようなものだったけどな

718 名前:デフォルトの名無しさん [2023/08/04(金) 23:39:18.35 ID:ma+YRo6X.net]
私みたいな出来の悪い人はWinUI3挫折してWPFでやってる

719 名前:デフォルトの名無しさん mailto:sage [2023/08/04(金) 23:50:32.05 ID:YGjl9jfE.net]
>>711


720 名前:デフォルトの名無しさん mailto:sage [2023/08/04(金) 23:52:28.56 ID:oW25VfjB.net]
>>709
GridよりStackPanelの方がレイアウト時の負荷が軽いんじゃなかったっけ

721 名前:デフォルトの名無しさん mailto:sage [2023/08/05(土) 00:01:18.60 ID:MhNBXByr.net]
デザイナー作るのそんな難しくないのにな。
やる気の問題か?

722 名前:デフォルトの名無しさん mailto:sage [2023/08/05(土) 00:06:20.15 ID:49wwu17R.net]
逆に Grid をデザイナで調整する方が難しくない?
余計な Margin が設定されたりするし
プレビュー程度にしかつかわないな

723 名前:デフォルトの名無しさん mailto:sage [2023/08/05(土) 00:14:34.58 ID:ddH4mDWJ.net]
WinUI3のテンプレートの出力を小一時間イジっただけで全部把握しているように振る舞えるメンタルは尊敬に値するわw

724 名前:デフォルトの名無しさん mailto:sage [2023/08/05(土) 00:16:24.64 ID:ZG2jS4fE.net]
VBからポトペタでやってきた人にはそれができないと困っちゃうのかな?

725 名前:デフォルトの名無しさん mailto:sage [2023/08/05(土) 08:48:23.47 ID:Jl4w36Dl.net]
xamlをGUIで設計する奴なんておらんやろ・・・おらんやろ?



726 名前:デフォルトの名無しさん mailto:sage [2023/08/05(土) 09:32:31.05 ID:K+IHkxAt.net]
バインドの書式とかサッパ

727 名前:鰍セからつこうとるよ []
[ここ壊れてます]

728 名前:デフォルトの名無しさん mailto:sage [2023/08/05(土) 09:48:07.14 ID:wQaB7TT9.net]
>>717
テンプレートってこんなだぞ?
頭大丈夫か?
<Window>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button x:Name="myButton" Click="myButton_Click">Click Me</Button>
</StackPanel>
</Window>

729 名前:デフォルトの名無しさん mailto:sage [2023/08/05(土) 09:50:01.90 ID:wQaB7TT9.net]
>>719
バインドはGUIでやってる
IDEでサポートされるようになってWPFをまあまあ使うようになった
それまでは全然使わなかったけど

730 名前:デフォルトの名無しさん mailto:sage [2023/08/05(土) 10:05:49.53 ID:ddH4mDWJ.net]
>>721
少し上で5連投している彼のことだよ

731 名前:デフォルトの名無しさん mailto:sage [2023/08/05(土) 10:08:37.40 ID:wQaB7TT9.net]
>>723
だから俺だよ

732 名前:デフォルトの名無しさん mailto:sage [2023/08/05(土) 10:25:30.61 ID:wQaB7TT9.net]
WPFのデザイナはドンドン進化を続けていてかなり便利になっている
かなりの部分が手で書かなくても確認し選べる
自分のミスも見えるし自動入力なのでそのそもミスが起こらない

733 名前:デフォルトの名無しさん mailto:sage [2023/08/07(月) 14:28:05.32 ID:xnajTjTc.net]
コントロールのデザインはいつ進化しますか?

734 名前:デフォルトの名無しさん mailto:sage [2023/08/07(月) 20:31:20.53 ID:ianDibNu.net]
webview2が出て全て解決したはずだが

735 名前:デフォルトの名無しさん mailto:sage [2023/08/08(火) 01:05:30.69 ID:IyV15CeD.net]
ファイルをwebview2にドラッグ&ドロップした時、セキュリティをすっ飛ばしてファイルのフルパス取得出来るようになった?



736 名前:デフォルトの名無しさん mailto:sage [2023/08/08(火) 07:57:17.91 ID:rQ7TZ/NI.net]
WinUI3は流石に安定し始めているしデザインだけじゃなくてxamlも進化しているし
そろそろ使い始めても良いんじゃないかな
unpackagedでコンパイラの出力をそのままコピーするだけで動くのも大きい

737 名前:デフォルトの名無しさん mailto:sage [2023/08/08(火) 08:44:11.20 ID:6xGdan8t.net]
ユーザー報告のissue放置しまくってるのに安定とはこれいかに

738 名前:デフォルトの名無しさん mailto:sage [2023/08/08(火) 08:46:49.69 ID:+QZUW2Vj.net]
WinUI3はWPFよりも流行らずに死ぬと思うね

739 名前:デフォルトの名無しさん mailto:sage [2023/08/08(火) 09:34:36.21 ID:12xdoC8F.net]
皮WPF+WebView2+reactでok(*бωб)

740 名前:デフォルトの名無しさん mailto:sage [2023/08/08(火) 11:08:28.84 ID:DR6HV6l/.net]
Googleのカイゼン活動についていく気は無い

741 名前:デフォルトの名無しさん mailto:sage [2023/08/08(火) 13:12:34.17 ID:egrx38+v.net]
でもマテリアルデザインは使うんでしょう?
まさか生WPFのまま使い続けてるとか・・・?

742 名前:デフォルトの名無しさん mailto:sage [2023/08/09(水) 11:20:59.99 ID:+lD1iL0g.net]
VirtualizingStackPanel.IsVirtualizing="True"なItemsControlでスクロール位置を保存したい。
ScrollViewerのScrollableHeightやExtentHeightは仮想表示がONのためか、同じ表示内容でも毎回変化してしまい
指標となる不変の高さが存在しない

何かいい方法ないですか?

743 名前:デフォルトの名無しさん mailto:sage [2023/08/10(木) 13:28:25.50 ID:Aji0Vi4e.net]
>>735
1. 可視範囲内で先頭の要素のインデックスを保存しておく。
2. 復元時は ItemContainerGenerator.ContainerFromIndex
を使ってインデックスから要素を取得。
3. その要素の BringIntoView を呼び出す。
みたいな感じでいけるかも。

744 名前:デフォルトの名無しさん mailto:sage [2023/08/10(木) 16:54:00.98 ID:mo1X7ejl.net]
>>736
ありがとうございます。
表示内容側からアプローチですね
がんばってみます

745 名前:デフォルトの名無しさん mailto:sage [2023/08/10(木) 19:57:26.05 ID:doLXtH58.net]
WPFのWindows 11 themeも全然進んでねぇし
WinUI 3といいひどすぎる



746 名前:デフォルトの名無しさん mailto:sage [2023/08/11(金) 13:37:47.66 ID:JGKsK+J9.net]
なんもいじってないvisualstudioだと画面のビジュアルが上に表示されてその下にxamlのエディタが出るじゃないですか
それでまぁそのエディタが狭い。数百行とか1000行を超えるような画面になるとまぁあの狭い画面じゃまったく把握できない
みなさんどういう風にいじって開発されてます?

747 名前:デフォルトの名無しさん mailto:sage [2023/08/11(金) 13:47:06.17 ID:HA39DxTe.net]
>>739
モニタがフルHDだったりしない?
WQHD だと特に狭いと感じないな。
縦向きにするといんじゃね?

748 名前:デフォルトの名無しさん mailto:sage [2023/08/11(金) 20:02:52.96 ID:dFkQ56Sr.net]
>>739
上下ではなく左右に

749 名前:デフォルトの名無しさん mailto:sage [2023/08/12(土) 23:21:45.24 ID:CdwkORH9.net]
あー左右に並べられたんですね。ボタンで一発ですか。ありがとうございました
なぜ気づかなかったかな

750 名前:デフォルトの名無しさん mailto:sage [2023/08/15(火) 19:02:52.22 ID:d9T9MMRf.net]
>>738
Win11のGUIがなぜ一向にFluent化されずハイスペックマシンでもカクついたりするほどパフォーマンスが悪いのか疑問に思ってたんよ
ところが海外でWin11からシステムファイルをどこまで削除して起動できるかという試みがあって
極限まで削除したその結果なんとGUIがWin10そのものだったんよ
要するにWin11はWIn10のShellにXamlを使ってWinUIでOSのGUIを個別に作ってやがったんだよ

まさかWin11のGUIってOSネイティブじゃないからコピーなんかのコモンダイアログすらFluent化されてないんじゃ・・って怪しんでた通りで唖然としたわ

だってデスクトップだけ見てもmacOSやLinuxはGUIがアップデートされたらネイティブだからすべて統一されてるじゃん
こんな統一感のないGUIは世界中探してもWin11だけよ
まさかWindowsのコアであるタスクバーやExplorerやタスクマネージャーまでWinUIだったとは思わんかったわマジでMSってもうまともなエンジニアがおらんのやなって思ったわ

751 名前:デフォルトの名無しさん mailto:sage [2023/08/15(火) 20:19:13.24 ID:sK7X6CvI.net]
winui commnity callの動画見てもエクスプローラでWinUI使ってるって言ってるやろ
具体的にはしらんがで、
エクスプローラで使われてる機能のバグだけ修正して終わり

752 名前:デフォルトの名無しさん mailto:sage [2023/08/15(火) 20:27:56.15 ID:WNL7znVK.net]
>>743
その海外のサイト教えて

753 名前:デフォルトの名無しさん mailto:sage [2023/08/15(火) 20:28:03.58 ID:8at2H6c0.net]
こういうレベルの誤解が出来るってある意味スゲーよな

754 名前:デフォルトの名無しさん mailto:sage [2023/08/15(火) 23:14:22.56 ID:vZJb8fI+.net]
Windows3.1のアプリですら動かせるように過去バージョン互換をつけるならそう簡単にUIを作り変えることなんて無理なんだろ

755 名前:デフォルトの名無しさん mailto:sage [2023/08/16(水) 22:24:28.98 ID:jhvhNJs7.net]
そもそもガラスっぽい窓なんかVistaでやってんのよ。8で発作のように板切れにしただけで、本来昔からもっさり半透明じゃん。



756 名前:デフォルトの名無しさん mailto:sage [2023/08/17(木) 20:31:53.08 ID:Mmj008cu.net]
https://medium.com/flutter/whats-new-in-flutter-3-13-479d9b11df4d
flutter 3.13来たね

4ヶ月おきリリースサイクルの安定感

757 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/08/18(金) 01:54:49.98 ID:ZBuWhXbf.net]
WPFで専ブラ作ってみたので評価してもらえないだろうか
https://github.com/mdysdev/HC5

githubも初めて使うので不備があったら申し訳ない。
ビルド済みzipもReleaseのところから落とせるはず

https://i.imgur.com/QdNCIvW.png
簡単な外観変更も可能
https://i.imgur.com/2pakYM2.jpg

レス書き込みは出来るけどスレ立ては出来ない。
機能的にはJaneStyleに及ばないけど徐々に追加していきたい。

758 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/08/18(金) 01:57:49.99 ID:ZBuWhXbf.net]
datにフリーでアクセスさせてくれる8月いっぱいまでの短命になってしまかもだけど・・

759 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 11:43:46.81 ID:TTcuER0I.net]
評価って、何の評価よ?
技術的な評価?それともアプリのできの評価?
まぁ、後者としてコンセプトは何よ?それが見えない

760 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 11:49:31.42 ID:GXfltUMT.net]
.NET7が必要な理由ってあるのかな?
.NET4.8.1じゃ動かない?

761 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 11:50:33.68 ID:TTcuER0I.net]
既存のアプリのここがすげぇ使いづらいからそこを改善したアプリを作りますとか
新しいコンセプトのアプリ思いついたので作りますとか
そういうのがないならユーザー目線で新しいアプリいらん..

762 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 11:56:48.32 ID:ubEEPNgg.net]
オプソってのはいいんでは

763 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 11:57:14.51 ID:TTcuER0I.net]
ちょっと前にもMAUI君が5chブラウザつくるといって1ヶ月で逃げ出したけど
少なくとも彼はsikiとか既存のアプリの見た目がショボいからWinUIの今時のアプリ
作るといってたが

逆にそっちが先にどういうアプリ作るのか言ってくれないと
この段階で評価なんかしようがない

764 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 12:01:25.04 ID:zHuPFGZF.net]
>>750
使ってないが画像見る限りWindowsの専ブラ特有のクソダサいUIで使う気にならない
せめてWinUI3.0でAcrylicやMicaのFluent Designを実装しろよ
俺はWin 11の自作アプリは全部WinUI 3.0でAcrylic化してるしそのためにWPFではなくWinForms使ってる
だから俺は専ブラだけはmacOSのBathyScapheをずっと使ってるわ
あとオタク特有の自己主張と承認欲求の気持ち悪いアニメ壁紙が本当に無理
この必要のないオタクアピが生理的に受け付けないからアプリを評価する気にもならない今後は気をつけろ

765 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 16:51:56.55 ID:GXfltUMT.net]
何だかんだでsikiも慣れると快適だな
もう旧い専ブラに戻れないかもw



766 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 18:15:27.63 ID:frpqeMB+.net]
>>750
直近の騒動に触発されて情報収集&開発をしたのだと推察すると、
もしコンセプトが決まっていないのなら、UIや専ブラ特有の機能は最小限にして
5chの仕様変化にいち早く追従するリファレンス実装(動くドキュメント)をめざす
と言うのはどうでしょうか?

767 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 18:49:00.48 ID:TTcuER0I.net]
この段階で評価しようがないと書いたのは、ボロクソに書くとあれかなーと思って
お茶を濁したんだけど同じ意見のボロクソに言ってる人がいるんで
俺も正直に言うけど
>>757の言うとおりで見た目がダサすぎて使う気すらおきない

で、さっき書いた通りコンセプトとロードマップもわからないので将来性についても
何も評価できん

768 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 18:53:02.10 ID:TTcuER0I.net]
ただ、一ついいとこ見つけたのは
ソースコード見る限りMAUI君チームより技術力は全然上そうなので
開発のペースは速そうw

769 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 18:57:48.56 ID:VmqYer8d.net]
>>750
GUIを頑張ったみたいだね
まずは経験を積んで次のブラウザへのモチベーションを高めるんだ

2chブラウザなり5chブラウザを作る際にいつも悩むのはLib名
数字からスタートする名前には出来ないからな
ひっくり返してhc5

770 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:02:18.39 ID:VmqYer8d.net]
お前らぼろくそに言ってるけどこれが初めてならかなりいい方だよ
どこもけなすところがないぐらい

771 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:05:54.87 ID:zHuPFGZF.net]
車輪の再発明どころか劣化コピーとか誰も使わねーって遠回しに言ってんだよ
なんでみんな5chやしたらばをiPhoneやAndroidの専ブラで見てるかというとWIndowsはフォントやUIやUXが10年以上もクソゴミのままだからなんだよ
俺も嫌気がさして5chだけサブ機のMacBook ProでBathyScaphe使ってるくらいWIndowsの専ブラはゴミ

772 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:08:42.52 ID:VmqYer8d.net]
個人の勉強のために作ったものに対して車輪の再発明だとかクソジジイみたいなことを言ってるんじゃないな
昭和かよ

今はそういう時代じゃない

773 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:16:49.20 ID:VmqYer8d.net]
さっきソースをひととおりざっと見たけどまあ基本的な仕組みをちゃんと使えてて良い作りだと思います
ビジネスロジック自体はあまり実装されていないのでGUIから興味が薄れたらそっちを実装するのも良いと思います

うんこれからこれから
この調子でガンガンコード書きましょう

774 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:19:47.55 ID:DRhexSXV.net]
お前ら文句しか言わないのか。

775 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:20:22.30 ID:VmqYer8d.net]
文字のエンコードは "Shift_JIS"じゃなくてコードページ932使ったほうがいいと思う(個人の感想です)



776 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:21:24.55 ID:TTcuER0I.net]
>>763,765
あのさ、技術的な評価とユーザ目線のアプリの評価を分けて考えような...

ユーザ目線のアプリの評価に初めて作ったアプリとか開発者の経歴とか関係ないから
そういう目線では現状ボロクソに言ってるだけ

技術的な話するなら、仮に初めて作ったアプリなら君のいうとおりだと思うよ

777 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:22:56.03 ID:XwGGDBgg.net]
>>767
ID:zHuPFGZF が口だけ番長なのはみんなわかってんねんw

778 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:23:49.25 ID:TTcuER0I.net]
だから、最初から>>752に書いたけど作者がどういう評価を求めてるのかわからない
っていったじゃん

それで俺は後者としてユーザ目線のアプリの評価しただけ

779 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:27:37.04 ID:VmqYer8d.net]
WPFスレでユーザー目線の評価求めるとは思えんが…

それはさておきコード品位や実装度見てコード書いた人間の技量はある程度判断できるだろう
相手がミシュランシェフなのか子供がケーキ作ってるのかぐらいわかる

それが出来ないで噛みついてくる奴はほおっておけばいいんだなあ

780 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:27:40.02 ID:6IXOAKAq.net]
クソジジイ大杉問題
しかも自慢気にWinForms使ってる宣言とかイカれてるw

781 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:30:47.50 ID:TTcuER0I.net]
>>772
だから、それに確信が持てなかったから俺はちゃんと後者(アプリの評価)って断って俺は話進めた
他は知らんが

782 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:44:10.22 ID:zHuPFGZF.net]
まーたWinUI3.0がXAMLじゃなくWin32アプリ向けのアップデートだと知らないニワカの勉強不足の低脳のアホが沸いてて草生える
まぁ低脳に物教えるのが俺の仕事じゃねーから一行もコード書いてないWinUI3.0触ってすらいないニワカのアホの煽りは完全スルーするがな
ゴミ専ブラをゴミと言われて顔真っ赤で自演してるとかさすがアニメオタクだなキモすぎる
本当に擁護がいるならお前らがコントリビューターになってプルリク送って支援してやれよ
まぁバカどもは口だけで100%やらねーだろうがな
俺はフォントもUIも美しいBathyScaphe使い続けるわ

ちなみにこれがBathyScapheなWindowsの専ブラのゴミUIとは次元が違う
https://i.imgur.com/M2AL2cV.png

783 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:44:16.86 ID:gKDyG49H.net]
連投で多く見えるが、貶してるのは二人だな

784 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 20:21:20.96 ID:ubEEPNgg.net]
>>775
そんな違わなくね

785 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 20:31:42.39 ID:mKYiQp9K.net]
>>775
とりあえずダークモードならかっこいいって思ってるでしょ



786 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/08/18(金) 21:57:15.17 ID:ZBuWhXbf.net]
普段はJaneStyle使ってましたが、ご推察の通り7月のゴタゴタで専ブラ作ってみようと思い立った。
事前に色々調べて、8月初めから作成に着手して昨日なんとか形になった。

確かにコンセプトって言われると困るけど、自分の中ではJaneStyleの使用をやめたいっていう単純な理由。
Windows環境でさくっと読み書きできるツールになればいいかなと。
本業はC#でWebアプリのバックエンドをやってる。WPFは数年前にちょろっとやったのを必死に思い出しながらというところ。
GUIアプリの経験があまりないので、業務にも耐えうるようなものになっているか知りたかった。
.NET7にしたのは最新のC#の勉強も兼ねてってことなのでご容赦を。

9月以降もdatアクセス手段を提供してくれるなら開発を続けたいけど、またAPI Keyとか始まったら諦めるしかないかも。

UIが野暮ったいのは時間をかければ治せるかもだけど、鯖側の仕様変更はどうしようもないです

787 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 22:03:57.97 ID:o8PnwUuK.net]
>>775
大差なくて草なんだが

788 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 22:22:27.91 ID:VmqYer8d.net]
完全にスレチなんだけどコンセプトはそんなに大げさに考えなくていいと思うよ

従来のアプリにしたいのかwebライク(YahooやBingのポータル風とか)なのか
jane styleを踏襲したいのか他のアプリを踏襲したいのか
一度の沢山スレを表示したいのか(その方式も旧tweetdeckやマルチwindowなどいろいろ)1つだけでいいのか
遊びを多く入れたいのか実用本位なのか
拡張性を充実するのか自分で全部実装したいのか
重くてもいいのか軽量をめざすのか

可能性は無限大

789 名前:デフォルトの名無しさん mailto:637 [2023/08/18(金) 22:28:53.50 ID:IBEnmxTA.net]
>>775
笑うなw

790 名前:デフォルトの名無しさん mailto:637 [2023/08/18(金) 22:34:16.95 ID:IBEnmxTA.net]
5chはスマホアプリのchmate位で十分だよ。

791 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 22:36:33.99 ID:G7CpfWCv.net]
chmateがwindowsで動く時代だからな

792 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 23:07:15.21 ID:VmqYer8d.net]
大体1個目はjane系のクローンになってしまう
やればやるほどクローンの完全実装はそんなに楽じゃないと気が付く

頑張って実装を進めて自作機能も充実させたところででも別にjaneでいいんじゃないかと言うことになる
そこで終わる
クローンの機能の実装のためのコーディングは非常にやりがいはあるけどそれ本当に必要な努力なのかと

こだわりがないなら一個目は適度なところで切り上げて別のコンセプトで作るのがおすすめ

793 名前:デフォルトの名無しさん [2023/08/18(金) 23:08:53.42 ID:i6F+l2qQ.net]
>>775
え、もしかして釣りだったの?

794 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 23:14:02.82 ID:TTcuER0I.net]
何度も書いたが評価してって言って何を評価してもらいたいのかよくわからんのよ
使いやすくみんなに使ってもらいたいアプリとして評価して?
と思ったからユーザ視点でコンセプトとか求めたけど

単に技術的にコードレビューして評価してほしいなら
アプリのコンセプトなんて求めないし

君が単に「評価」してといったがみんなに何をしてもらいたっかったわけ?

795 名前:デフォルトの名無しさん [2023/08/18(金) 23:19:42.15 ID:i6F+l2qQ.net]
> WinUI 3.0でAcrylic化してるしそのためにWPFではなくWinForms使ってる

ここでWinFormsが出てくるのが本当に分からない



796 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 23:21:02.08 ID:qWXv9m9x.net]
わからんのなら

797 名前:黙ってろよ []
[ここ壊れてます]

798 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 23:25:04.25 ID:TTcuER0I.net]
自分がしゃべりたいようにしゃべるだけだよ
カス

799 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 00:32:40.65 ID:GSj6RrWf.net]
そもそも>>750の専ブラはThemeがLightなアクリルなんだが、彼はダークならアクリルだと思っているんだろうか?

800 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 01:56:58.32 ID:1/hroNhs.net]
WPFのスレでWPFアプリを作って公開したらWinFormsでやれと怒られる。
理不尽すぎる

801 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 02:11:07.74 ID:C10c8hLy.net]
>>791
何言語?

802 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 08:33:41.11 ID:wdqaA6jW.net]
効いてて草

803 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 08:57:39.75 ID:+QDwvDWv.net]
作りたいなら手を付ければいいのにな

モックなりプロトタイプなり、人によっては基本設計なりスケッチなり、
やりたいアイデアがあるなら端からやってみればいい

804 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 10:14:20.56 ID:xxLsZdb0.net]
>>775
フォントってモニターの解像度が高いと綺麗に見えるんだよ
そんなことも知らずにフォント叫んでるのお前だけだからな

805 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 11:39:14.41 ID:Wl/qjPve.net]
そういや、DATアクセスは8月まではフリーアクセスどうこう言ってるけど
運営は8月移行はどうなるかわからんとか言ったん?



806 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 14:14:58.58 ID:Wl/qjPve.net]
うんこWinUI 3の最新版リリースされたやん
Version 1.4 Preview 2
次がStableか
つかさ、新しいItemsViewコントロールとか
最初
ListView/GridView

ItemsRepeater

ItemsView

807 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 14:19:30.21 ID:Wl/qjPve.net]
The new ItemsView control displays a data collection. ItemsView is similar to the ListView and GridView controls, but is built using the ItemsRepeater, ScrollView, ItemContainer and ItemCollectionTransitionProvider components. It offers the unique ability to plug in custom Layout or ItemCollectionTransitionProvider implementations
なんだItemsViewはItemsRepeaterなどの合体コントロールか

で新しいレイアウトのLinedFlowLayoutと
AnnotatedScrollBarか

808 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 14:33:48.82 ID:Wl/qjPve.net]
ItemsRepeaterの問題は選択機能がなく、自前で実装(見た目とかも)しなきゃいけなく
億劫だったが
ItemsViewはそこら辺もListView/GridView見たくやってくれるようなったんだよね?

809 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 20:28:42.15 ID:N/OxtUO+.net]
ちゃんと手を動かして形にしてるだけ偉いと思うんだ
夏休みダラダラしてた俺とは天と地ほど差がある

810 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 20:43:28.47 ID:yJmfO0+S.net]
今はさすがに休もうよ
秋はコーディングの季節だ!

811 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 21:50:19.57 ID:m38bh0Ky.net]
近頃は秋なんかほとんどないけどね。

812 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 10:28:12.08 ID:ol1P3YlW.net]
>>779
UI/UXは技術じゃなくセンスだけども、頑張って欲しい
テーマを選べるだけでもいいかもしれないが
あとやっぱり機能として、スレ立ては欲しいな

813 名前:デフォルトの名無しさん mailto:sage [2023/08/22(火) 22:27:09.72 ID:gdIlDAxT.net]
Vmという接頭辞がついているのにviewmodelじゃなかったり、過去の使われなくなったコードが全部残ってたり、1クラスが1万行超えてたりetcetc
おまけにそもそも設計のドキュメントは一切無い。外部向けの資料のみ。ひどい会社に来てしまった……

814 名前:デフォルトの名無しさん [2023/08/22(火) 23:11:38.63 ID:6gJfdiDb.net]
JTCあるある

815 名前:デフォルトの名無しさん mailto:sage [2023/08/23(水) 00:06:39.19 ID:nS+GPZ+c.net]
>>805
そういう愚



816 名前:sはマ板でやれ
だからお前は駄目なんだよ
[]
[ここ壊れてます]

817 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 01:54:01.54 ID:9YaJu4I5.net]
>>751
datのフリーアクセスって8月いっぱいなの?

818 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/08/24(木) 20:49:59.75 ID:FZQDzoDX.net]
>>804
スレ立てテストできる板ってどこかにありますか?

819 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 20:56:22.03 ID:U1/Wc6cv.net]
>>809
Anarchy実況
https://agree.5ch.net/liveanarchy/

数分で消えるしdatも残らず消滅するから気楽にテストできる

820 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/08/24(木) 21:07:04.44 ID:FZQDzoDX.net]
>>810
ありがとうございます。機能追加してみます

821 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 22:13:47.33 ID:Tz9EhHoC.net]
がんばれ!

822 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 23:13:10.10 ID:ypVJRmCU.net]
>>811
あのコードは何人で書いたんだ?

823 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 23:34:26.49 ID:Ax2+ubkj.net]
どう見ても一人だろ

824 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 11:36:32.15 ID:UpJ7Bk8S.net]
初心者じゃないんだから、5chブラウザつくるとしても
少し挑戦的な事してここの視聴者楽しませてよ

825 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 12:52:15.75 ID:d6TpiO9T.net]
ツマンネ。もっと気の利いたこと書き込めよ



826 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 14:29:43.74 ID:QKHGYPpz.net]
コード見るとわかるけど違和感しか感じない
C++?とか

827 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 14:37:18.36 ID:QKHGYPpz.net]
ともかくいろいろとちぐはぐしてる
人に見られることを前提とした普通に自分で組むには不要なコメントとか
大きなサービスとか…

828 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 15:09:41.41 ID:hcnbZQTk.net]
なんだそのふわっとした具体性のない指摘は
無理にケチ付けることないのに

829 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 15:24:12.70 ID:QKHGYPpz.net]
コードを見ればわかるよ

830 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 15:35:06.57 ID:QKHGYPpz.net]
もともとc++などを含めた他の言語で野良コードを書いてた人が
ビジネス向けの専門学校みたいなところでC#を学んでDIとか色々知識があるような印象

そして丁寧にコードを書いてるけどまだC#が血肉にはなってないので元の癖が出る
それか仲間の先生に当たる人が乱雑だったので変な癖が残っているか

誰か別の人間がところどころコードを書いたのかコピペしたのか

831 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 15:44:44.01 ID:FILnRN1t.net]
本当に具体性のない空っぽな指摘だな
こういうのが上司につくと辛い

832 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 17:09:36.31 ID:UpJ7Bk8S.net]
https://devblogs.microsoft.com/ifdef-windows/windows-community-toolkit-8-0-pre-release/

833 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 17:15:40.72 ID:lyifkqna.net]
>>822
上司じゃなくてもキツイだろ
関わりたくねーわ

834 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 17:15:42.20 ID:QKHGYPpz.net]
>>822
いやいや指摘でもなんでもない
違和感を書いてる
そして何も気が付かないにぶーい人に自分の見解を伝えてる

835 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 17:28:24.81 ID:QKHGYPpz.net]
このスレの他の人はオリジナリティの話をしてる
昔からあるドラマや漫画で出てくるような芸術作品や演奏に対する指摘のようなもので

君の作品には情熱が感じられない教科書通りでつまらないみたいな話
いまだとばらかもんが丁度似た様な話をしてる

自分は今現在はそこまでの話をする段階にないと思う
適当なところで切り上げて色々デザインして経験してみたほうがいい気がする
その後に作ったものが自分が楽しんで使ってることに喜びを感じるレベルになれば人からもそういった面で良い評価を貰えると思う



836 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 17:41:00.84 ID:UpJ7Bk8S.net]
せっかくアプリ作って公開しましたと面白そうなネタが投下されたが
だめそうだな

837 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 17:56:06.42 ID:hcnbZQTk.net]
それっぽいこと言って偉そうにしたいだけか
どうりで中身が皆無なわけだ

838 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 18:25:05.72 ID:W2Um6gjp.net]
アクロバティックなものを所望ならBlazor Hybridもいいと思うのよ
実用性あるかは別の問題として、前例のないことをやるという点は満たしてる

839 名前:デフォルトの名無しさん mailto:637 [2023/08/26(土) 22:00:12.76 ID:16WUCkmH.net]
書き方なんてどうでも良いのよ?
ゲイツはみんなと違う画期的なコードで時代を切り開いた。

840 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 00:46:17.43 ID:W3b+7qIa.net]
>>825
では俺も ID:QKHGYPpz のレスを見て指摘でなく違和感を書こうかな
誰の何の役にも立たない独り言なら、多数が集う掲示板でなくチラシの裏にでも書いて誰にも見せず捨てればいいのに
会話できず、するつもりもないと開き直るなら掲示板にくるのは無駄だし害悪ですらある
これに気が付かないにぶーいID:QKHGYPpzに自分の見解を伝えてみた

841 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 09:09:39.66 ID:4wYaVVdN.net]
お前の方こそブーメラン刺さってねw

842 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 11:36:52.09 ID:3H5CXIUM.net]
>>830
どんなの?

843 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 12:46:27.21 ID:W3b+7qIa.net]
>>832
そのとおりだよ。わざと >>825 を真似て醜悪な文面にしたのだから
>>831 のレスは ID:QKHGYPpz の鏡だよ

844 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 12:58:47.33 ID:t0g5o5TS.net]
そんなこともわからない>>832の頭の悪さときたら
ってことでしょ

845 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 13:51:55.91 ID:vknuNgDk.net]
viewmodelsって対応するviewに表示するためのデータとロジックを持ってるって認識で合ってる?
コード見てると他のviewmodelファイルでインスタンス化されたりプロパティが呼び出されてたりしててあれこういうのありなの?って



846 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 14:43:13.39 ID:Qf4ZUzrP.net]
例えばどのファイルのどこがおかしい、改善すべきと言わないと

847 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 21:19:33.66 ID:vknuNgDk.net]
機能修正の事前準備としてリファクタリングさせてください
とか言ってもひとまず機能修正優先でとか動いてるんだから余計なことするなとか言われるのがオチだよね

848 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 21:40:22.11 ID:IUQW/AR/.net]
もうその5chブラウザの事ほっとけよ
作者があまり顔出さないのに
作者不在のままここで毎回ゴタゴタが発生であほらしい

ほっとくのが吉

849 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 19:25:42.52 ID:Ed5E1clR.net]
心理的安全性の低いスレだな

850 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 19:58:34.85 ID:BueC5+dS.net]
攻撃しても何もいいことはないのになあ…
googleの本でも読めば良いのに

851 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 20:00:38.72 ID:BueC5+dS.net]
ふと思ったことや感じたことを言うと叩かれる → 心理的安全性が低い
他人の行ったことを否定する → 心理的安全性が低い

本人に自覚がないのが恐ろしい

852 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 20:44:27.43 ID:QJ/DbKdl.net]
マスゴミって批判しないで、記者が萎縮してしまいます。でも自分達は批判も攻撃もするけどね。みたいな二重基準?

853 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 21:29:09.23 ID:6uHv/wqC.net]
技術的な話とかに関して色々批判はいいと思うけど
最後は人格攻撃と不毛な事になるのが多いからなw

854 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/08/30(水) 09:16:29.73 ID:rmxbhQ8d.net]
MVVMって例えばWPFでいうなら、VMでSystem.Windows名前空間をusingしないっていう認識で合ってる?
要はVMだけでOS非依存のdll化できるか

855 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 10:42:16.63 ID:mm/q7vOw.net]
そんな定義は聞いたことないな



856 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 11:12:09.35 ID:FKrsdOsE.net]
究極の疎結合って意味では合ってる
CommunityToolkit.mvvmもプラットフォーム非依存だし極端な話、上側がWinUI3でもVMそのまま動くってことでしょ

ただ実際問題すげーめんどくさいとは思うがw

857 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 13:38:27.33 ID:Zjd+Qgp2.net]
だね、5chブラウザのほうでViewModelでウィンドウクラス?を参照してたのは気になってた

まぁ、最初の1回だけは勉強のためMVVMガチガチにやって頑張ってもいいし
そこは本人次第

858 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/08/30(水) 14:56:17.68 ID:rmxbhQ8d.net]
ありがとう、System.Windowsを分離してみる。


>>848
確かにWindowは分かりやすく「ん?」ってなるけど、
ClipBoardとかBitmapImageとかもみんなSystem.Windows配下なんだよね。
これらの処理を全部持ってくと、Viewにも結構ロジックが必要になりそう。
UIフレームワーク固有の機能なんだから疑問を持つのがおかしいのかもだけど

859 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 23:23:43.59 ID:I012WzjW.net]
View固有の機能じゃなければ分離しなくてもよい

860 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 00:04:15.85 ID:tqam1yBh.net]
その前にenumの機能のおさらいをしたほうが良い

861 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 01:17:12.25 ID:UxD03clT.net]
MVVMといえばうちの会社でのプロジェクトでさぁ例えばだけどmodelにcircleクラスがあるとするじゃん
んでそれをコンストラクタの引数に取るVmCircleなるクラスをわざわざ作るのよ。んでそれを各種viewmodel内部でいじるんだけど、VmCircleはCircleのviewmodelとか言ってるの
おかしいでしょそれはviewmodelでもなんでもないでしょって言ったんだけどいやviewmodelだって
これ俺がおかしいのか?

862 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 01:44:14.25 ID:k/7LWfvb.net]
>>852
サーバサイドでも使う Entity とかを .NET Standard で共有して、
クライアントサイドではそれをINotifyPropertyChanged を実装したクラス (VM) に変換する必要がある、
もしくは将来的に変更通知が必要になる可能性を見越してそうしておく、
とかならありえなくはないんじゃない?

863 名前:デフォルトの名無しさん [2023/08/31(木) 07:06:57.56 ID:BoGIe8nI.net]
>>845
変な理解しているな。
ViewModelでBitmap加工などは普通にやる。 当然、System.Windowsをusingする。
Viewのエレメントに直接アクセスするなという事だけ。 いわゆる委譲だな。
例えば、Viewにパラメーター渡すために、IxxxViewRepositoryインターフェースをViewに継承させ、そのレポジトリをViewModelにインジェクションすればそれでOK。
ContainerのChildrenは、ViewModelにダイナミック生成バインドできないので、Add、Remove、Move操作をそういう方法でやる。
DDDなどのクリーンアーキにチャレンジしてみれば、その辺はインチュイティブに理解できるようになるよ。

864 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 07:56:35.25 ID:UxD03clT.net]
>>853
そもそもviewmodelってviewとmodelをつなぐ役割をするものじゃないんですかね
別に対応するviewなんて何も無いただデータとそのメソッドを持つだけのクラスをviewmodelと言えるんでしょうか

865 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 11:36:17.81 ID:GMvg4a1K.net]
https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/stable-channel#version-14

うんこ品質の時間です
突然1.4がリリースされやがった
9月末が予定じゃなかった?



866 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 12:07:44.06 ID:+9swg57/.net]
>>854
それ、すごい労力かかる割にはWPF専用のViewModelになっちゃうじゃない。
いまUIライブラリ移行の過渡期なんだし、再利用できるViewModelとか考えないの?

867 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 12:40:08.29 ID:k/7LWfvb.net]
>>855
俺の理解が間違ってるかもしれないけど、
その Circle クラス?が画面上の円のコントロールかなにかの DataContext になってるなら ViewModel であるといえるんじゃないだろか。
画面上のどこにもバインドしてないんなら違うと思うけど。

例えば ListBox の ItemsSource にバインドするコレクションの各要素の型は ViewModel と言えると思う。
ListBoxItem を 1つの View として見た時にその DataContext になるから。

↓これとか ItemViewModel というのを定義してる。
https://blog.okazuki.jp/entry/2016/04/08/233620
ItemViewModel

868 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 13:22:03.44 ID:WwAx/vtc.net]
viewmodelはmodel用のviewじゃなくてview用のmodel
各種viewmodelでcircleモデルのview用の変換やviewからの入力に対してモデルとの橋渡しをする場所としてvmcircleを作ってるんならまあ理解できる

869 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 14:00:23.53 ID:+wESSzqb.net]
何なら納得するんだろうか?

画面に複数のタブページがあるアプリがあって
メインVMに複数のタブページ用のVMがリストなどで持たれている(直接のモデルじゃなくて)

これでおかしいと思うのかどうか

870 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 15:36:13.08 ID:KSwuKB63.net]
XAML Islandsとか名前がよくない
絶海の孤島のイメージだ

871 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 15:53:03.73 ID:A6umWt5F.net]
Islandsで孤島?

872 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 16:07:40.97 ID:qE8kvwKZ.net]
複数形だから孤島ではないな

873 名前:デフォルトの名無しさん [2023/08/31(木) 16:52:36.04 ID:BoGIe8nI.net]
>>857
VieModelの再利用?
再利用するのはViewの方であって、ViewがViewModelへのバイディング権がある。
それで、フレキシブルな画面構築ができる。
ロジックの再利用は、Domain層にまとめる。

874 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 17:36:52.11 ID:+9swg57/.net]
>>864
ん?例えばMAUIとかWASMに移植するときはViewModelを全部作り直すってこと?
大変じゃね?っていうかそれってMVVMじゃなくね?

MVVMって画面とロジックの分離であって、画面が変わるたびに作り直さなくちゃいけないなら
それはViewModelではなくViewの範疇では?

875 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 18:44:34.81 ID:+wESSzqb.net]
ViewModelはviewとmodelの間が互いにデコボコしてて
綺麗にくっつかない場合に間に入るつめもの

もともときれいにくっつくなら不要

Viewが変わればまた形に添ったViewModelが必要になる



876 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 19:17:40.59 ID:0zAKJthF.net]
クライアント側にあるView層にViewとViewModelがある
サーバー側にModel層があって自分の場合はREST full APIで作られたSaaS出ある場合が殆ど
業務ロジックはModel層内に全てあるので再利用可能

877 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 19:22:25.33 ID:0zAKJthF.net]
View層にはWPFを動作させるための処理しかない

View層をReactで作ってもそこにあるのはReactを動作させるための処理しかない

業務ロジックは全てサーバー側にあって全く無駄にはならない

878 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 21:51:01.50 ID:lnQo2el+.net]
>>762
今思いついたんだが「sugar dragonfly」はどう?

879 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 16:45:19.11 ID:ba1FgNHl.net]
機器の通信サンプルアプリをWPFで作るのは有り?
サンプルを参考にする相手がWPFを使ってるかわからないから、WinFormsの方が無難かな?
一番無難なCUI版は出来たからコアの通信部分は変わらなくて、通信結果を見やすくするだけなんだけども

880 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 17:16:03.23 ID:E0s4hvcN.net]
ActiveXでExcel VBA対応するのが無難だな

881 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 19:47:27.67 ID:+613Qa0i.net]
>>866
それはVMじゃない。どっちかというとMVCのCに近い。

882 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 21:56:19.74 ID:42muqi3u.net]
>>866の説明はCよりVMよりだと思う
VMはModelを特定のView用に変換した状態を持っておくもの

MVC
Vーーーーーーーー 監視 ーーーーーーー>M
Vーーー入力ーー> C  ーーー入力ーー>M
V<ーーーーーーー 通知 ーーーーーーーーM

MVVM
Vーーー監視ーー> VM ーーー監視ーー>M
Vーーー入力ーー> VM ーーー入力ーー>M
V<ーー通知ーーー VM <ーー通知ーーーM

883 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 22:06:47.51 ID:XOi5r4E6.net]
みんなめちゃくちゃだな..

884 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 22:16:55.21 ID:+613Qa0i.net]
>VMはModelを特定のView用に変換した状態を持っておくもの

なにその珍解釈

885 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 22:33:11.78 ID:dq5C6mfu.net]
一人だけ俺様理論がおるな



886 名前:デフォルトの名無しさん mailto:637 [2023/09/01(金) 22:55:04.64 ID:86UzGWyS.net]
みんなVIEWを差し替え差し替えでMODELを流用することやってるの?

887 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 23:31:31.63 ID:hl1Bipr4.net]
いや全然

888 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 00:18:16.99 ID:fOS98KnE.net]
自己満ですなーー
WPFのMVVMがまさに究極の自己満

MVVMとかvue.jsとかangular、androidとかでも普通に使うし
そっちは実装コストもかからん

889 名前:デフォルトの名無しさん mailto:637 [2023/09/02(土) 05:21:08.01 ID:6VujaKd3.net]
android studioはwindows formのポトベタと同じ感覚なんだが?

890 名前:デフォルトの名無しさん [2023/09/02(土) 08:18:23.73 ID:Fau+Wvgs.net]
>>877
モニターアプリでは良くやるよ。
化学プラントの製品毎の画面やライン管理の製品毎の32~4096接点モニターとかね。
モニターと非常停止等の共通アクション画面なら流用する。
ただし、Viewのビハンイドコードトリミングは必要。
それらを再利用というには微妙だな。 VMはペアで消費するものと考えるのが普通。
再利用というのはロジックの再利用を言うのが一般的じゃね?

891 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 09:33:36.47 ID:fwdoqn2z.net]
結局VMに何らかの描画以外のロジックを書いてる人が多いんだろうなと
mvvm原理主義者じゃなければ別に好きなようにしたらいいんだが

WPFは結局どのように実装すべきなのかハッキリとしたパターンが確立されなかった
これが一番の問題だった

明確に役割分担してオブジェクトの生死を適切に管理してる人間がどれだけいるのか

892 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 09:49:03.02 ID:fOS98KnE.net]
>>875
あってるぞ
MをVに表示させる為に必要な形に変えたものだ
例えばM(Web APIのResult)をVM(Vにバインディンク可能なデータ型)に変換してVと接続する

893 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 10:06:25.37 ID:fwdoqn2z.net]
状態と言う意味が通じていないので話をしても無駄

v vm mでそれぞれ状態は持ってる
普通はmの状態のことを話すんだけど双方の話がかみ合っていない

894 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 10:12:13.25 ID:fwdoqn2z.net]
本来はMと全層から利用されるビジネスロジックが主体なんだけど
vmでガッツリロジックなり制御なりのコード書いてる人が多い

そういう人から見るとvmは状態を持っていると言う主張になる

895 名前:デフォルトの名無しさん [2023/09/02(土) 10:21:43.71 ID:Fau+Wvgs.net]
>>882
だね。
ViewModelはインスタンスプールの場という認識が無いとそうなるね。
Bitmap加工にしても、ロジックは別の層に置くもの。
ロジックはDomain層、ドライバーはInfrastructure層でカキコしておけば再利用というスタイルの本筋が見えてくる。



896 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 10:42:05.01 ID:ePvjWEyO.net]
wikipediaだとこうだな。VMはVが表示すべき状態を保持するというのが普通の理解だと思う。

ViewModel
ViewModel(ビューモデル)はViewを描画するための状態の保持と、Viewから受け取った入力を適切な形に変換してModelに
伝達する役目を持つ。すなわちViewとModelの間の情報の伝達と、Viewのための状態保持のみを役割とする要素である。

897 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 10:53:39.97 ID:UWvP69T4.net]
という事はバリデーションもvmじゃなくてmでやるの?

898 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 11:59:17.23 ID:+7egXD0v.net]
>>887 の定義だとちょっと密に思えてしまうな


https://learn.microsoft.com/ja-jp/dotnet/architecture/maui/mvvm

大まかに言うと、ビューはビュー モデルを "認識" し、
ビュー モデルはモデルを "認識" しますが、
モデルはビュー モデルを認識しておらず、
ビュー モデルはビューを認識していません。
したがって、ビュー モデルではビューをモデルから分離させ、
ビューとは独立してモデルを進化させることができます。

899 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 12:40:51.82 ID:CPf5VJuY.net]
君たち一旦モデルの事はわすれろよ
めちゃくちゃすぎる

900 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 13:16:00.96 ID:CPf5VJuY.net]
>>882の言うようにハッキリとしたものがないと同意した上で言わせてもらうが
>そういう人から見るとvmは状態を持っていると言う主張になる
VMは状態をもつ

めちゃくちゃすぎる
普通に状態を持つ

901 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 13:18:09.94 ID:fwdoqn2z.net]
アプリケーションの真の実態はMなんだから忘れることじゃないな
勘違いされがちだけどMはデータ置き場でもライブラリでもないアプリケーション本体

VMは表層でしかない
メッセージの仲介所
上で書かれたインスタンスプールでもない
仕事をするにあたりただどこかにあるモデルへの参照を持っているだけ

ModelAとModelBを参照して計算してModelCに入れるのはVMの仕事ではない
VMはMに単純なメッセージ飛ばすのが仕事

902 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 13:35:29.82 ID:CPf5VJuY.net]
ロジックを単にロジックと表現したりするとこみると
ロジックをビジネスロジックとプレゼンテーションロジックに分けて
考えてないよね

ここで>>882のじゃあ明確なその区別のルールは?って問題が出てくるが

903 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 13:44:31.42 ID:fwdoqn2z.net]
どうも自分の書き込み全体じゃなくて部分的な文章しか見てもらえてない気がする

>>884とかガン無視されてる

904 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 13:46:57.02 ID:fwdoqn2z.net]
あ、vmが状態を持つのはそのように書いたからであってあまり意味はない
適切なのかどうかは知らない

905 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 14:04:49.20 ID:CPf5VJuY.net]
でも>>892の見ると、君完全にFatModelの某riga◯◯氏の主張だよね



906 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 14:09:38.75 ID:fwdoqn2z.net]
>>896
誰それ?
VMは可能な限り薄くすべきだよ

907 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 14:19:20.78 ID:CPf5VJuY.net]
>VMは可能な限り薄くすべきだよ
いやいや、ViewModelは作る画面をモデル化したものだから
それは作る画面次第だから
VM薄くするために要件にまで介入する気なの?

(もちろん、VMに限らずスパッゲッティ排除したりすることはいいことだが)

908 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 14:32:46.57 ID:Opj29vAW.net]
>>888
サーバー側でも結局必要になる処理なんで
バリデーション機能を提供するWebAPI定義してそっちでやってる
パフォーマンスもローカルでやるのと変わらん

自分設計の案件は
小計行の合計値など画面に表示されるものほぼ全てサーバー側での計算値だ

909 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 14:40:30.69 ID:CPf5VJuY.net]
>メッセージの仲介所
>デコボコしてて綺麗にくっつかない場合に間に入るつめも
これが先じゃないんだよ
例えば、学生を扱う時に「Student」クラス作ってNameとかAgeとか
状態持たせて「モデル化」するのと同じように

作る画面を同じように状態抜き出してロジック与えて名前を
付けたものがViewModel

こっちが先

910 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 14:48:44.91 ID:CPf5VJuY.net]
で、ViewModelの実装において画面が複雑なら、ビューモデルに書くプレゼンテーションロジック
が複雑になるし、Modelにドメインロジックの実行を依頼したりする

だから、
>メッセージの仲介所
とか表現が極端すぎる
ViewModelは画面をモデル化したもので、立派に独自のプレゼンテーションステート
やプレゼンテーションロジックも持つ立派な1つのエンティティです

911 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 15:38:06.62 ID:5BMaIqoW.net]
>>900
>作る画面を同じように状態抜き出してロジック与えて名前を
>付けたものがViewModel
作る画面(View)のもとになるのがModelなのでその過程をどの程度意識しているかどうか
言い換えればViewを所与のものとして受け取っているかどうかの違いでは?

それ以外の点はほぼ賛同できる

912 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 16:13:13.84 ID:ePvjWEyO.net]
>>902
>作る画面(View)のもとになるのがModelなのでその過程をどの程度意識しているかどうか

アプリケーションの実装はそう考える場合があるかもしれんがMVVMパターンとして
MとVMにそういう関係があることを求めてはいないと思うがな。

913 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 16:37:06.13 ID:CPf5VJuY.net]
>>903
いいこというね
>>890のモデルを忘れろってそういうことなんだわ
ViewModelはあくまでも作る画面をモデル化しておとしこんだのであって、
その作る画面がどのModelが元になってるか関係ないんだわ

914 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 17:02:01.28 ID:fwdoqn2z.net]
自分でロジックブーメラン投げて刺さってるし触れるだけ無駄なんだなと

ヒマつぶしにriga○○が何なのか調べてみたけどわからなかった
更に調べるとかなり前から懐かしのugayaのことをrigayaと言ってる人物がいる
多分この人なんだろう

rigayaと言うのは別人がいてNVEncの作者

915 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 17:08:17.47 ID:CPf5VJuY.net]
>>905
ごめんごめん
rigayaはNVEncの作者でugayaのほうか悪かった



916 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 17:18:55.85 ID:fwdoqn2z.net]
ロジックブーメラン

917 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 17:35:30.95 ID:CPf5VJuY.net]
何、しつこく
それも謝ってほしいのか?
すみませんでした

918 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 17:45:52.02 ID:ePvjWEyO.net]
なんの話をしているんだろうと思ったがこれか?
https://ugaya40.hateblo.jp/entry/model-mistake

919 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 17:57:45.40 ID:CPf5VJuY.net]
そうそれ
全部Modelに押し込めってことか?って事で
FatModelって勝手に呼んだけど

完全な正解はないから俺も含めてみんなおれおれMVVMを信じるだけw

920 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 18:42:57.12 ID:ePvjWEyO.net]
俺も>>909はVMの要件とは思わんな。
ただ、V→VM→Mというクリーンアーキテクチャで考えるならMからVMへの依存性逆転に使うインターフェースは
M側に含めることになるかな。それが「Modelの影」にあたるのかもしれんが。
言葉としては違和感があるな。どっちかというと「Viewの影」の方がしっくりくる。

921 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 22:11:29.82 ID:fOS98KnE.net]
「Viewの影」か...

VMにはMからの応答データ以外にも
カレントフォーカスやら
リスト系入力コントロールのカレントインデックスやら
入力コントロールの変更前値なども保持してるね
これらはMではあまり取扱かわない

922 名前:デフォルトの名無しさん [2023/09/03(日) 18:43:28.44 ID:PKYmB8Sw.net]
>>911
Mにインジェクションはまずくね?
そもそも、EntityやModelは定義とロジックが入るクラスで、かつ、Domainに属するクラス。
ViewとViewModelはApplicationレイヤー。
Domainとは、外部参照ができない領域で、そこにPropertyインジェクションはリスクを覚悟した使い方。
何事もトリッキーが必要になる事はあるが、SOLID原則は可能な限り守るべき。

923 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 18:47:29.66 ID:McvOhRnv.net]
この5chブラウザって実行できねぇじゃねぇかよ
とりあえずWindows 11 ProのSandbox環境立ち上げて
実行してもSeach app in the store?だっけ?
とダイアログが出て実行できねぇ
.NET 7のランタイムとかいれてもだめやわ
だるっ

924 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 19:07:48.99 ID:Zxyqi4pM.net]
>>93
>Mにインジェクションはまずくね?

どこからそんな解釈が?

925 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 20:37:38.19 ID:TWuH3asg.net]
本来のMVVMだとVMがMに命令を出してその結果をVMのプロパティーに反映だが
コレクションはMに無いとどうにもならないし、それをVMがリダイレクトする
この時点で初期のVMMVは破綻しているよな



926 名前:デフォルトの名無しさん mailto:637 [2023/09/03(日) 21:08:54.26 ID:0JPdNbB1.net]
デザイナーとプログラマーと別けてやるならそうだか、自分一人でやるんならマイルールで頑張れば良い。他人は他人、気にせずに行こう!

927 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 21:16:42.81 ID:Zxyqi4pM.net]
>>916
>本来のMVVMだとVMがMに命令を出してその結果をVMのプロパティーに反映だが

本来のMVVMと言うが、MとVMのやり取りにおける役割分担ってそんなに明確に定まったものはないと思うが。

928 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 22:05:14.34 ID:Dhh2faXN.net]
【クライアント側】
View (WPF)
ViewModel(WPF)
Model(c#, 業務ロジック以外のロジック、例えばUI処理に必要なロジックなど)
【サーバー側】
Model(c#, 業務ロジック)

みたいに実際はクライアント側にもModelが必要になる事が多い

929 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 22:46:24.33 ID:TWuH3asg.net]
>>918
創世記の頃はさっき書いたようなのだったが、ビジネスロジックをほぼ全てMに書く派閥ができてカオスになった
あと、ReactivePropertyでMから簡単にリダイレクト出来るようになったのも大きい

930 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 23:12:27.45 ID:3gQjLtaF.net]
今時はPropertyChanged.FodyやObservablePropertyで自動化
便利になりました

931 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 23:49:15.10 ID:Dhh2faXN.net]
クライアント側やクライアント側にもModelが存在しえるが
ここにはUI要素が殆どなく(あったとしても抽象化されている)
WPF以外からも再利用が可能だ

ViewModelは特定のView専用に実

932 名前:装されており
異なる種類のViewの実装から再利用する事は望めないのが普通だ
[]
[ここ壊れてます]

933 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 23:50:04.10 ID:Dhh2faXN.net]
訂正)サーバー側やクライアント側にもModelが存在しえるが

934 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 01:14:09.52 ID:vsxnPNVu.net]
VewModelはViewの構成要素(データやコマンド)には依存するけど実装には依存しないでしょ

935 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 19:44:13.60 ID:J0Btfpeo.net]
昔SilverLightと言うのがありまして…



936 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 19:56:38.46 ID:1eoZIF84.net]
光ちゃん好き

937 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 20:00:29.56 ID:fuW/8CV2.net]
M、VMはそのままで、VをWPFでもUWPでもUnoでもMAUIでもコマンドプロンプトでもまだ存在しないビューにしても成り立つのが理想のMVVM

まあ本体のバージョンやらなんやらで制約受けるんだけども

938 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 22:51:14.61 ID:7E+/PPwt.net]
>>927
機種やOS依存しないのはMだけで、VMはWPFからWinUI3に変わるだけでも作り直し
Win32とWinRTは名前空間が別だ

939 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 23:30:01.70 ID:J0Btfpeo.net]
前からいるVMは作り直さなくてもいいと言う人は実際に使ってない気がするんだな

940 名前:デフォルトの名無しさん mailto:sage [2023/09/05(火) 05:52:19.52 ID:DX9vicfo.net]
Vが変わったらVMも作り直しとかそもそもお前のはMVVMじゃないぞ

941 名前:デフォルトの名無しさん [2023/09/05(火) 20:28:59.35 ID:qu07bRnx.net]
MVVMでは、Modelはただの定義であって、それがどこにあろうが、ローカルインスタンスはViewModelにある。
ModelインスタンスはViewにバイディングされるが、Model管理はサブスティチューターやインタラクター等の中間介在者経由で行う。
Modelにインジェクションは、中にパーサーを持たせ、ファイヤーや他にアソシエートさせるという事だろうが、それは、再利用性を損ねる事になる。
MVVMは見かけはMVVMだが、実際には、疎結合実現のために、取り巻くサービスから構成される。

942 名前:デフォルトの名無しさん mailto:sage [2023/09/05(火) 21:33:41.74 ID:s337iXA9.net]
お前の中ではな

943 名前:デフォルトの名無しさん mailto:sage [2023/09/05(火) 21:50:07.00 ID:vxLs2+zd.net]
ここに限らずプログラマー板は全般的に設計の話題になるとグダグダだよね

944 名前:デフォルトの名無しさん mailto:sage [2023/09/05(火) 22:14:49.56 ID:FTgFHkq3.net]
もう今はMFC/WinForms/WPFという過去の遺産グループに一括りにされる時代なのよね
WPFはなんていうか、オーパーツを発掘してる気分、腐ってやがる早すぎたんだって

945 名前:デフォルトの名無しさん mailto:sage [2023/09/05(火) 22:47:35.31 ID:vcpA6cRm.net]
何が言いたいのかさっぱり



946 名前:デフォルトの名無しさん mailto:637 [2023/09/06(水) 05:28:15.62 ID:CIPjTMvR.net]
結局プログラム言語とかプログラミング作法じゃなくてアイデアなんだよな。
それをセンスと言うのかな?
MVVMはオートメーションの作法なんだよ。
俺は機械作業の一部になりたくないな。

947 名前:デフォルトの名無しさん mailto:sage [2023/09/06(水) 06:00:45.77 ID:aEV5JQPD.net]
ViewModelの再利用性なんて無限のコストをかけていいならいいけどさ
円周率を表示するアプリがあって3.14と表示するかおよそ3と表示するか画像取り込んで表示するかなんて
Viewの仕様次第でいくらでも膨らむのにどうやってViewModelの再利用性を決めるんだ?

948 名前:デフォルトの名無しさん mailto:637 [2023/09/06(水) 06:51:57.86 ID:CIPjTMvR.net]
UIは変化(進化)するWindowsとandroidも違うし、あと数年でMVVMなんて有ったなぁとなるかも知れない。昔の構造化とか。

949 名前:デフォルトの名無しさん [2023/09/06(水) 09:12:10.70 ID:UTcPybKQ.net]
MVVM言いたいだけ

950 名前:デフォルトの名無しさん mailto:sage [2023/09/06(水) 09:46:23.58 ID:iXwPGoYi.net]
おののののか
みたいな?

951 名前:デフォルトの名無しさん mailto:sage [2023/09/06(水) 09:47:40.27 ID:gzG1FQ5Q.net]
>>937
さすがにその例なら再利用するだろ
なんで一から作り直すんだ?

952 名前:デフォルトの名無しさん mailto:sage [2023/09/06(水) 11:09:07.24 ID:EbyA7lxn.net]
データをどう見せるかなんてViewのシゴトだしな
コードビハインド書きたくないとかはワガママだ

953 名前:デフォルトの名無しさん mailto:sage [2023/09/06(水) 11:35:08.73 ID:Hs78urxK.net]
>>942
それな!
本来Vのコードビハインドに書くものを外だししただけでこれがVMとか言っちゃうのが多すぎる。
>>937とかその典型。それに再利用ってのは本来将来のコストを下げるためにやるもの。
半端もんは口出さずに100万年ROMってろってこった

954 名前:デフォルトの名無しさん mailto:sage [2023/09/06(水) 11:44:28.70 ID:CARezZ1i.net]
あくまでも個人の感想です。

955 名前:デフォルトの名無しさん mailto:sage [2023/09/06(水) 11:57:04.90 ID:jZLgLXW4.net]
VMはVに依存する=WPFならWPF専用になる
汎用クラスだけでVMが書けない以上不可能なんだよね



956 名前:デフォルトの名無しさん mailto:sage [2023/09/06(水) 13:38:44.54 ID:d8gQVss7.net]
MVVMじゃなくてViewとModelだけのVMパターンだね

957 名前:デフォルトの名無しさん mailto:sage [2023/09/06(水) 19:08:19.79 ID:49e0pxsZ.net]
最終的にはそういう事
m vm vをどうしても二つのグループに分けると
v vm とmグループになる
vm再利用とかありえない

958 名前:デフォルトの名無しさん [2023/09/06(水) 20:03:38.91 ID:R922v4XL.net]
>>946
だね。 
V+VMはペアで中味はトリッキーでもなんでもご自由にどうぞ。
V+VMとMの関係がアーキテクトの骨子。

959 名前:デフォルトの名無しさん mailto:sage [2023/09/06(水) 20:08:53.79 ID:ZnJznt7P.net]
WPFのはMVVMというよりblandパターン
MVVMとは関係ない実装がVMに多すぎ

960 名前:デフォルトの名無しさん mailto:sage [2023/09/06(水) 21:58:31.52 ID:H3c+Isko.net]
blandパターンって何やねん

961 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/09/08(金) 20:01:30.51 ID:xsuhKaXw.net]
WPFはパフォーマンスでないねぇ
UI仮想化しないと初期表示がくっそ遅いし、仮想化するとスクロールがガクガクする
WebViewを試してみるか

962 名前:デフォルトの名無しさん mailto:sage [2023/09/08(金) 20:04:01.88 ID:uWWTBRXF.net]
>>951
WPFからReactに移ったときWeb速や!って思た

963 名前:デフォルトの名無しさん mailto:sqge [2023/09/08(金) 20:57:27.63 ID:AJzWVUJo.net]
WPFってそんなやべぇやつだっけ?
昔、UWPアプリで、6年くらい前のスマホSoCのatomのタブレットでスクロールちょっと重いなと
格闘した記憶あるけどデスクトップPCやろ?

964 名前:デフォルトの名無しさん mailto:sage [2023/09/08(金) 21:01:43.66 ID:AJzWVUJo.net]
UWPアプリのしたらばリーダーみたいのMicrosoft Store
になかったけ?
それでスクロール試してみん
サムネイル画像の表示とかもやってたはず

965 名前:デフォルトの名無しさん mailto:sage [2023/09/08(金) 21:15:10.75 ID:AJzWVUJo.net]
コードみたけどレスの表示にRichTextBox使ってるの?
これ重いんじゃ?
TextBlockとかでがんばるとか

ってどの部分重いのか知らんが
レス表示だよね?



966 名前:デフォルトの名無しさん mailto:sage [2023/09/08(金) 21:30:39.96 ID:/3OGw28W.net]
UI仮想化してるならコンテナーのリサイクルも有効にしてる?

967 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/09/08(金) 21:49:54.47 ID:xsuhKaXw.net]
>>955
試した。色々。
1個のどでかいTextBlockもやってみた。

>>956
試した。

inlineのパフォーマンスがすごい悪いんだと思う。
stackoverflowとかもめっちゃググった。
その中の外人さんコメで「WPFやってるとプログラミング初心者に戻ったと錯覚する」っていうのが妙に刺さったw
やっぱリフレクション主体のフレームワーク構造ってのに無理があるのでは。
少量のデータなら問題ないけど、ちょっと増えてくると指数的に重くなる

968 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/09/08(金) 21:58:52.02 ID:xsuhKaXw.net]
説明不足ですみません。
重いのはレス表示の部分。
範囲選択させたり、ハイパーリンク埋め込んだりなのでRichTextBox使ってる。
UI仮想化すると初期表示は早いけど、スクロールがガクガクだったり前回表示位置が上手く取得できなかったりとギブアップ気味。
これ以上この部分に時間かけるのもどうかと思い出した次第です

969 名前:デフォルトの名無しさん mailto:sage [2023/09/08(金) 22:09:56.39 ID:/3OGw28W.net]
大量のデータならデータ仮想化もした方が良さそうだけど

970 名前:デフォルトの名無しさん mailto:sage [2023/09/08(金) 22:21:08.42 ID:AJzWVUJo.net]
RichTextBoxの範囲選択はあきらめたほうがいい
Janeとかもできないやろ?
Webブラウザ使ってる余裕sikiはできるだろうが
TextBlockでもマルチスタイルのインラインリンクぐらいはできなったっけ

971 名前:デフォルトの名無しさん mailto:sage [2023/09/08(金) 22:28:15.74 ID:AJzWVUJo.net]
>>957
ああごめんTextBlock試したのか
じゃあWPFがやばいのか
WinUIしてみようぜw
>>953にも書いたがレス表示みたいな事を当時やったが
デスクトップとかなら余裕だと思うんだが

972 名前:デフォルトの名無しさん mailto:sage [2023/09/08(金) 23:00:10.22 ID:ZMs2WmkU.net]
10年以上前に自分が通った道を他人が歩いているのを見ている
今はIEコンポーネントもないしな

973 名前:デフォルトの名無しさん mailto:sage [2023/09/08(金) 23:13:15.61 ID:ZMs2WmkU.net]
自分もrichtextboxから始めたけど開発スタート初日から見限った
これはダメだと
今より全然マシンパワーなかったから当然かと

Sikiは仕組み上遅くなるのが分かってるのでもうそういう既存の仕組みを使わないで自力描画してるようだ
レスをパースして行数計算して文字のフォントサイズを実際に脇に描画してそれを元に文字サイズを推定して
表示部分だけ自前描画

過去の自分も似たようなところにたどり着いて外部Dllを作ったがいろいろとうまくいかずc++からは戻って来た
でもかなりレベルアップしたような実感が得られた(個人の感想です)

974 名前:デフォルトの名無しさん mailto:sage [2023/09/08(金) 23:21:58.63 ID:ZMs2WmkU.net]
過去にここ?かc#のスレでたまに質問して技術を探ったがまともに回答できるレベルの人間はいなかった

結局フレームワークが提供するものを使わずに自前の疑似描画が最速なんだけど
それがわかったとしてそこからは精神の問題になる

長い試行錯誤とこれは自分にとって時間をかける意味のあることなのかと自問自答

975 名前:デフォルトの名無しさん mailto:sage [2023/09/09(土) 00:57:33.07 ID:hHjqEXWc.net]
>>958
開発中の機能が重いわけ?
レス数1000近くて画像リンク含むスレッド表示してみたけど
どこがカクカクなのか分からない



976 名前:デフォルトの名無しさん mailto:sage [2023/09/09(土) 01:14:55.16 ID:12n4cwT7.net]
スレチだが、個人的には read.crx 2 をフォークするなりしてほしい
いまどき「Windows専用の5chクライアント」はちょっと...

977 名前:デフォルトの名無しさん mailto:sage [2023/09/09(土) 01:26:18.10 ID:OYJBfPAk.net]
人のやることにケチ付けてないで、自分で作れば

978 名前:デフォルトの名無しさん mailto:sage [2023/09/09(土) 02:13:46.91 ID:K25duMZT.net]
んだんだ

979 名前:デフォルトの名無しさん mailto:sage [2023/09/09(土) 02:39:19.20 ID:fuRqrN4P.net]
出来の良いエンジニアが全員Webで開発してるから仕方ない

980 名前:mdysdev● ◆XSDsAilQpD0E mailto:sage [2023/09/09(土) 06:59:15.87 ID:xfSBfAyx.net]
スレ立てさせてください

981 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/09/09(土) 07:03:42.77 ID:xfSBfAyx.net]
次スレ立てました

WPF(.NET, WinUI) GUIプログラミング Part32
https://mevius.5ch.net/test/read.cgi/tech/1694210576/

982 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/09/09(土) 07:16:20.48 ID:xfSBfAyx.net]
>>965
ホイールスクロールじゃなくてスクロールバーのつまみを持って高速で上下させるとガクガクしません?

>>963
すごいね
時間とカネがあれば挑戦してみたいけど、
打算的な考えがはたらいてしまいどうも地味な部分(申し訳ない)に注力するのを躊躇してしまう
これだと浅く広くになってしまってよくないんだろうけど。

983 名前:デフォルトの名無しさん mailto:sage [2023/09/09(土) 15:42:58.83 ID:hHjqEXWc.net]
>>972
うん、つまみもってスクロールさせてみた
他のsikiとかと比較すると吸い付きは悪いけど、実際使う上で
この速度でイライラするかとそこはどうなんだろう

>>954で上げたしたらばリーダーでやってみたけどゲロ速い

984 名前:デフォルトの名無しさん mailto:sage [2023/09/09(土) 15:49:37.56 ID:hHjqEXWc.net]
UWPとかそこら辺高速化する
事前バインディング(x:Bind)や段階的レンダリング(x:Phase)みたいのあるけど
どれくらい効果あるのやら

985 名前:デフォルトの名無しさん mailto:sage [2023/09/09(土) 18:25:25.91 ID:hHjqEXWc.net]
xaml切り貼りして試したけど
>>956のこれでかなりスムーズにならね?
VirtualizingPanel.VirtualizationMode="Recycling"
これで解決やろ



986 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/09/09(土) 19:33:09.18 ID:xfSBfAyx.net]
>>975
Recycling指定しただけだと表示されるレスがぐちゃぐちゃになってませんか?
結局RichTextBoxLoadedを呼びなおしてInline作らないといけないので、Recycling指定してもしなくても体感が変わらない気がします
(というか変わらなかった)

あとUI仮想化するときの致命点として、
表示されている近辺しかUIをメモリに保持していないので、
レス内の文字列検索する場合に全部探せないっていうのが・・

987 名前:デフォルトの名無しさん mailto:sage [2023/09/09(土) 20:11:19.23 ID:hHjqEXWc.net]
>>976
そっか
中身全然見てなかったww
元々LoadedでセットしてたからRecycleするとLoaded呼ばれなくなって中身が
更新されてなかったら速くなってたのかw
悪かった

>レス内の文字列検索する場合に全部探せないっていうの
ああ、これはRichTextBoxの機能でやろうとしてる?
MVVM的にはViewModelのほうが全部データ持ってるはずだけど

988 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/09/09(土) 20:28:03.21 ID:xfSBfAyx.net]
>>977
「検索にヒットしたレスだけを抜き出して表示」ならVMを検索してDataContextを再設定すればいいと思う。
ただ「レスを表示したまま」っていう要件で例えば検索ワードの背景色だけを変えたい場合って
UIに全レスが読み込まれてないと出来ない気がするんだけど何かうまい方法あります?

989 名前:デフォルトの名無しさん mailto:sage [2023/09/09(土) 20:53:19.09 ID:hHjqEXWc.net]
>>978
ResViewItemViewModelのほうにアンカーやらリンクやらの
情報持ってるわけでしょ?
そこに検索ヒット部分の情報持たせて、それらを混ぜて表示すればいいだけじゃない?

990 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/09/09(土) 21:00:00.66 ID:xfSBfAyx.net]
>>979
ああ、なるほど。
理解しました

991 名前:デフォルトの名無しさん mailto:sage [2023/09/09(土) 22:52:24.90 ID:6wE+xkUP.net]
色々ひっくり返るけど、WebView2でやるのが一番いいんじゃないかな?

992 名前:デフォルトの名無しさん mailto:sage [2023/09/10(日) 00:01:36.42 ID:HR/6NGES.net]
WebviewでやるならBlazor Hybridの方が良いかも?
C#と連携しやすいし

993 名前:デフォルトの名無しさん mailto:sage [2023/09/10(日) 00:12:18.74 ID:/4aaxiYm.net]
winformsとかwpfの案件ばかり渡り歩いてきたけどやっぱり斜陽なのかなぁ。きっちりウェブとかスマホアプリとかの勉強してそっちに軸足動かさないといかんのだろうか
とにかく不安で不安でしょうがない。何が一番不安ってwinformsやwpf本体以上にそういう現場って周りの開発環境自体もすごく古めかしいことが多い
git?何それ?みたいなことばかり

994 名前:デフォルトの名無しさん mailto:sage [2023/09/10(日) 00:16:03.86 ID:L5K9/P3E.net]
そういうのはプログラマー板でやって

995 名前:デフォルトの名無しさん mailto:sage [2023/09/10(日) 00:24:23.99 ID:W8P3LkyJ.net]
別にここでok



996 名前:デフォルトの名無しさん mailto:sage [2023/09/10(日) 00:45:08.82 ID:y88PGdZC.net]
その手の話はスレが荒れるからマ板で
特に「WPF以外は何がいい?」みたいな話に発展して、それもうWPF無関係じゃんってなる

997 名前:デフォルトの名無しさん mailto:sage [2023/09/10(日) 00:47:46.81 ID:ZyGp2Gk+.net]
特別な用途別意外
デスクトップアブリの開発需要がないでー

998 名前:デフォルトの名無しさん mailto:sage [2023/09/10(日) 13:31:19.20 ID:YVmQiRtO.net]
普通にデスクトップアプリは特殊用途でしか使われてない
CADとかそういうジャンルみたいのが一例

999 名前:デフォルトの名無しさん mailto:sage [2023/09/10(日) 13:48:10.83 ID:YVmQiRtO.net]
10年以上前の話
工場などの管理アプリは以前はデスクトップだった
情報は生産管理室でしか見たりできなかった
それがweb上に構築されて社内にいれば労働者が必要な権限のもと必要な情報を引き出せるようになった

営業も同じ
以前は会社に戻って日報ソフトで報告書を作ってたのがスマホから出せるようになった
作成も移動時間などの隙間時間を使える
在庫もその場で確認できる
以前は会社に電話確認してた

DXが持てはやされる今なんで今更仕事でデスクトップアプリを使うのか
開発者のエゴなんじゃないか

1000 名前:デフォルトの名無しさん [2023/09/10(日) 14:09:35.55 ID:1PErJKRp.net]
デスクトップやネイティブからWEBアプリになったのって
今はサーバー側の計算資源に余力あるのもでかいと思う
フロント側で計算することが減った

1001 名前:デフォルトの名無しさん mailto:sage [2023/09/10(日) 14:37:39.16 ID:YVmQiRtO.net]
WPFが出る前後の話で描画がdirectXになるので速くなるのではと期待された
CADなんかもGDIから置き換えになるんじゃないかと
C#が今よりメジャーになるんじゃないかと

実際はご存じの通りでまあなんでもあてにならんもんだなと

1002 名前:デフォルトの名無しさん mailto:sage [2023/09/10(日) 15:37:57.94 ID:cU2jqfnk.net]
webは手だしてみてるけど
いざ画面作るとなるといまいちcss操れないへっぽこさでなぁ

1003 名前:デフォルトの名無しさん mailto:sage [2023/09/10(日) 15:52:00.61 ID:NUnFSs94.net]
ワシらのためのbootstrap

1004 名前:デフォルトの名無しさん mailto:sage [2023/09/10(日) 16:29:10.18 ID:qF59qXuI.net]
>>932
それな
俺はflutterもやってるのでflutter for webに頑張ってもらってcssやらずに乗り切れるかどうか
Webのバックエンドはgoとかやったけど

1005 名前:デフォルトの名無しさん mailto:sage [2023/09/10(日) 16:32:58.69 ID:qF59qXuI.net]
>>992だった
Webのバックエンド用にrustもかじったほうがいいのかな
Web ApiでSQL叩くぐらいだけど
asp.net vs go vs rust
悩む



1006 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<232KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef