X



WPF(.NET, WinUI) GUIプログラミング Part31
レス数が1000を超えています。これ以上書き込みはできません。
0953デフォルトの名無しさん
垢版 |
2023/09/08(金) 20:57:27.63ID:AJzWVUJo
WPFってそんなやべぇやつだっけ?
昔、UWPアプリで、6年くらい前のスマホSoCのatomのタブレットでスクロールちょっと重いなと
格闘した記憶あるけどデスクトップPCやろ?
0954デフォルトの名無しさん
垢版 |
2023/09/08(金) 21:01:43.66ID:AJzWVUJo
UWPアプリのしたらばリーダーみたいのMicrosoft Store
になかったけ?
それでスクロール試してみん
サムネイル画像の表示とかもやってたはず
0955デフォルトの名無しさん
垢版 |
2023/09/08(金) 21:15:10.75ID:AJzWVUJo
コードみたけどレスの表示にRichTextBox使ってるの?
これ重いんじゃ?
TextBlockとかでがんばるとか

ってどの部分重いのか知らんが
レス表示だよね?
0957mdysdev ◆XSDsAilQpD0E
垢版 |
2023/09/08(金) 21:49:54.47ID:xsuhKaXw
>>955
試した。色々。
1個のどでかいTextBlockもやってみた。

>>956
試した。

inlineのパフォーマンスがすごい悪いんだと思う。
stackoverflowとかもめっちゃググった。
その中の外人さんコメで「WPFやってるとプログラミング初心者に戻ったと錯覚する」っていうのが妙に刺さったw
やっぱリフレクション主体のフレームワーク構造ってのに無理があるのでは。
少量のデータなら問題ないけど、ちょっと増えてくると指数的に重くなる
0958mdysdev ◆XSDsAilQpD0E
垢版 |
2023/09/08(金) 21:58:52.02ID:xsuhKaXw
説明不足ですみません。
重いのはレス表示の部分。
範囲選択させたり、ハイパーリンク埋め込んだりなのでRichTextBox使ってる。
UI仮想化すると初期表示は早いけど、スクロールがガクガクだったり前回表示位置が上手く取得できなかったりとギブアップ気味。
これ以上この部分に時間かけるのもどうかと思い出した次第です
0960デフォルトの名無しさん
垢版 |
2023/09/08(金) 22:21:08.42ID:AJzWVUJo
RichTextBoxの範囲選択はあきらめたほうがいい
Janeとかもできないやろ?
Webブラウザ使ってる余裕sikiはできるだろうが
TextBlockでもマルチスタイルのインラインリンクぐらいはできなったっけ
0961デフォルトの名無しさん
垢版 |
2023/09/08(金) 22:28:15.74ID:AJzWVUJo
>>957
ああごめんTextBlock試したのか
じゃあWPFがやばいのか
WinUIしてみようぜw
>>953にも書いたがレス表示みたいな事を当時やったが
デスクトップとかなら余裕だと思うんだが
0962デフォルトの名無しさん
垢版 |
2023/09/08(金) 23:00:10.22ID:ZMs2WmkU
10年以上前に自分が通った道を他人が歩いているのを見ている
今はIEコンポーネントもないしな
0963デフォルトの名無しさん
垢版 |
2023/09/08(金) 23:13:15.61ID:ZMs2WmkU
自分もrichtextboxから始めたけど開発スタート初日から見限った
これはダメだと
今より全然マシンパワーなかったから当然かと

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

過去の自分も似たようなところにたどり着いて外部Dllを作ったがいろいろとうまくいかずc++からは戻って来た
でもかなりレベルアップしたような実感が得られた(個人の感想です)
0964デフォルトの名無しさん
垢版 |
2023/09/08(金) 23:21:58.63ID:ZMs2WmkU
過去にここ?かc#のスレでたまに質問して技術を探ったがまともに回答できるレベルの人間はいなかった

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

長い試行錯誤とこれは自分にとって時間をかける意味のあることなのかと自問自答
0965デフォルトの名無しさん
垢版 |
2023/09/09(土) 00:57:33.07ID:hHjqEXWc
>>958
開発中の機能が重いわけ?
レス数1000近くて画像リンク含むスレッド表示してみたけど
どこがカクカクなのか分からない
0966デフォルトの名無しさん
垢版 |
2023/09/09(土) 01:14:55.16ID:12n4cwT7
スレチだが、個人的には read.crx 2 をフォークするなりしてほしい
いまどき「Windows専用の5chクライアント」はちょっと...
0972mdysdev ◆XSDsAilQpD0E
垢版 |
2023/09/09(土) 07:16:20.48ID:xfSBfAyx
>>965
ホイールスクロールじゃなくてスクロールバーのつまみを持って高速で上下させるとガクガクしません?

>>963
すごいね
時間とカネがあれば挑戦してみたいけど、
打算的な考えがはたらいてしまいどうも地味な部分(申し訳ない)に注力するのを躊躇してしまう
これだと浅く広くになってしまってよくないんだろうけど。
0973デフォルトの名無しさん
垢版 |
2023/09/09(土) 15:42:58.83ID:hHjqEXWc
>>972
うん、つまみもってスクロールさせてみた
他のsikiとかと比較すると吸い付きは悪いけど、実際使う上で
この速度でイライラするかとそこはどうなんだろう

>>954で上げたしたらばリーダーでやってみたけどゲロ速い
0974デフォルトの名無しさん
垢版 |
2023/09/09(土) 15:49:37.56ID:hHjqEXWc
UWPとかそこら辺高速化する
事前バインディング(x:Bind)や段階的レンダリング(x:Phase)みたいのあるけど
どれくらい効果あるのやら
0975デフォルトの名無しさん
垢版 |
2023/09/09(土) 18:25:25.91ID:hHjqEXWc
xaml切り貼りして試したけど
>>956のこれでかなりスムーズにならね?
VirtualizingPanel.VirtualizationMode="Recycling"
これで解決やろ
0976mdysdev ◆XSDsAilQpD0E
垢版 |
2023/09/09(土) 19:33:09.18ID:xfSBfAyx
>>975
Recycling指定しただけだと表示されるレスがぐちゃぐちゃになってませんか?
結局RichTextBoxLoadedを呼びなおしてInline作らないといけないので、Recycling指定してもしなくても体感が変わらない気がします
(というか変わらなかった)

あとUI仮想化するときの致命点として、
表示されている近辺しかUIをメモリに保持していないので、
レス内の文字列検索する場合に全部探せないっていうのが・・
0977デフォルトの名無しさん
垢版 |
2023/09/09(土) 20:11:19.23ID:hHjqEXWc
>>976
そっか
中身全然見てなかったww
元々LoadedでセットしてたからRecycleするとLoaded呼ばれなくなって中身が
更新されてなかったら速くなってたのかw
悪かった

>レス内の文字列検索する場合に全部探せないっていうの
ああ、これはRichTextBoxの機能でやろうとしてる?
MVVM的にはViewModelのほうが全部データ持ってるはずだけど
0978mdysdev ◆XSDsAilQpD0E
垢版 |
2023/09/09(土) 20:28:03.21ID:xfSBfAyx
>>977
「検索にヒットしたレスだけを抜き出して表示」ならVMを検索してDataContextを再設定すればいいと思う。
ただ「レスを表示したまま」っていう要件で例えば検索ワードの背景色だけを変えたい場合って
UIに全レスが読み込まれてないと出来ない気がするんだけど何かうまい方法あります?
0979デフォルトの名無しさん
垢版 |
2023/09/09(土) 20:53:19.09ID:hHjqEXWc
>>978
ResViewItemViewModelのほうにアンカーやらリンクやらの
情報持ってるわけでしょ?
そこに検索ヒット部分の情報持たせて、それらを混ぜて表示すればいいだけじゃない?
0983デフォルトの名無しさん
垢版 |
2023/09/10(日) 00:12:18.74ID:/4aaxiYm
winformsとかwpfの案件ばかり渡り歩いてきたけどやっぱり斜陽なのかなぁ。きっちりウェブとかスマホアプリとかの勉強してそっちに軸足動かさないといかんのだろうか
とにかく不安で不安でしょうがない。何が一番不安ってwinformsやwpf本体以上にそういう現場って周りの開発環境自体もすごく古めかしいことが多い
git?何それ?みたいなことばかり
0986デフォルトの名無しさん
垢版 |
2023/09/10(日) 00:45:08.82ID:y88PGdZC
その手の話はスレが荒れるからマ板で
特に「WPF以外は何がいい?」みたいな話に発展して、それもうWPF無関係じゃんってなる
0988デフォルトの名無しさん
垢版 |
2023/09/10(日) 13:31:19.20ID:YVmQiRtO
普通にデスクトップアプリは特殊用途でしか使われてない
CADとかそういうジャンルみたいのが一例
0989デフォルトの名無しさん
垢版 |
2023/09/10(日) 13:48:10.83ID:YVmQiRtO
10年以上前の話
工場などの管理アプリは以前はデスクトップだった
情報は生産管理室でしか見たりできなかった
それがweb上に構築されて社内にいれば労働者が必要な権限のもと必要な情報を引き出せるようになった

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

DXが持てはやされる今なんで今更仕事でデスクトップアプリを使うのか
開発者のエゴなんじゃないか
0990デフォルトの名無しさん
垢版 |
2023/09/10(日) 14:09:35.55ID:1PErJKRp
デスクトップやネイティブからWEBアプリになったのって
今はサーバー側の計算資源に余力あるのもでかいと思う
フロント側で計算することが減った
0991デフォルトの名無しさん
垢版 |
2023/09/10(日) 14:37:39.16ID:YVmQiRtO
WPFが出る前後の話で描画がdirectXになるので速くなるのではと期待された
CADなんかもGDIから置き換えになるんじゃないかと
C#が今よりメジャーになるんじゃないかと

実際はご存じの通りでまあなんでもあてにならんもんだなと
0992デフォルトの名無しさん
垢版 |
2023/09/10(日) 15:37:57.94ID:cU2jqfnk
webは手だしてみてるけど
いざ画面作るとなるといまいちcss操れないへっぽこさでなぁ
0994デフォルトの名無しさん
垢版 |
2023/09/10(日) 16:29:10.18ID:qF59qXuI
>>932
それな
俺はflutterもやってるのでflutter for webに頑張ってもらってcssやらずに乗り切れるかどうか
Webのバックエンドはgoとかやったけど
0995デフォルトの名無しさん
垢版 |
2023/09/10(日) 16:32:58.69ID:qF59qXuI
>>992だった
Webのバックエンド用にrustもかじったほうがいいのかな
Web ApiでSQL叩くぐらいだけど
asp.net vs go vs rust
悩む
0996デフォルトの名無しさん
垢版 |
2023/09/10(日) 17:56:13.32ID:YVmQiRtO
flutter触ったら初期のxamarinみたいな状況だった
XAMLみたいな仕組みがあればいいのに
0997デフォルトの名無しさん
垢版 |
2023/09/10(日) 18:07:47.90ID:olDylbSn
日本の業務ソフトはまだまだデスクトップで.NETが主流だぞ
0999デフォルトの名無しさん
垢版 |
2023/09/10(日) 18:42:19.60ID:j97G6Fcd
WPFはBindingのせいで遅い
高速描画謳ってるグラフィックライブラリは早くしたけりゃBinding使うなと言ってる
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 231日 13時間 5分 32秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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