WPF(.NET, WinUI) GUIプログラミング Part32
WPF(Windows Presentation Foundation)について語るスレ。 前スレ WPF(.NET, WinUI) GUIプログラミング Part31 https://mevius.5ch.net/test/read.cgi/tech/1674334396/ 関連スレ Windows 10 UWPアプリ開発Part 3 https://mevius.5ch.net/test/read.cgi/tech/1627556967/ コードを貼る場合は以下のサイトの利用をお勧め。 https://ideone.com/ WinUIアプリが徐々に増えてきてるな 最近だとフォトがWinUIになった >>4 AdaptiveGridView を削除は驚いた 代替を用意しているけど面倒だな 前スレラストでいうところのまさにCADっていう特殊な用途でWPFのデスクトップアプリ作ってるがこのままCAD専門で生きていく気にはなれんなぁ ドメイン知識多すぎてプログラマというより部品屋やれと言われてる気がする CADでも脇の方の電子部品とかそんなジャンルなんだろうな WinUIって.NET6を入れずに使えますか? VS2022のプロジェクトだと、.NET Frameworkが無くて.NET6になってしまいます MenuFlyoutのバグは治った 昔のバグ復活とか気をつけてほしいものだね WinUIってまだ未完成だよね? 一部にバグがあるんじゃなくてかなり広い範囲にバグがある くそ品質だな 仕様、設計はしっかりしてても品質がひどすぎて https://github.com/microsoft/microsoft-ui-xaml/discussions/8884 久しぶりのcommunity call オープンソース化されれば、頑張りやさんたちが頑張って貢献して 品質があがるのかもしれんが くそ品質だな 仕様、設計はしっかりしてても品質がひどすぎて https://github.com/microsoft/microsoft-ui-xaml/discussions/8884 久しぶりのcommunity call オープンソース化されれば、頑張りやさんたちが頑張って貢献して 品質があがるのかもしれんが バグでWinUI3アプリが止まった場合 自分のせいなのかWiUI3が原因なのか時間を掛けて探らなければならない なんで時間を掛けて研究や探索しなければいけないのか ランダムに発生するcom例外は何が原因なのか意味不明だわ 一年くらいプログラムから離れてたんだけどそろそろWPFからWinUI3に移行してもよさそう? Windows 11の大型更新今週って、1.4の予定はやまったのこれのせいか つか、Microsoftの他の製品で使われててそこに影響ありそうなバグしか直さない もう完全にバグ出し用員扱いで草 Blazerでxamlの知識が役に立つとかないの?(´・ω・`) ネイティブアプリの出番が今後も減り続ける その中でXAMLの割合も減り続ける それを防ぐには新規の入門者に使いやすいようにしなくてはならない だからデザイナは絶対必要 ところが老害の人たちはいらない連呼するだけ 言語も乱立してどのように入門者に使ってもらえるか工夫してる ところがWinUI3はその逆をやってる デザイナーってUIのホットリロードが先ね 無きゃ使い物にならん デザイナーってUIのホットリロードが先ね 無きゃ使い物にならん デザイナーがあってホットリロード(完全ではないけど)がプラスされたのがUWP。 そこからなぜ大幅劣化してるのか謎。 ホットリロードはバインド箇所変更したらすぐ破綻するからなあ デザイナ復活とバインドデータのダミーデータ自動生成機能の追加をお願いしたいところ ホットリロードはFontSize=””で落ちるのが酷い 判っちゃいるけどついやっちまうんだわ 正直なところ今のレベルのまま数年経過する気がする どこかで経営陣が今より良いものが必要だと判断して資金と開発リソース投入しないとこのまま変な感じが続く WPFで出来た事が、なぜWinUI3で出来ないのか 使ってみればわかるけど、いうほど完成度は低くない 最初の頃のように不可解なバグで止まるのは最近は遭遇しない 偶に遭遇する未実装には参ったが 完成度は低すぎるだろ 品質の事で阿鼻叫喚なのはWinUIのgithubだけ xamlでgeneric使えるようになるまでは見送りかなー 一生来ないかもしれんけど winUI3ギャラリーのサイズ表記が180MBなんだよな 実際は50GB程度だけどそんなに内容があるようにも見えない それでセマンティックZOOMを選ぶと落ちる 本当にクソだな ストアからギャラリー落としてsemanticZoomのページを開くと落ちる 公式アプリなのに ストアの審査も通ってるだろう 完成度が低くない?公式アプリが落ちるのに? クラッシュはいい方だ おそらく直してもらえるだろうから クラッシュしないで放置されてる大量にあるバグに比べたらラッキー 俺は致命的と思われる報告済みのバグずっと放置されてるし で、ちょっと前に新しいUIを思い付いたから 別のコントロールで実験したら肝心なところでバグっぽくて動かねぇ まじでWinUIくそまみれ バグがちゃでバグを引かない強運の持ち主が生き残れる世界 >>37 そう、それでオープンソースどうなるか.. ちなみにWPFのWindows 11 Theme対応の進捗も.. https://github.com/dotnet/wpf/discussions/8225 まだ、進捗何も出てこないという 現状はWinUI3を使って製品を出すようなレベルに達していない 品位は最低 .NET8 + WinUI 3で一度完成形を見せてほしいところだな 製品ならWPF+.NET FrameWork 4.7.2だな 一番安定してる 本業と情報処理試験勉強で放置気味になってしまった。 試験終わったら再チャレンジしたい。 次はWebView2でのスレ表示にしようかと思ってます Teamメンバーが大幅に入れ替わる 7人から6人にしかも女性が半数 Commuty Callは4半期事に後退 コントロールのソース公開 ただし主な目的はデバッグ(プルリクとか想定してない?) 引き続き望みない UIがWeb全盛になってから10年以上経つのに なに期待してんの? 最後の砦がsilverlightとadobe Flushで終わって何十年だよ? MS「だってみんなWinFormsばっかり使うから・・・」 Webにsilverlightでxamlを持ち込んで これが珍しく出来が良かったんだけど いろんなしがらみでずっコケた時 全てのリソースをHTMLに移すってMS本体が宣言してたじゃん! あの時デスクトップは終わったんだよ 正直いってまだモバイルアプリ作ってた方が実が生る windows11でデスクトップでも動作するようになったし XAMLでPC、タブ、スマホ、ウェブが動くUno最高ってことか win11 23H2でファイルエクスプローラーが刷新される予定なんだけど めっちゃ評判が悪い 起動に恐ろしく時間がかかるらしい Windows App SDKベースに移行してこんなに素晴らしくなりましたと言いたかったんだろうけど無理だろうな >>54 サードパーティ製のファイラを推進する裏の意図があったりするのかも もっとも、起動が遅いだけなら気にしない人が大半だと思うが >>55 変わってるな ファイル見ようとしてエクスプローラーダブルクリックして起動に20秒待たされたら 一般人は切れるとおもうけど >>56 ファイルを見ようとしてからファイラを立ちあげる人なんているの? ファイラはOS起動時にタスクスケジューラ経由で自動で立ち上げて、以後ブラウザと同様に「起動させっぱなし」の人がほとんどでは? それはDOSとかwin95とかのころだろ メーカー製のパソコン起動したら独自ランチャーが出てたころ >>57 いや、必要な時に起動して作業が終わったら閉じる ファイルエクスプローラーはめちゃくちゃ良くなったよ メディアファイルとかがあるフォルダ開いた時のあのもっさり解析処理が無くなった まじ? メディアファイルの解析で10秒とか平気でまたされてうんざりしてた 設計した奴が馬鹿なんだよ win11いいって言ってる奴も馬鹿 2年後にWin10がサポート終了するからそれまでにWinUIで揃えたいんだろうなあ まだWPFやWinFormsでもいいな WinUIが使いやすくなったら起こしてくれ [クライシスアクター」「豊島保養所」←画像検索&拡散! 他スレに丸ごとコピペよろしっく!! ネットでできる反レプティリアン・反イルミ活動です!! 動画サイトのコメ欄もねらい目だぞ!!!!!!! 次のまともなGUIが登場しないから自分はWPFが最後のネイティブGUIになりそうだ おいおいUIの主流はWeb HTML css に移ってて そっちは百花繚乱のもの凄さだぞ おいおいUIの主流はWeb HTML css に移ってて そっちは百花繚乱のもの凄さだぞ おいおいUIの主流はWeb HTML css に移ってて そっちは百花繚乱のもの凄さだぞ emojiの色だけ対応してくれたらいいんだけど 今はnugetで誰かが作ったラッパーを入れてる >>74-76 はアプリがちょっとでも重くなるとボタンを連打して、 更に被害を拡大させるタイプだな >>81 ハードディスクの調子がおかしいとバンバン叩いて全く認識しなくなり、それならと分解して記録している円盤を剥き出しにしちゃってからなんとかなりませんか?と相談するタイプかな 誰一人プログラミングの話をしないガチのオワコンスレ 1.4.2キター って新しい情報提供してるのいつも俺だけだもんな.. Microsoft PowerToys https://github.com/microsoft/PowerToys WinUI3 Windows app sdkも実用レベルの製品を作るレベルにはなっているな それでも僕はWPFを使い続けるよ! (WinUI3が使いやすくなるまで) それでも僕はWinFormsを使い続けるよ! (WPFが使いやすくなるまで) エクスプローラーの挙動があれなんだけど… Windowsですらダメなのか… エクスプローラーの挙動があれなんだけど… Windowsですらダメなのか… でもwindowsのネイティブアプリなら現状WPF一択だよね?Electronとかより 普通GDI直接call Paint.netがそう実装しているだろう WinformでもWPFでも目的とするアプリ作れればいいんだよ。 バカの罵り合いやってんじゃねぇ。 まぁ WPFの方がちょと綺麗な画面が作りやすいかなw 罵りあいなんかしてないだろ 罵りだしたのは突然バカとかいいだす おまえだろゴミ WinUI3ギャラリーは更新されず semanticZoomのページは相変わらず開くと落ちる WPF-UIというのを試したらそれなりに綺麗になったよ 15年前とは違う、最近は1080pが当たり前で文字もボタンも小さすぎる 老眼とか年寄りかよって、若い子にスマホ老眼多いのよ >>91 一択ではない windowsのネイティブアプリ(デスクトップ)自体が物好きしか作らないのだから winformsだろうがQTだろうがMFCだろうがwin32APIだろうが どれでも変わらない >>91 ネットのサンプルコードでもWinformsがほとんど 個人的にはネイティブ AOTは別にいらないと感じてしまう 結局、ソース公開するっていってもビルドできるわじゃないし プルリクも受付ないっていってるし、Communityの力で品質上がるってことはないってことだから 結論はゴミ これだけの内容を数人で回してるなら超人的な開発力だと思う だがそれが良くない メンバー入れ替えでメンツどうみてもしょぼくなったよね Old new thingのChenさんとか一時的いたよね つか、女性コーディングできるの? >>101 ルネサスのサンプルを見たらWPFでちょっと嬉しかった avalonia触ったことないや linuxでも動くのね avaloniaでLinuxでもWPFみたいに作れるの!?って わくてかしながら動かしてみたら起動時にエラーがでてissueみてみたら 解決してなくてしょぼん ちょっと興味あるんだけどアバロニアってwpfに対してどんなメリットがあるの? ぶっちゃけMacやUbuntsu使わねーんだよねー。 スマホ用はどうせクロスモバイル用の環境の中から選ぶから話全く違うしなぁ 初歩的な質問ですみません。 上部に別のコントロール、下にTreeViewを表示したいのですが、そのためにStackPanelを使用するとTreeViewにスクロールバーが表示されなくなってしまいます。 ウィンドウ中にTreeViewだけだと表示されますがStackPanelの中に入れると切れてしまいます。 StackPanelの中であってもTreeViewにHeightを数値で指定すれば表示されるのですが、ウィンドウサイズに応じてTreeViewの高さを変化させるにはC#コードで書くしかないのでしょうか? <Grid> <StackPanel> <TextBlock>Test</TextBlock> <TreeView ItemsSource="{Binding ElementName=window, Path=TreeviewDummySource}"/> </StackPanel> </Grid> https://i.imgur.com/GIO6fVL.png StackPanelをあきらめてGridを使う <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <TextBlock Grid.Row="0">Test</TextBlock> <TreeView Grid.Row="1" ItemsSource="{Binding ElementName=window,Path=TreeviewDummySource}"/> </Grid> >>116 残りにめいいっぱい広げたい場合はStackPanelじゃなくてDockPanelを使う <Grid> <DockPanel> <TextBlock DockPanel.Dock="Top">Test</TextBlock> <TreeView ItemsSource="{Binding ElementName=window, Path=TreeviewDummySource}" /> </DockPanel> </Grid> WinUI 3 ソースが公開されたぁーただしzipで 最近はネイティブアプリは下火だね 同等の機能を提供するwebサイトやwebアプリとかと比べると明かに質が落ちるし垢抜けない Windows App SDKとWinUI3って何が違うんや サンプルコードでWindows App SDKとWinUI3でタブが分かれてるのは何なんや WinUI3は新しく開発されたグラフィックAPIセット Windows App SDKは既存のwinAPIも含めたwin API SDKの総称 カスタマイズできるのはいいんだが何でも検索ボックスつけるのやめてくだされ 「毎日出社したい」わずか3.8% リモートワーク経験者に聞いた 学研ホールディングスのグループ会社であるベンド(東京都千代田区)は、 リモートワーク経験者を対象に「リモートワークに関するアンケート」を 実施した。その結果、半数近くの人が「週5(フルリモート)」(44.4%) をリモートワークの理想の頻度だと考えていることが分かった。 次いで「週3〜4」(30.7%)、「週1〜2」(20.1%)と続き、96.2%の人がリ モートワークの継続を希望していることが分かった。毎日出社を希望する人は、 わずか3.8%だった。出社を希望しない理由は「通勤にかかる時間や体力が もったいない」「子どもの都合で、リモートワークのほうが仕事と家庭の バランスが取りやすい」「職場の人と毎日顔を合わせるのはさすがにつらい」 といった意見が寄せられた。 一方、「コミュニケーションが取りにくくなる」「出社しないとできない 業務がある」「たまには出社もいい気分転換になる」など、完全リモート だと不都合だという声もあった。 AvaloniaさわってみてWPFとちょこちょこ違ったり XAMLエディタのコード補完が変だったりするけどなかなかいいな Reactive ExtensionさわってなかったからReactiveUIのあたりがなれないが続いてほしい MVVMにおいてプログレスバーの進捗表示を行いたいです 進捗はModel層においてのfor文の繰り返し回数を使いたいです このときViewModelにパラメーターProgressを使いモデル層のfor文の中で vm.Progress++1をやるのが一番簡単だと思うのですがこれはMVVMで分離していると言えるのでしょうか? ModelがViewModelに直接依存してるから分離できてない IProgressインターフェースってのが用意されているので ググって使い方を調べてくださいね IProgressインターフェースは皆に覚えてもらいたい便利なつかい方です >>132 reactとか学ぶと フログレスとか実装も糞簡単なんで しっこ漏らすと思いますよ それでいて実装理論も進んでますからね >>133 やっぱそうですよね >>134-135 IProgress勉強してみます ありがとうございます >>136 ReactはJavaScriptですよね? これ学んでも意味ないのでは? MaterialDesignThemesを.NET Framework4.6(Window10初期)で使いたいのですが、どのバージョンから何だろう? VSのNuGet画面で確認取れるよ 最新バージョンは4.6.2ってことだ >>139 MaterialDesignThemes v4.6.0以降は.NET Framework4.6.2以降が必要なようだ しかし、何でまたそんなに古くてレアな環境を >>140 >>141 書き方わかりにくくてごめんなさい。 .NetFramework4.6で(最初のWindows10 1507は4.6)動作するMaterialDesignThemesを希望です。 どんなWindows10でもインストール出来ることが条件なんです。 クライアントのPCはアップデートが出来ないだめです。 >>140 NuGet画面で以前のバージョンを取得出来ますか? 初心者なんでよろしくお願いいたします。 >>142 そもそもそんな縛りのかかっている案件にオープンソースのもの入れて大丈夫なのかが気になるわ >>143 VS少し触ったら分かることなので、それくらい自力で頑張ろうや >>142 そもそもサポート切れOSなんか使うなとしか言えん。 >>142 MaterialDesignThemes v4.6.0以降はNG →MaterialDesignThemes v4.5.0なら使える そんな保守的な会社が最初期のOSを使うとは思えないけどなぁ Anniversary Update (1607)以降なら.NET Framework 4.6.2以降が入ってるのに >>146 触ったらわかりました。 バージョン変えて依存関係も確認出来ることを知りました。 >>149 ありがとうございます。 MaterialDesignThemesを4.5.0で MaterialDesignColorsを2.0.6もインストールされました。 ビルドするとApp.xamlが4.9.0のままにしてるのが駄目なようでMaterialDesignColorsのところでエラーになります。 その行を外すと実行出来るのですがモノクロになります。 >>151 App.xamlのエラーですが、 System.Windows.Markup.XamlParseException: ''プロパティ 'System.Windows.ResourceDictionary.Source' の Set で例外がスローされました。' 行番号 '11'、行位置 '18'。' と出て11行は<ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.DeepPurple.xaml" />です。 例外の詳細は FileLoadException: ファイルまたはアセンブリ 'MaterialDesignColors, Culture=neutral'、またはその依存関係の 1 つが読み込めませんでした。見つかったアセンブリのマニフェスト定義はアセンブリ参照に一致しません。 (HRESULT からの例外:0x80131040) となっています。 どうしたらよいのでしょうか? >>149 の通り、1607の2016年以前のPCは恐らく社内に無いはずと情シスに確認して、.NetFramewokは4.6.2で行きます! MaterialDesignとは別の質問です。 WPFのデザインをGridを多用しています。各区画はStackPanelで縦か横の配置となるのですが混在は出来ないのでしょうか? 例えば [Label1] [TextBox1] ☑[Label2] の様な配置です。 WPFやる前はAndroidアプリをやっていてconstraintlayoutを使ってWidget(コントロール)を相対的に配置していました。 上の例であれば[Label2]の開始横位置は[Label1]の右端から、開始縦位置は[TextBox1]の下と言う感じです。 AndroidでもLinearLayoutがStackPanelと同じ機能ですが、constraintlayoutが流行っているようです。 DockPanelは上下左右を指定して順番に配置していける constraintlayout程細かなことは出来ないけど >>156 DockPanelで列の初めを揃えるとか出切ればと思ったけど、そういう時は枠を非表示にしたDataGridを埋め込めば良いのかなぁ? でも、Labelだけなら良いけどコントロールを貼り付けるのは面倒な気がする。 TabControlもTab毎にGrid設定出来るし、 GridSplitterは魅力的です。 あれこれ考えても進まないから、勉強しながらWinformからWPFへ移行します。画面デザインだけでMVVMには関係ない使い方で趣旨には合わないですが。 Avalonia11、マルチプラットフォームで デスクトップアプリ作るならもうこれで良いやんって感じなんだけど ブラウザコントロールがネックだ。 msは以前WebView2はマルチプラットフォーム対応にするとか言ってなかったっけ? あれどうなったんだろ。 >>158 ちょうどMAUI以外のフレームワーク覚えたいなって悩んでるとこだったから、俺もAvalonia触ってみようかな MAUIと比べてどういうとこがいい? 枠がなくて背景が透明でマウスホバーで色が変わるボタンはどのように作れますでしょうか ラベルなしのAppBarButtonのようなイメージです(AppBarButtonのラベルなしにしてもラベルのスペースが残ってしまいます) Buttonの背景をTransparentにしてもできませんでした HyperLinkButtonで色を黒にするとイメージ通りのものができていそうなのですが他に正攻法のようなものはありませんでしょうか >>155 WrapPanelで自作改行コントロールを使うのが楽 >>155 StackPanelの代わりにGrid入れ子にすればできそうだけど、面倒そう >>159 標準でDataGridがある、MacOS対応がCatalystじゃない(mono)、そこそこよく出来たMaterialDesign/FruentUIのポートライブラリがある(個人的オススメはFruentAvalonia) MAUIよりはWPFに近いXAMLとか 最近VSCodeの拡張が出たので一気に生産性上がった AutoSuggestBoxの高さなんですが、高さを指定しないと上段1個目のように親要素の高さになりますが、数値を指定する以外にフリーの状態の高さ(下側のもの)にする方法はありますか? https://i.imgur.com/XRguc77.png https://i.imgur.com/eWwHNx3.png ``` <StackPanel Orientation="Vertical"> <StackPanel Orientation="Horizontal"> <Border Height="80" Width="100" Background="Blue"/> <AutoSuggestBox Width="300" PlaceholderText="Test" Background="Red"/> <AutoSuggestBox Width="300" Height="50" PlaceholderText="Test" Background="Red"/> <AutoSuggestBox Width="300" Height="20" PlaceholderText="Test" Background="Red"/> </StackPanel> <AutoSuggestBox Width="300" PlaceholderText="Test" Background="Red"/> </StackPanel> ``` WPFでリアルタイムの折れ線グラフを長時間更新し続ける場合、どのグラフライブラリがいいのかな? ScottPlotでSignalPlotを使ってみたけど、時間が経つと重くなってしまいました。 更新方法は画面端で一度クリアでも、疑似スクロール(画面端で新しいポイント追加+画面外になるポイント削除)のどちらでもいいです。 そういえば昔レートをリアルタイム表示するグラフをWPFで作ってたな 懐かし issue見るとWinUI 3のx:Bindって前からメモリリークしまくってんだな WinFormsで特定のセルにボタンとかコンボボックスを設定していました。 DataGridView.Rows[row].Cells["special"] = new DataGridViewButtonCell(); 行毎に特定セルの設定は異なります。 WPFではどうするのでしょうか? セルテンプレートに変化する分のアイテムを全部入りにしておいてビジビリティで見せる見せないとか? まあきちんとしたカスタムコントロールを書いた方がいい気もする >>172 ありがとう。 セルテンプレートで出来ました。 最近、JavaでWEBアプリばっかやらされてたから浦島太郎何だが、.netってか、visual studioで業務アプリ作るなら何がオススメ? 売上の入力とかやるから明細入力が必須何だが 今は.net6がブレイクして猫も杓子もBlazorな感じだね、8でどうなるか知らんけど donetコマンドあればVSCodeで開発できるVisualStudio要らない、という風潮はしばらく続くかな どうせWebで動かすならフロントエンドもTypescriptでええやんってなっちゃうんだわ。わしゃもう帰ってこれなくなっちゃった WinUI3ってWPFにくらべてスカスカデザインすぎね? 従来通り高密度のデザインにしたかったら使えないのか コンパクトモードってやつでしょ ただ一部のコントロールしかコンパクトにならず いまいち .NET 8でWPFにOpenFolderDialogが追加されたらしい 今更かよw しゃーないからずっとFormsのフォルダダイアログ使ってたわ 1.43らしきものが来たけど、ドキュメント更新されないから詳細不明だ キターしようと思ったら先こされた Release notesは1日ぐらいまたないと いつもnugetが先 つか、WPFのWindows 11テーマ全然情報出てこねぇ 2年かかるのかよ MSクソ お客様はOSに合ったUIを求めてるからな 例えば、Mac操作しててWindowsアプリの画面出てきたら発狂するわけです WPFのWin11テーマってそれWinUI3でわ? しらけんど https://github.com/dotnet/wpf/discussions/7555 WPFのモダン化ということでここでみんなで投票したやん で、Windows 11スタイルと>>185 のFoldetDialogが決まったやん WPFのテーマは散々やらないやらないしてたのにやるのか どうせすぐに放棄される MSのUIフレームワークは短命 短命だったUIフレームワークってSilverlightとWTLのこと? SilverlightはWPFのサブセット/軽量版だね WPFもまたブラウザー内で動作できたぞ 今は出きるのか知らんけど >>191 お客様「アプリのフォントをMacと同じヒラギノフォントにしてくれ」 俺「◯◯万円かかりますので、お見積りを出しますね」 お客様「ならいいです」 .NET8になってフォルダダイアログが追加された 要望が増えるとカラーダイアログとか増えていくのだろうか? WinSCPのGUIってなんのフレームワークですか? >>204 良くあるFluentと見た感じが違うのは独自コントロールなのかな Template Studioが.NET 8に対応してくれるのってかなり先になるのかな どうでもいいけどUIデザインころころ流行らされても開発者的には迷惑でしかないよな FlatだのMaterialだのFluentだのどうでもええんじゃ でも使った瞬間に古さを感じるようなGUIがある 今の見にくくて使いにくいGUIの流行りが無くなればいいのにと思うけど >>212 そう?FluentUIは(慣れたので)割と直感的だけど VSが採用したので長期政権(今から最低10年)になると期待しているよ 見た目リンクなのかタダの文字装飾なのかわからんGUIはダメだと思う リンクにしても外部のwebへ誘導されるのかアプリ内なのかも遷移するまでわからない それってWinUI 3 Galleryアプリだと何処の事? クリック遷移する前に外部リンクか内部なのかわかるパターンを最近多分見たことがない 困ったときにアプリで何らかの対応をしてくれるのか それとも一般的なヘルプに飛ばされるのか オンラインヘルプは大体ヘルプになってないから死ねって思う windows10の設定だと上の方に普通の項目があって下の方にwebのヘルプ項目がある ディスプレイだと上部に ディスプレイの詳細 グラフィックの設定 と言うただの文字 下の方にwebのヘルプと言うタイトルの下に プロジェクターまたはPCに接続する 複数のモニターをセットアップする フォントサイズの調整 画面のちらつきを修正する こちらもただの文字 にしてもこれ典型的なダメGUIだよな オンラインヘルプと実際のやりたいことへ誘導は逆であって欲しい ヘルプへは抽象的に、機能へは具体的に 全てのPCが常にwebに接続できると言う固定概念がアホすぎる へーwindows10とwindows11はかなり違うんだ windows11は区別つくわ たしかwin7辺りまで区別はついたと思う win8の辺りからメトロとか入りだしてゴミ化した 設定アプリでは外部リンククリックで 既定のブラウザじゃなくてEdgeに飛ばされるのが不満ではあるけど まあ今後はwindows10でのFluentと言ってもらえると誤解が少ない Fluentデザインでリンクする場合の推奨事項はいくつか書いてあるけどそれはだいたい守られていない 実装者の裁量に任されている 外部にナビゲーションする場合にどうしろとも言及されていない リンクとボタンと機能があいまいになっていて 更に機能的に内部のナビゲーションでも文字だけになってる 設計の思想が曖昧過ぎる ダメGUIができる >>224 つべこべ言わずにwin11使えよ全ては直感が導くから >>225 自分のメインマシンはwin11 一部移行できないノートがwin10 win11の設定でもクリックするまで外部のナビゲーションなのかツールなのかどうかわからない項目がある 青文字だと外部へのリンクかと思わせといて サウンドのトラブルシューティングは内部のツールを呼ぶ ボタンにしとけと思うが… MSは意図的なのかどうかわからないけどそこの所のポリシーが一貫してない Fluentデザインでも規定されていない 横から脱線ですが >>226 >サウンドのトラブルシューティングは内部のツールを呼ぶ これが前々から設定アプリの一部で使われていると言われているReact Native画面ですか? ボタンの右側に外部へ飛ばすアイコンみたいなの付けたらいいと思う 勝手に一人でみんが脇見もせずに一つ論点を議論する場だと思う馬鹿もいるしw DataGridでヘッダー行だけスクロールしない方法ありますか? 久しぶりに触ったけど ListBoxの右クリメニューからの追加テンプレートの編集>生成されたアイテムの編集>現在のアイテムを編集が選択できなくなってるのはなぜ??? 他は編集できるのに… あああサンプルでもいいから何かないと選択できないのか 今まで気付いて無かったわ… よく帳票のデザインツールであるようなルーラーを表示するコントロールってありますか? TreeViewでnodeを選択したら、binding側で反応する方法がわかりません。 >>238 BindableSelectedItem みたいな添付プロパティを作るんだ Avaloniaで使われてるReactiveUIどうなんだ Community Toolkit + ReactivePropertyで十分か avaloniaぐらいFixしてくれれば安心使えるけど WinUI 3はあれだけIssueあがってるのに前回のリリースでfixしたの10未満 もうゴミ WinAppSDK 1.5 experimental 1 キター マイクロソフト自体も諦めてTeamsアプリではReact使ってるからもうReactでいいだろ flutterだめなのか Dartが覚えないといけないけどflutter自体は好きだなぁ c++/c#しかできないけどdart覚えるくらいならjs覚えてreactやりたい 当時は当然ビザなし旅行など出来なかったわけで 「貧乏で死にそうだから一家で日本に移住したい」なんて理由でビザが下りるはずもない 密航後に申請して永住許可を貰ったならまだしも、密航は嘘だというのは信じがたいね まあ、幼児のときに親についてきただけのことを非難するのはどうかとは思いますが Dartのコードや文法と言うより あのカッコだらけの内容が受け入れられない Stack Overflow では、Ruby が3強のGo/Rust/Elixir を抜いて、遂にトップへ! Ruby, Elixir : 9.3 万ドル Go : 8.9 Rust : 8.7 多くの言語 : 6.5 PHP : 5 Dart : 4.4 さらに、YouTube で有名な雑食系エンジニア・KENTA は、 Scala, PHPをオワコン認定した PHP, Dartは、学位なしの高卒がやる言語。 一方、Ruby on Rails, AWS Solution Architect が最高位の2千万円! だから、KENTAが推奨する初心者向けのキャリアパスは、Rails → Go のみ MordernWPF WPFUIの他に WPF Modernとかあったんか ほんと.NETのUI周りはMicrosoftがずっと放置してから リソース分散の無駄な事やってるよな AvaloniaUI UnoPlatform MAUI これもリソース分散の無駄 そもそもが再利用について考えてないOSチームが悪い 残念なのは再びネイティブ有利の社会が来ることはないと言うこと winformsって誰でも簡単にGUIが組めるという点で他の言語も含めて未だに手軽さで上回るフレームワークはないんじゃない? 廃れるのは惜しいと思ってるので機能強化してくれ - PCでもスマホでもWebでも(ほぼ)同じ体験ができる - 直感的なステート管理 - UIスレッドとバックグラウンドスレッドの処理分けが簡単にできる - まともなスケーリング、レスポンシブ対応 - モダンな見た目のUI、コントロールが充実している こういうフレームワーク要件が業務アプリですら当たり前になってきてるのに 今さらwinformsで作る気にはとてもなれないわ 100歩譲って、 C#初心者がで最初のGUIアプリ作る程度の規模なら選択肢の一つに入るかもしれんけど、 10年前ならともかく、先のないwinformsで今それやる必要ある?って感じ でもWPF以降のフレームワークって普及してないよね >- PCでもスマホでもWebでも(ほぼ)同じ体験ができる ネイティブアプリに同じ体験を求めるのは間違い Webアプリの体験で十分なら運用コストが高くつくネイティブアプリをわざわざ作る必要はない >- 直感的なステート管理 これは開発者の技量次第 winformsでもviewとmodelをきちんと分離してやればいいだけで他のフレームワークでも同じこと >- UIスレッドとバックグラウンドスレッドの処理分けが簡単にできる 簡単にできるやろ winformsだとできないと思ってる意味がわからん >- まともなスケーリング、レスポンシブ対応 これは確かに今のwinformsでは無理 >- モダンな見た目のUI、コントロールが充実している サードパーティのコントロール使えばいいよ ってことで問題は4番目だけ スケーリング・レスポンシブ非対応でもお手軽さが優先されるなら全然あり >>264 そこがなぁ。 最近のノートは高分解能パネルだし。 125とか150%がデフォだよ。 基本的にWinForms使いの技量は低いという認識です ViewとかModelとか言われても困惑すると思います >>266 マジかよ!! そんなに技量の低い人たちにも使わせることができるって凄いメリットじゃん スケーリング捨てても開発費が格段に安上がりになるんだから依然有力な選択肢だな winformsはバカを隔離するためのフレームワークだから無いと困る WPFUIはバグだらけってあるけど大丈夫かなぁ WPFは比較的高い品質たもってるから維持してほしいわ 細々とWPFは続くんだろうな 後10~20年もしたら自分らは抜けていくからその頃に無くなるんだろうな 5年経ってもWinUIとMAUIは現存のバグすら修正されず開発者に見限られてるよ >>273 君はやたら攻撃的だけど、具体的にどのバグが問題なのかな? 流石に1年経って安定していると思えるが バグの存在しない環境は存在しないが 君はandroidとか他の環境のアプリ作った事あるのか? よほどの事がない限りユーザーも多いのもあるから バグを自ら報告するはめにもならんし全然品質が違うんだけど >>275 誰に言ってるのかも結局何が言いたいのかもよくわからんレス UWPのこともたまには思い出してあげてください Windows 10 UWPアプリ開発Part 3 [無断転載禁止] https://mevius.5ch.net/test/read.cgi/tech/1627556967/ 人間の使える時間は有限 その時間をUWP学習や開発に割くなんて… XamlスキーマはUWP(WinUI2)とWinUI3で共通なんだからWinUI3のドキュメント不足とか表面的なんだよな UWP期間なしでReunionになってればとつくづく思うけど AppContainerはなんとなく安心感があるから最初から選択制なら良い構想だったとは思う ListBoxで質問です。 アイテム数が500個くらいになると最初の表示が数秒かかります。 データを遅延ロードさせると良いのだが、TabControlに貼り付けているのでタブが選択されていないと切り替えた時点で数秒かかります。 何か良い方法ありますか? >>282 <ListBox.Template> <ControlTemplate> <ScrollViewer VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling"> <ItemsPresenter /> </ScrollViewer> </ControlTemplate> </ListBox.Template> <ListBox.ItemsPanel> <ItemsPanelTemplate> <VirtualizingStackPanel /> </ItemsPanelTemplate> </ListBox.ItemsPanel> >>283 ありがとうございます。 明日試して報告します。 >>283 ところで VirtualizingStackPanel.VirtualizationModeは使っていますが、ControlTemplateのところが肝なんですか? >>285 それでも多分大丈夫。 ItemsPanelTemplate が重要で、これを VirtualizingStackPanel に変えてやらないと仮想化されない avaloniaのドッキングライブラリの ライセンスがGNU afferoに変更されてるな ただコミット履歴見ると元に戻す? >>286 こんな感じですが、初回表示の数秒待ちは変わりませんでした。 親Gridの1区画をTabControlで使い、その中にGridを切って、ListBoxの16個の要素を揃えて展開します。 <UserControl.Resources> <ItemsPanelTemplate x:Key="ListBoxItemTemplate"> <VirtualizingStackPanel/> </ItemsPanelTemplate> <DataTemplate x:Key="TestDataTemplate"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="3*" /> 途中省略 <ColumnDefinition Width="3*" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="0" Text="{Binding Data0}" /> <ComboBox Grid.Column="1" ItemsSource="{Binding Data1}" /> 途中省略 <TextBox Grid.Column="15" Text="{Binding Data15}" /> </Grid> </DataTemplate> </UserControl.Resources> <Grid DockPanel.Dock="Top"> <ListBox x:Name="PointDataListBox" Margin="0,0,0,0" ItemsPanel="{DynamicResource ListBoxItemTemplate}" VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling"> <ListBox.ItemTemplateSelector> <local:ListBoxTestDataTemplateSelector TestDataTemplate="{StaticResource TestDataTemplate}"/> </ListBox.ItemTemplateSelector> </ListBox> </Grid> 最初はDataGridで設計していましたが、TextBoxの各種イベントを使いたく、私の能力では困難でListBoxに代えました。 >>288 TabControl はタブが切り替わるたびにコンテンツの Load と Unload が行われちゃうから、 見た目がタブでなくても良いならラジオボタンで表示を切り替えるようにするとか? ↓こんなイメージ <UserControl.Resources> <BooleanToVisibilityConverter x:Key="BooleanToVisibility" /> </UserControl.Resources> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <StackPanel Orientation="Horizontal"> <RadioButton x:Name="Page1" Content="Page1" /> <RadioButton x:Name="Page2" Content="Page2" /> <RadioButton x:Name="Page3" Content="Page3" /> </StackPanel> <Grid Grid.Row="1" Visibility="{Binding IsChecked, ElementName=Page1, Converter={StaticResource BooleanToVisibility}}"> <TextBlock Text="Page1" /> </Grid> <Grid Grid.Row="1" Visibility="{Binding IsChecked, ElementName=Page2, Converter={StaticResource BooleanToVisibility}}"> <TextBlock Text="Page2" /> </Grid> <Grid Grid.Row="1" Visibility="{Binding IsChecked, ElementName=Page3, Converter={StaticResource BooleanToVisibility}}"> <TextBlock Text="Page3" /> </Grid> </Grid> 見た目が TabControl じゃないとだめならそれっぽく調整するか、 ↓の回答にあるような TabControl を継承したカスタムコントロールを作るか。 https://stackoverflow.com/questions/2193166/how-do-i-prerender-the-controls-on-a-tabitem-in-wpf >>289 建設的なご意見ありがとうございます。 TabControlじゃなくてもOKです。 画面切り替えしてデザイナーで確認できるので便利と思っていた程度でユーザーコントロールにしてからは個別でデザイナーで確認しているので問題ないです。 タブのHeaderも表示させてなくて、タブの切替は別のListBoxを選択でしたのでラジオボタン部は不要です。 この場合で非表示状態(タブで隠れていたListBox)から表示に切り替わった時には既にレンダリングは終わっているのでしょうか? やってみればわかるのですが、ちょっと改造に時間がかかるので報告が遅れそうです。 視覚的なレンダリングという意味なら、非表示なので当然レンダリングはされないけど、 非表示状態であっても VisualTree 上には存在していてロードされている。 TabControl の場合は、未選択のタブは単に非表示になっているわけではなく VisualTree からも削除(アンロード)されるので再度タブが選択されたときはロードからやり直し、みたいな感じ そういやあの5chブラウザ リポジトリごと消えてるよな >>291 すみません、今日は別件でやれなかったです。 TabControlだと最初の選択で数秒かかり(これがレンダリングかと思ってた)、別のタブを選んで戻ってきた場合は瞬時に現れます。なのでロードされっぱなしと思っています。キャッシュみたいな動作です。 ウィンドウを前回開いたサイズや位置で開くような機能ってテンプレートで実装してあってもいい気がする >>295 画面構成の変更(含むスケーリング変更、多画面、リモートデスクトップ)も含めてちゃんと対応するのが面倒だよ 対応しないのも潔いかと ちょっと試してみたらTemplete Studioで実装されてました DataGridでItemSource="{Binding x}"じゃなくて{Binding}とは何ですか? 何をBindingするのですか? 上の階層のDataContextをそのまま指定する場合の省略した書き方 >>302 ありがとうございます。 コードでbindingする場合は不要ですね。 DataGridのGotMouseCaptureでセル選択を記録していて、セルを選択してからDataGridのスクロールバーを操作するとセルを選択してないのに同じイベントが発生します。 以下のコードです。 void hoge_GotMouseCapture(object sender, MouseEventArgs e) { var datagrid = sender as System.Windows.Controls.DataGrid; var cell = (System.Windows.Controls.DataGrid)e.Source as System.Windows.Controls.DataGrid; if (datagrid == null || cell == null) return; TestData param = (TestData)cell.CurrentItem as TestData; if (param == null) return; int column = cell.CurrentColumn.DisplayIndex; セルじゃない場所はcolumn行までにreturnして欲しいのだが、こんなコードは駄目ですか? >>304 mousedownイベントからセルの行と列を見つける記事を見つけて目的達成しました。 教えてちょうだい。 <DataGrid FontSize=”24”>で定義している表ですが、DataGridTextColumnの列は24サイズで表示されますが、DataGridComboBoxColumnの列は反映す、デフォルト(12)のままです。 ぐぐっても見つからないのでお願いします。 >>308 すみません。解決しました。 <DataGridComboBoxColumn.ElementStyle> <Style TargetType="ComboBox"> <Setter Property="TextElement.FontSize" Value="24"/> </Style> </DataGridComboBoxColumn.ElementStyle> あれ? Windows11では、WPFでUwpDesktopのContract取れなくなった? Windows10から11にグレードアップすれば大丈夫のようだが、Windows11直接インストールはペケだね。 これは、周辺デバイス使うのに、いよいよWinUI3に移行しかないかもしれんね。 まあ普通に「何言ってんだこいつ?」と書くと検索して何かを発見するのだろうか? 質問文を書いている内に思考が整理されて、そのまま自己解決したり検索キーワード思いついたりすることあるよね もしかしてUwpDesktopをMicrosoft.Windows.SDK.Contractsに置き換えれば済んじゃう話かな reunionとか結局迷惑なだけだったな c++開発者救おうとして.netユーザーも死亡とか笑えない 最初からWPFのwin11theme対応や素直にUWPアップグレードしときゃよかったのに reunionは名前を変えただけで今もメインストリーム(笑) C++/CLI延命してWPF対応もしてたら素直に移行してくれてたんじゃないかなあ >>316 C++使いってクライアントアプリのGUIについてはかなり保守的な傾向があるし、パッケージ開発が中心のため開発の人月市場が小さい 大した金にならないのに延々サポートし続けなきゃいけない面倒な客が増えるだけだよ >>316 C++使いってクライアントアプリのGUIについてはかなり保守的な傾向があるし、パッケージ開発が中心のため開発の人月市場が小さい スキルはあるから適切に誘導すれば比較的容易に移行してもらえるだろうけど、 大した金にならないのに延々サポートし続けなきゃいけない面倒な客が増えるだけだよ >>316 C++使いってクライアントアプリのGUIについてはかなり保守的な傾向があるし、パッケージ開発が中心のため開発の人月市場が小さい 大した金にならないのに延々サポートし続けなきゃいけない面倒な客が増えるだけだよ >>316 C++使いってクライアントアプリのGUIについてはかなり保守的な傾向があるし、パッケージ開発が中心のため開発の人月市場が小さい 大した金にならないのに延々サポートし続けなきゃいけない面倒な客が増えるだけだよ 未だにMFC使うのはwinformのc#を知らないMFCおじさんなんだろう。 と自分のことを棚上げする奴 あの大量の引数だらけのAPIで開発できるのすごいわ C++/CLIの梯子外されたから仕方なくC++使いはMFC使い続ける >>323 逆にWinformsで開発してるとMFCが分からないだろ? >>326 MFCは3年前に足洗ったからもう見たくもないわ。 XAMLのステップ数を数えてくれるフリーソフトってありますか? >>330 その仕事かプロジェクトは辞めたほうがいいと思う >>331 XAMLはステップ対象にならないって事? ステップ… 無駄なstackpanelの入れ子を1000個ぐらい入れたらどうなるの? 実装の早い奴と評価され仕事が増やされる その後無駄実装がバレて減給 仕事は増えたまま 日立とかの大規模プロジェクトじゃまだステップ数で管理してんのか?笑 拝承はステップ数報告しないと品証部が承認しないとか言ってたな 10年ぐらいWindowsの世界から離れてるんだけど、 10年前はFormもWPFもメンテナンスモード状態で ストアアプリは低機能過ぎて論外、ということで UIに決定的な選択肢が存在しない状態だったと思うけど、 ひょっとして今もまだそのグダグダ状態が継続してるの? あいかわらずMSはUIに関して何のロードマップも示しておらず、 WPFが消極的に第一選択って状態? 追加質問 今確認したらMVVMのスレがなくなってるみたいだけど、 今もMVVMは推奨されてるの?あるいはオワコン化? 個人的にはMVVMには疑問しか感じなかったのでオワコン化してくれてると嬉しい >>333 それはよくわからない。。 同じマークアップ言語でいうと html とか css とかはどうしてるの? 俺が言ってるのは今どきステップ数を指標に用いるような体制だと、 そのこと以外でも今後色々と時代遅れなことをやらされるんじゃないかなという老婆心。 DRYを無視したコピペプログラマの方が、 最小限のコードでメンテしやすいコードを書いた人より生産性が高いと評価される、 みたいなことが起こり得る。 実体験。 >>341 各自、好きなもので勝手にやってくれという感じ。 全く力を入れてない。 >>341 MSとしては今は一応WinUI3推しなのかな 後にはMAUIも控えてる が、完成度がお察しなの相変わらずで状況は変わってない >>342 そういえばMVVMの次はMVUだなんて言ってたけど最近あまり聞かないな MVVMは割と出来の良いToolkitがやっと出てきて若干作りやすくなった >>341 ストアアプリの後継のUWPが開発者に不評でwindowsの先進機能を利用できる唯一のwinRT APIが宙に浮いてた Win32やWPFやWinFormsからストレートに利用できない んで別れてしまった物をつなごうとリユニオンと言うプロジェクトが始まって相互利用しやすい状況を作りましょうということに 今はそれが名前を変えてWindows App SDKと言う巨大なSDKの枠組みになった でも皆が思ったものとはかなり違うものなんじゃないかと その一方でネイティブからもいろいろ先進GUIを利用しやすいようにとWinUI3と言う新フレームワークも作られた これが非常に出来が悪いので積極的に利用しづらい状態 生殺し MVVMは原理主義者が減ったように見える UWPの時点でMSのサンプルやスケルトンもMVVMは意識されてないものが多かったし MVVMのフレームワークもMS外に出された >>343 一週掛けて遂にバラメーターで変更だけで済む方法を発見しました!より 汚いコードを大量生産する方が評価されるようなプロジェクトは辛いよ >>346 MVVMは何度も言っているように 最初からblandの為のフレームワークですから winformsでいいじゃん派だったけどwinforms製のService Bus Explorerってツール使ってみて、これはダセぇと思った やっぱwinformsあかんわ electron製のStorage Explorerと比較してデザイン雲泥の差 いつまでたってもMVVMが流行らないのはそれ自体というよりXAMLの難解さが原因だと思う あとはReactivePropertyとかPrismあたり使いだすと更に必要な知識が増えるし まともにMVVM出来るようになるまでの敷居が高杉 みなさんリプ感謝 どうも相変わらず決定打の選択肢が存在しない状況みたいですね。 先日経済ニュースでMSの一番の稼ぎ頭はAzure関連になってるって聞いたから、 もうデスクトップにはあまり投資する気がないのかもしれないですね >>343 もちろんステップ数が多ければいいって訳じゃないけども、 変化があったら何か理由があって修正したはずってのを管理したいだけなのです >>355 今どきはそういうのはgitとかでやるもんじゃないの? >>351 CommunityToolkit.Mvvm(旧Microsoft.Toolkit.Mvvm)がもっと早く出ていればな Prismは必要以上に肥大化して複雑になり過ぎた 何がしたいのかいまいちわからないけどワークスペースのライン数数えたいなら今はcloc一択じゃないかな 1.5は大型アップデートのようだな 開発体制変更でだいぶ変わったんだろうか >>360 WindowsAppRuntimeのインストール権限の仕組みが良く分からん 管理者権限は要らない、が正解で良いんだよね? .net frameworkと.net なんでこんな紛らわしい名前つけるのか .net coreでよかったじゃん 実際5.0になり、4.8を数字的に越えたからCoreと付けるのやめたんやしなぁ。 .NET Core 3.1の次だから本来4.0になるところを紛らわしいからスキップして5にしただけで 当初は超えてなかった 1.4のランタイムがMSStoreの更新してくれるアプリの扱いになってるから管理者権限なんていらないんじゃないの WPFの11テーマの対応って簡単に試せないのか? .net 9まで待てと? 儲かるのが、VB6の改造仕事しかない。 たまに、WPF仕事もやりたい。 未だにVB6のメンテってあるよな 濫造されたからね 俺もVB6のシリアル通信コントロール使ったアプリをWpfのC#でリメイクしたよ。 企業の設備がWndowsXPでVB6というのが膨大にある。 さすがにN88BASICは少なくなったが、その手の案件は、中抜き業者が手を出さない。 となると企業とダイレクト契約になり、利益率が高い。 契約してしまえば、WPFでもWINUI3案件でも、小規模は見積り有利な方に注文が来る。 ただ、VB6に比較して利益率低いので、普通はVB6案件しかとらない。 .NET Frameworkも4.8で終わらずに4.8.1とか出てるからな そのうちジワリと4.8.2とかなりそうよな。 4.9までいくとはおもわんが、4.8.4くらいまではいくと思う フレームワークのバージョンにコケるもクソもないと思うけど 親Windowから子Windowを開くのってMVVM的にはどう書くのが標準的なの? 普通にViewのイベント拾ってコードビハインドで子Window開いてやればええの? 子Windowを開くというUI自体がWPF的でないという印象がある どちらかというと、スマホUIのような画面遷移でどうにかするUIな印象 デスクトップアプリなんだから子Window開きたいというのも分かるけど リストビューのアイテムに隙間空いてんのかよ クリックしても反応しねー時あるからおかしーとおもったわ 責任者出てこい Apple musicアプリ快適すぎワロタ WinUI3だぜ?なんでAppleの方が作り方うまいんだよw MDIが作れないって意味なんだろうか? SDIで十分だけども MVVMの宗教上の問題だよ 親Windowのハンドルが必要だからVMでは開けない コードビハインドは使用禁止なのでViewでも作れない >コードビハインドは使用禁止なのでViewでも作れない それは誤解。viewにあっていいものはコードビハインドに書けばいい。 別にコードビハインドで良いじゃん、使う側わ知ったもんじゃないよ。 このスレの連中がいつまで経ってもコードビハインド論争してる時点でmicrosoftのmvvm推しが大失敗なのは言うまでも無い ビヘービアなりトリガーアクションなりのアドバイスすら誰も出来ねえんだもん 終わってるよ まあ結局コードビハインドにガッツリイベントハンドラ書くのがベストって結論出てるわな どうせビジネスロジックは別クラスなんだし MVVMは結局コードが爆発的に増えて本末転倒 >>コードビハインドは使用禁止 諸悪の根元 誰が言ったか 全てはこれから始まった むしろViewがViewを開く話なんてVMがまったく預かり知らなくていいことだし、むしろ知ってはいけないことでは? WinUIですが ViewModelのプロパティの値によって表示する コントロールを切り替えるのはどうすればいいでしょうか 例えば、そのプロパティの型は列挙型とします まぁbool型でもいいですが とりあえず必要なコントロールをcollapsedで非表示にして BoolToVisibilityConverterで1つ制御? WinUI は DataTrigger ないんだっけか。 ↓こんな感じのコンバーター作るとか? public abstract class EqualsConverter<T> : IValueConverter { public EqualsConverter(T trueValue, T falseValue) { TrueThen = trueValue; FalseThen = falseValue; } public T TrueThen { get; set; } public T FalseThen { get; set; } public object Convert(object value, Type targetType, object parameter, CultureInfo culture) => object.Equals(value, parameter) ? TrueThen : FalseThen; public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) => throw new NotImplementedException(); } public sealed class EqualsToVisibilityConverter : EqualsConverter<Visibility> { public EqualsToVisibilityConverter() : base(Visibility.Visible, Visibility.Collapsed) { } public EqualsToVisibilityConverter(Visibility trueValue, Visibility falseValue) : base(trueValue, falseValue) { } } 使い方: <Page.Resources> <conv:EqualsToVisibilityConverter x:Key="EqualsThenVisible" /> <conv:EqualsToVisibilityConverter x:Key="EqualsThenCollapsed" TrueThen="Collapsed" FalseThen="Visible" /> </Page.Resources> <TextBox Visibility="{Binding ControlType, Converter={StaticResource EqualsThenVisible}, ConverterParameter={x:Bind namespace:ControlType.Text}}" /> <ComboBox Visibility="{Binding ControlType, Converter={StaticResource EqualsThenVisible}, ConverterParameter={x:Bind namespace:ControlType.Select}}" /> >>399 ありがとございます ただ、単純なコントロールならいいんですが切り替えたいのが複雑なコントロールツリーなんです 要するに画面レイアウトごと切り替えるイメージです その場合はCollapsedで見えないけどメモリ上にはある?のでよくない? >>400 x:Bindだとコンバーターわざわざ作らなくていいんですね ただ、onewayとかにするとめんどくさいんですかね 後x:Bindは検証してませんがメモリリークどうこうとかあってうーん https://github.com/microsoft/microsoft-ui-xaml/issues/7282 エクスプローラみたいのを作りたいんか? ざっくりアイコンビューみたいのと詳細ビューを切り替えとか それとも違うのか? v7.0.0で、WinUICommunity Templatesがようやく使えるしろものになったかな? フレームコンテンツ作成で System.Runtime.InteropServices.COMException (0x8000FFFF): 致命的なエラーです。 (HRESULT からの例外:0x8000FFFF (E_UNEXPECTED)) が出るが、とりあえずは動かせるので進歩したようだ。 ダイアログのようにVMからVを操作したければサービスを作ってVからVMにインジェクションすれば良い 知らずにイキっている彼が惨めだ >>407 その手間が阿呆らしいと言われてる事に気づきたいものである VMとVとか中途半端な概念つくって実装破綻する阿呆 VMをなくした場合テストコードってどうするの? 書かない? 自動テストやってるプロジェクト見た事ないな。 SIerはどこもExcelでケース書いて手動でテストしてエビデンスでスクショ取ってた。 >>408 サービスは使いまわしできるから大した手間じゃない >>412 それって修正の度に過去のも含めて毎回やるの?形骸化しない? テストコードを書くことで DI や MVVM の利点が理解できたし、 テストコードを書くことでミスに気づいたりより良い実装にできたりって経験が何度もあるから、 個人的にはテスト書かないのはあり得ないな。 >>415 修正に関係した箇所しかテストしないところが殆どだよ。 個人的には自動化したほうがいいと思うけど、 低レベルなエンジニアだとテストコード自体にバグがある事も多いし、SIerのレビュアーはコードが読めない人が多いからスクショを欲しがるんだよ。 SIerのレビュアーは 受け入れテストだろうから 単体テストは受け取らないのでは? 基本UIテストが基本だろ 理屈でねじ伏せて単体テストで押し切れないかぎりは UIテストはやるっちゃやるけどわざわざスクショは取ってないな やりましたよー嘘はついてないんで信じてください、で 納品の単位がクラスや関数でない限り テストはUIテストやで 無論納品物はテストデータとUIキャプチャーみたいな このあたりもReact界隈では自動テストがちらほら見られる >>408 たしかに Dependency Inversion は一手間かかるがそれを阿呆らしいとしか感じられないのであれば残念 silverLightがポシャった時代から まじでなにも代わってない... MVVMで開発 hyperlinkをクリックしたらpopupが表示される というのはviewだけで完結するから、popupのisopenは hyperlinkのclickイベントをコードビハインドで書くべき?popupの状態を保持してなにかを動かすなどの処理はない 変な日本語だった popup.isopenは hyperlinkのclickイベント(コードビハインド)で書くべき? そんなんで悩むくらいならmvvmで書けばいいんじゃね コードビハインドにしたくなったらいつでも変えられるでしょ clickoneceで公開できないあたりがもうゴミだわなぁ https://github.com/dotnet/wpf/pull/8870 To be honest it looks like the code from WPFUI was copied without much quality control. WPFのwindows 11themeの方も大丈夫なのかね >>430 >How can it be possible that MS is investing 20 times more effort into MAUI than into WinUI3 20倍! MAUI始まったーーー! 言語能力が足りないので意味が分からない MSがMAUIをWinUI3の20倍開発してるなんてありえるんでしょうか?って意味に取れる WinUI3の開発が停滞してて開発の進まないMAUIにすら負けてるように思えると言うこと? >>434 それであってるよ WinUI3からは開発メンバー引き上げて撤退中っぽいという話 あげられてる証拠を見るとほぼ間違いなさそう 後、avalonia はItemsRepeaterが手におえなさすぎて ItemsControlに戻るってあった ItemsRepeaterはwinuiの方を参考に実装してんだろ? upstream(winuiの事?)とavalonia自身の問題で ItemsRepeaterが手におえないってよ リンク張りたいけどソースが見つからん 昨日見つけたけど見つからん MSの中でもとくに無能がUIフレームワークに関わってるんじゃないかってレベルで ずーっとgdgdなのはもはやお家芸の域だなw MS自体が出してるアプリはどのツールキットで書いてるの? VSCodeはElectron、teamsはElectron→Reactじゃなかったっけ? MS自身が主要アプリに自社フレームワーク使ってない時点でお察し MAUIも沈みゆく船かもな Azure(モバイル) - MAUI Office 365 Admin(モバイル) - MAUI Windows Terminal(Win) - Windows App SDK PowerToys(Win) - Windows App SDK Microsoftストア(Win) - UWP Visual Studio - WPF + ネイティブ?(2010年頃。最近のバージョンは不明) VSCode - Electron Office(Web) - React Office(PC・モバイル) - ReactNative Outlook(Web) - React Outlook(PC・モバイル) - ReactNative Teams(PC) - ReactNative (旧バージョンはElectron) Teams(モバイル) - ReactNative Skype(モバイル) - ReactNative Xboxアプリ(PC/Xbox) - ReactNative OneDrive(PC/Mac) - Qt ※2022年サービス終了 適当に検索して出てきたのまとめるとこんな感じ React系のガワは全部FluentUIっぽい >>442 PC版でReactNativeとしているソースを一つずつ挙げてください >MAUIも沈みゆく船かもな MAUIは最初から沈んでるやろ ちょっとずれた質問だけどFlutterよりReactNativeのほうが生き残ってるってこと? そっち方面全然知らなくて どっかで見かけたりするシェアはreact nativeよりflutterのほうが上でしょ 瞬間風速でなくてGoogleにとってflutterの戦略的メリットが無いと言う基本構造が続く限りは コスト削減の煽りでEOLのリスクがあるのです 簡単に簡素なアプリを作りたいのならばflutterみたいのは向いてないと思う 視覚的に開発中に階層が深くなる系は厳しい 階層深くなるのはプログラマの責任 ReactでもFlutterでもXAMLでも変わらん 分割考えず1ファイルに詰め込むアホの所業 ここ3,4年Flutterばっかやってるけど Flutterはもう1歩頑張ってほしいな Xamarinおばさんって誰のことかと思ったらあの人か 個人的にはFlutterが一番マルチプラットフォームとしては使いやすいが、 Android専用ならJava/Kotlinで書いた方が楽というジレンマ Java製のマルチプラットフォームソフトはどのOSでもアウェイ感が強かったよね 何故かFlutterならアウェイ感が無いと思いたい人が一部にいるw Flutterはカクカクするけど標準で部品が充実してるからモバイルのみのマルチプラットフォームですばやく仕上げたい場合に適してる MSのようにウェブもデスクトップも考慮する必要があれば断然ReactNative >>439 そらMSで優秀な奴らはカーネルとかクラウドとかAIとか書いてるだろうから UI部隊にいるのは相対的には劣ったエンジニアなのは当然 それでも世間一般から見たら上澄みだろうさすがに MSがWindowsに投資するのは何年も前にやめてるから当然 >>460 PythonでFlutterアプリを構築できるFlet OSベンダーでありながら他社フレームワーク頼りなのはまじうんこ react nativeってwindowsだとうらで うんこ品質のWinUI3が動くんだろ? Skiaバックエンドが良いか悪いかの議論が元々あって 結局上位のフレームワーク(Flutter)に引きずられる形だった そこにreact-native-skiaと言う選択肢がv1.0になったから注目 https://shopify.github.io/react-native-skia/ https://github.com/shopify/react-native-skia flutterはモバイルはskiaダメだからからimpellerに移行しようとしてるよな RubyおじさんがFlutterおじさんに変わっただけでスレ汚しに来るのはご遠慮願いたい 集団でシャンフロ叩いてたのに2期が決まると手のひらクルッ! ここんとこずっとTypeScript&Rectやってて、久々にC#でデスクトップアプリのコード触ったら 色々めんどくさっ!てのる >>475 プラスwinuiだとゴミ品質で 地獄へようこそ MVVM地獄... コードビハインドで回避できるんだけどねーー UIの実装だけとっても 工数換算で桁が違うぐらい簡単ですよ 実際microsoftがgdgdだから俺もreactに乗り換えたい Reactすら最近は工数かかりすぎで避けられている その中でWPFやる人は貴重 Reactでデスクトップアプリ作れるの? なら乗り換え検討するけど。 え、そこからなのか それはさすがに外の世界を知らなさ過ぎ >>486 WPFですら、WebView2貼り付けたりCefSharp入れて普通に書ける 継ぎ接ぎだらけでかゆい所に手の届かない微妙UIのTeamsでは興味を惹かれないな WinAppSDK 1.5.2 fixされた問題 7つ しね そのうちメンテナンスされなくなって windowsOSのUI周りに必要なとき にだけ更新されるライブラリーになるのかな? kotolinのこう書けるのおもしろい sealed interface TestUiState { object Loading : TestUiState data class Success(val uiModels: List<TestUiModel>) : TestUiState object Error : TestUiState object Empty : TestUiState } >>486 もう大分昔に Webアプリケーションが デスクトップアプリとして動かせる時代になってるから (例: VS code、Slack、旧Twitter) メインの開発環境はそっちに移行しといた方が良いよ ブラウザー内でも動作できるデスクトップアプリが作れるようになる electronでスタンドアロンで作成すれば認証なんか関係ない インストーラも味もそっけもないがelectron-winstaller使うか、pascalごり押しに なるがinno setup使うか選択できる(VSCodeはinno setup使ってる) 社内サーバーだからhttp:でいいやろと思ったら Chromの機能制限がすごいんよね chatGPT3.5で昨日からWPFの質問をしてもxaml等がまともに表示されない Chromeの問題なのかChhatGPTの問題なのか Cursorでリポジトリ丸ごと突っ込んでGPT-4かClaudeに聞いた方がいいよ >>503 今までずっとまともに機能してたのに 数日前からまともに答えが表示されない 質問いいですか? <TextBox Text="{Binding Text1}" /> <Button Content="_Button" Command="{Binding Command1}"/> 上記のような場合、テキストボックスにフォーカスがある状態で Alt+B を押すと Text1 の値が更新されません。 UpdateSourceTrigger=PropertyChanged は重いので避けたいのですが、ほかによい方法はないでしょうか? フォーカスが外れるまで更新されないのは仕様なんじゃなかったっけ フォーカス外したら上手くいかないかな ありがとうございます。 とりあえずAltキーが押されたときに更新してみます。 もう少し美しい方法があればご教授ください。 private void Window_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.System) { foreach (var bind in BindingOperations.GetSourceUpdatingBindings(this)) { bind.UpdateSource(); } } } メニューやツールバーもフォーカス外れないから更新されないのね… もうvmからview更新するわ WinUI3を使わざるを得なくて今いじってんだけどデバッグするごとにインストールされるの無効にできないのこれ? あとタスクバーのアイコンも変えられないんだがマジで破壊的変更多すぎるだろ過去のノウハウやナレッジがことごとくゴミになってて誰がこんなフレームワーク使うんだよ・・・ しかも誰も使ってないからググってもまったくヒットしないしもう萎えたわ 忘れても良い技術 他で何の役にも立つことが無い事が確約された技術 WinUI 3 Galleryが更新されてたから開いてみたけど、ちゃんと新コントロールが追加されて行ってるんだな >>514 わからないことはとりあえずCopilotに質問してみたらどうだろう 久しぶりにWPF使ったけどやっぱいいな 16bitマイコンのC言語を今いじるとアレ過ぎるだけだが 新コントールよりバグとりをしてくれと思う 誰かの引用すると >本来の開発時間より WinUI のバグと戦っている時間のほうが長い説ある ほんとこれでWinUI時間の無駄 >>518 1年位前は必ず落ちるコントロールページがあったけど直ってるな 違和感のない今時の見た目と操作感のコントロールが必要ならWinUI3しか選択肢がない >>521 WPF Gallery Previewで見るとTransitionがないのでWindows10レベルな印象 React Native galleryはwindows8の見た目のまま 今の所RNWは他のコントロールを一切使わずにwebview2だけをロードするガワアプリ専用かな >>520 ほんそれ 15年以上前のWPF初期の時代からずっとそれなんよ プロジェクト開始前の実現可能性でことごとくWPF不採用WinForms採用になる理由がまさにそれ WPF使いたくてもライブラリもカスタムコントロールも非対応のないない尽くしでどうしようもない プライベートや試験実装でWPF使ってもバグや技術的に実現困難で途中で破棄せざるを得なかったことが一体何度あったことか しかも何度も具体的にバグ報告して最終的に開発者ですらもうWPFのアプデしないからバグもそのままになるわごめんやでやったのは笑うしかなかった JavaFX(Glassfish)もいち早く触ってたがXAMLと違いFXMLはXML+CSSでXAMLのようなResourceというクソ面倒かつ沼のような実装じゃなかったのがマジで神だった コントローラーとイベントハンドラのマッピングも直感的で非常にわかりやすかった まぁ結局JavaFXも廃止されてしまい未だにSwing使われてる時点でJavaもお察しなんだが だからさ もうWebView2でReactでいいだろ 何の問題も起きない >何の問題も起きない それは言い過ぎ 数千、数万ファイルの文字情報量、サムネイル数を扱う場合や 数万レコード以上の表を扱うスプレッドシートなどネイティブコントロールが必要 (自分が開発する分野じゃないけど) formsのチャートコントロールでグラフ描画してます。 ボタンを押すとグラフ描画して、最後にスクリーンショットを撮るようにしたのですが、画面には描画されているがスクリーンショットファイルには凡例と軸などはあるがグラフがないのです。 適当にググったDoEvents関数の後にスクリーンショット関数を実行するとグラフが残りますが、一部欠けることがあります。 レンダリングが終わったことを知る方法はありますか? 同じ人かな? ふらっと C#,C♯,C#(初心者用) Part160 > Windowsで画面の外にある範囲とか後ろにあるものを含めてスクリーンキャプチャ頑張ってしたいです > 例えば画面の外に出てしまったExcelなどです。 > C#でそんな魔法の関数ありますか?Windows APIでもいいのであったら教えてください > 描画する前の段階のメモリにアクセスとかそういう関数とかあるかな それはそれとして stackoverflow.com/a/54842682 >>526 データグリッドはReactのが早かった(*бωб) WPFはデータバインディングが遅延して糞でえらい目に遭ったぞい >>527 チャートコントロールのPostPaintイベントハンドラを作成して描画フラグを立てることで対応出来ました。 >>524 今のMSの新しいの作っては投げ出す酷さと比べたらWPFはかなりマシだろう 補助ライブラリ的なものは全然足りないけど、コアの部分はそれなりに作り込まれてるように感じる (必要以上に高機能にし過ぎて使いにくくなってるのはさておき) 回避出来ないようなWPF自体のバグってそんなにある? >プロジェクト開始前の実現可能性でことごとくWPF不採用WinForms採用になる理由がまさにそれ すごい現場だな。業種何だろ? UIフレームワークのバグと格闘することほど時間の無駄なことはない たいていは格闘してもバッドノウハウとして他で通用しないし だから、多少クソ言語だろうとUIフレームワークの出来が良ければ そっち選ぶは WinFormsはHiDPI環境への対応がクソだったけど、 バージョンアップの度ごとにHiDPI周辺を修正してるから最近はマシになったのかな? >>526 ,529 reactで試したらデータを表示するパッケージならデータ量はそれほど問題なさそう (見えてる部分だけを上手くDOM構築してる) でもスプレッドシート的なパッケージ(セル複数選択、コピペ、IME入力)になると性能が一気に落ちる その用途ではネイティブコンパイルなQtが凄く軽い 10万行近くのデータそれぞれにrandで数値文字列を追加する程度ならラグが最小限 Reactが遅いことに気がついた奴がいるようだ 「Microsoft Edge」のUIが劇的に高速化 ~内部プロジェクト「WebUI 2.0」の秘密 https://forest.watch.impress.co.jp/docs/news/1595717.html >>536 WPFは大量行の処理だと仮想化必須で 仮想化するとこんどは表示がもたついて スクロールして行の選択の操作が辛いのよ 正直いってReactのほうが何倍も早い 特にWPFはアニメーションが辛いし糞遅い ハードウエアレダリンクがなかなか効かないから 3Dポリゴンも含めてハードウェアレンダリングは効いてないね >>537 EdgeのUIを構成してるReactの使い方がクソでしたスマンスマンって話だろ そもそもウェブUI/UXフロントエンドのデスクトップ実装と比較してWPFが〜というよりXAMLのメリットが一つもないゴミやからしゃーない フォントの色一つ変更してルールで適用するのだけでどれだけ面倒くさいか、Xamarinなんてプラットフォーム毎に個別にコードビハインドさせられて卒倒しそうになったわ アニメーションやベクターグラフィックスなんて正気の沙汰じゃないくらいの困難かつ苦痛 これがCSS(SCSS)ならどんだけ簡単でシンプルで疎結合にできるか まぁMS系技術者はウェブ未経験者ばかりで>>534 みたいなCSSアレルギーなジジイが多いのも問題なんだが 今やどんなPCもゲーム以外の普通のアプリ実行でパフォーマンスが不足することなんてなくなりReact NativeやElectronやTauriでも全くストレスがない 逆に.NETの最大のデメリットである起動の遅さ、UIのかくつきやもたつきでウェブ実装にパフォーマンスで完全に負けしまってるという逆転現象が起きてるの草生えるわ >>543 そんなに息巻いてどうした? >>538 ,540 パフォーマンスの話では.Netとの比較しか出来ないよな 何せ >React NativeやElectronやTauri 製のスプレッドシートアプリがないから MS 365のExcelなんてモッサリ過ぎるから無理して作るのは負け戦だしな >>537 WebUI2.0ってなに? 非公開なのかな? Reactが遅いのは確かだがそれはWebフロントのフレームワークやライブラリの中では遅いほうというだけだからな 嫌なら他にSolid.jsやSvelteなどを選択すりゃいい それよりもプログラマーたちは絶望的にcssが扱えない 扱えないというよりもデザインセンスゼロだから何をどうすればUIを構成するのかも理解する脳みそを持っていない そのうえレスポンシブ対応となるともはや未知の領域 そしてそれはデザイナーの仕事だと逃げるのがやっとなんだよ Webフロントエンドエンジニアですらこんなクソスキルばっかだからな この指摘をすると必ず「デザイナー笑」みたいなレスしかできない無能が現るんだよな 反論にもなっとらんわ いちいちスキルゼロを自己紹介しなくていいぞ >>548 日本人が中国人に20年差をつけられてるのはソフトウェアだけでなくデザインもだからしゃーない Vue/Viteは中国人が開発したしGithubでスター多い人気リポの中国人開発者の多さよ 極めつけがメーカー・個人問わず日本人が作ってるアプリのUI/UXの酷さよ 一体何十年時が止まってるんやろって酷いUI/UXしか存在しない デザインできない奴がコンプレックスで噛みついてるだけなんだからほっとけ できない奴は本当にできないんだよな 良し悪しが判断できないんだとさ 中国とかAppleのマネしてるだけ、なぜAppleのUIが正解とされてるか不思議だけど 今後は生成AIの力を借りて デザイナー()さん程度でもコード書けよ 自分のアプリのスクショをChatGPTに見せてこういう感じにしたいと言うと修正案のデザインカンプを文句一つ言わずに無限に出してくれるから最近マジで活用してる そのまま使える事はないけど、たまに面白いアイデアが入ってる事がある。 なんだったらそのままコードの叩き台も書いてもらう >>549 >極めつけがメーカー・個人問わず日本人が作ってるアプリのUI/UXの酷さよ 優秀な人がゲームに取られてるイメージ 中国は単にバブったのが最近だったからで、デザイン要素が高く評価されて お金に還元される循環が弱くなると衰退してくでしょ >>549 日本では底辺のITドカタ産業だからな。 こんな産業に(プログラマ・デザイナともに)優秀な奴が来るわけないだろ 優秀な奴が来るアメリカ等のIT強国とは違いすぎる 海外が金掛けてデザイナをキッチリ雇ってる反面、日本はケチってデザイナ雇わないから酷いってだけの話だろ UI/UXデザインまでエンジニアがやってどうすんだよ >>556 >日本では底辺のITドカタ産業だからな。 未だにIT産業が虚業だと聞くことがあるからね PC黎明期に日本では不動産バブルによって製造業「ものづくり」が絶頂でだったことの老害マインド、負の遺産だよ >>557 >UI/UXデザインまでエンジニアがやってどうすんだよ 外国では非ドカタ産業だから専門職の人がするんだろうが、ドカタ産業の日本ではドカタがやるに決まっているだろ あと、日本でもエンジニアはデザインしないだろ。 いくら日本のITがドカタ産業と言っても、優秀な人材のエンジニアにはやらせない、やらせているのはドカタって連中だよ >>558 今のIT産業の前身は人身売買産業だからな Reactドカタがドカタを脱却したがるのはわかるがWPFを貶しても何も変わらないぞ そもそも日本でのモバイルアプリ、Webページのコーディングやデザインが、 アマゾン配達員と変わらない付加価値の低い差別化要素を廃したラスト1マイルの単純作業と見做されている Reactすらできず過去の遺物のWPFに縋ってるジジイどもw 土方系ソフトはデザインに金かけるくらいなら削るって考えだからね >デザインに金かけるくらいなら削るって その発想は日本じゃなくてグローバルで広まるな、特に各分野のメジャープレイヤーが固定化した後は AIで絵心ない素人が何となく見栄えのする画像を生成出来る様になって、(日本では)絵師が窮しているのになぞらえると プログラマだけで作るUIも飛躍的にレベルアップしてUIデザイナーがこの先生きのこする予感 土方系ソフトでキーボードで操作できないようなUI出したら即クレームだからな > プログラマだけで作るUIも飛躍的にレベルアップして 絶対にない プログラマーはUIを知覚する脳みそが原始人レベルに未発達 たとえAIが作ってもそれを利用することが不可能 >>567 凄い偏見だなw 老舗アプリは硬直化しててもやむなしだけど、 WPF製で開発がアクティブなやつで特定のがあるのか? >>567 Visual Studioの事を言ってるのか? ここのおっさん・ジジイどもが如何に普段ゴミみたいなUI/UXの業務システム()開発してる土方かよーわかるわ 何が日本は海外みたいにデザイナー雇わないからどーのこーのってこいつらホンマにエアプすぎて草生える 海外は人気のデスクトップアプリでも2〜3人の少数精鋭で作っててプログラマーがデザインもこなしてんだよアホ そもそもデザインセンスない低能がUI/UX開発できるわけねーだろ馬鹿が そーゆーセンスの欠片もない馬鹿な客の意味不明で無茶な仕様書で詰められながらゴミのようなシステム開発してる土方ばかりだから日本は中国から最低でも20年ソフトウェアもデザインも遅れてんだよ >>570 見せてもらおうか 中国の人気デスクトップアプリのデザインとやらを って言って欲しいのか? 人を雇う余裕がない零細ベンチャーならともかく日本でも海外でも売上規模の大きいソフトならUXエンジニアもUIエンジニアも普通にいる 仕事したことないのかな? >>572 wpf辺りだとその一言で大体論破できちゃうの面白いな Html出来ないからWpfに必死でしがみついてるのに このスレの住人にCSS出来るのなんか少数だけでしょ そもそも生CSSですらやだやだゆーとる無能の老害がSCSSとか理解できるわけないわな しかもVSとゆー世界一優秀なデバッガ搭載してるIDEに慣れ過ぎて使われになっとるIT土方がVScodeで開発環境構築とか不可能なん目に見えててクソワロタ CSSすら理解できへん無能の老害どもがGitとかモジュールバンドラとかlintとかprettierとかまったく理解できず涙目でファビョってるの想像したら草生えるわ まぁその前に無能老害はReactのJSX/TSXやReduxを絶対に理解でけへんわ そもそもデザイナーとかゆーてる時点でガチのIT土方なんバレバレやな 今どきウェブ系のほーがフルスタックでよっぽどレベル高いっちゅーねん デザインもフロントエンドもバックエンドもDBもクラウドもなんでもやるし そもそも今ウェブではフォトショやイラレじゃなくてFigmaやSketchやAffinity使うことすら知らない美的センスゼロの老害どもクソワロタ プログラマーがデザインセンスゼロで醜悪なゴミアプリやサービス作っとるの日本だけやぞさすが楽天の国やな そーーいえば昔箱崎のIBMにいた時 中の人がVisualStadioはMSが作った 中途半端なエンジニアを大量生産するフレームワークやと言っとったな 読点も打たずに長文を垂れ流しとるの、どこのハゲ頭だ? そういうけどフレームワークというものがソフトウェアのエンジニアリングをやる人と、 その先のビジネスのエンジニアリングをやる人とで分業する仕組みだもんね。 MSですら見捨ててるWPFにしがみつくおじいちゃんたちの断末魔 WPFのBindingを使いこなせるおじいちゃんなら、React や SCSS は楽勝で使えるようになる これらは、楽勝で使えるから広く使われるようになったのだよ bindingは当たり前だがMVVMでやれるかだ? >>590 VSのUIなら、 このスレの(非ドカタ/プロ)おじさん・じじいなら作れるだろ。 できないようじゃベテランのプロじゃないだろうな(できないのは永遠に低レベルのドカタだろ)。 あと、おじさん・じじいぐらいになると実力的にはフレームワーク・コンパイラ・デバッガ・プロファイラ等も作れるだろうが そりゃあガワをそれっぽく似せたものは作れるだろうけど… 作れるの認識が決定的に違うか UIという言葉の範疇が全く違うか VS自体まともに使ったことがないか のどれかだろう VS CodeならともかくVSのUIとなると要素も機能も多すぎて 作業量的に個人でやろうという気になるレベルじゃない >>596 >作業量的に個人でやろう >>590 は個人(1人)でVSみたいな(複雑なUIの)アプリを作れる超すごい奴いる?って尋ねているのか 複雑なUIのアプリでもデザインからコーディングまで一人でやるのが日本流開発なのか ちょうど俺がXAMLでもJSX(React)でもどっちも作れるけど Reactの方が何倍も簡単だよ ここのおじいちゃんたちはcssが絶望的に理解不能なんだよ まあその前にUIというものを理解したり設計したりする脳みその機能を備えていない Reactはいいけど たいしたことないのでもcssが自由に扱えない wpfとか他のでいいやとなって慣れないかないのてあった MaterialUIとか、それこそFluentUIのReact版とか、出来合いのコンポーネントいっぱい入ってるライブラリ使えば、「XAMLでハックな使いかとしないと書けない」レベルよりちょい下くらいまでは、生のCSS触らないで簡単にUI書けるよ。まあ凝ったことやるならCSSわかってた方が良いのは確かだけど、覚えコツ掴むまで一週間も掛からないでしょ 食わず嫌いがすぎる webアプリ作るにも今はどんどんjavascriptやcssをあまり触らないような方向に流れてるよね ここ数年pythonとかもそういう流れ コードや拡張HTML使うとか 装飾はテーマ reactすら使う局面は少なくなってくるだろう htmxみたいなのやstreamlitみたいのが主流になるんじゃないかと reactとかは業務上特殊なUIやデザインの場合だけであとはみんな素の状態で使う WPFみたいなのはどんどん居場所がなくなる 大体みんな同じ構成のページを使ってる WPFでもtemplate studio使うのと似ている それから外れなければほぼHTMLやcssやjsなんて勉強しなくてもいいのに今はハードルが高い それを最近の簡易なライブラリ使ってでボタンとかテキストだけ書けば使えるようにしてる reactやrazorなど不要 まだまだ発展途中だと思うけどみんなめんどくさいと思えば思うほどこのジャンルが発達する 業務じゃない分野は特に 自分は数年前からめんどくさくてツールでこれらを使ってる XAMLで作るとUIコントロールの都合に合わせる設計にならざるを得ない HTML+CSSだと本当に作りたいイメージを実現できる ここの人たちならWPFでPhotoshop作れるんかな まあそのうちUI要素じゃなくて意味というかセマンティックでコードを書く宣言的な世界になるんじゃないかな 必要なセマンティックを書くとUI要素が選ばれて表示されるような未来が近いのかもね あーpythonとstreamit初めて触った時は衝撃だったわ ボタン表示して戻り値を得るのに if x == st.button これだけ イベントハンドラとかいう概念はない。 ここまでする?て感じだったわw まあガワはReactだけどさ。 UIを書くという行為自体がどんどん特殊分野になるというのはそうかもね >>597 論点がズレ過ぎてる 590は「WPFで」「簡単に」「VSみたいなアプリ」が作れるかどうかを聞いてる 対して>>591 は「VSのUIなら」「このスレのおじさん・じじいなら」「作れる」と回答している 文脈を加味すると「(簡単に)(WPFで)作れる」ということになる >>596 は「このスレのおじさん・じじいなら」「VSのUIなら(簡単に)作れる」への反対意見 作業量の話は「簡単」ではないという趣旨 個人前提で書いたのは591が個人前提で書いたのに合わせただけ 組織前提の話なら591のような書き方にはならない それから「WPFでUIを作る」と言えば UI designingのことじゃなくUI implementationのこと 当然UIコーディングは含まれる >>591 の「VSのUIなら作れる」は「VSのUIならデザインできる」という意味だったのかな? まさかね streamlitだけで十分ならHTML+CSS知らなくてもなんらかのUIは書ける セマンティックな世界に近づくと個別のUI環境は知らなくてもいい 同じセマンティックから各種のUIが作られる XAML知らなくてもいい 宣言的でセマンティックな要素で書けるといいことがある 何々を表示する場合今だとlabelにするかtextblockにするかとかtextboxにするかなど人間が選んでる これが大多数の人間のわずかな時間を奪っている 膨大な学習時間を掛けている これが必要な行為なのかと言うこと 正の数値でありそれが不変で200以下であると言うことが判っていたらそれに応じたコントロールが選ばれて 入力可能なら200以下に限定される仕組みが実装される まあ実際MSのリポジトリで今一番盛り上がってるのはセマンティックカーネル https://github.com/microsoft/semantic-kernel C#で使ってるやつどれだけいるか知らんけど。 >>615 それ、初めて聞いたが、 UIよりAI系の勉強したほうが自身のキャリアに良いって思う。 と思っても、俺自身勉強していないが。 いまや情報系の学科ではAIを教えているだろうから、時期に若い奴からこんなことすらおじさん達はできないですか と言われるんだろうが。 >>614 学習時間かけるなら、UI関連よりAIだろうと思うが でも、このスレにはUIに膨大な学習時間を掛ける必要・価値があるって奴が多いんだろうが >>615 よーし、C#でRAG実装しちゃうぞー!なんて輩が今の.NET使いから現れるとはとても思えんがな(´・ω・`) いつの間にかUIに限定されてるけど、 結局VSとかPhotoshopみたいなアプリをWPFで作れるの?作れないの? 作れるなら何日かかる? UI以外も含めてならかなりの規模の開発陣を入れて数年かかるよ Photoshopは各種のフィルタなどは開発に力を入れていて 最新のCPU機能を使って最善を目指してる 何十年も前から先端を走る開発者を集めて巨額の投資をして開発してる MSやアドビが大きなリソースを割いて開発しているものを日数単位で個人が開発出来るもんじゃないよ すでにあるコンポーネント使った似たようなものを作るのが精いっぱい VSのソースが提供されてるからそれを使ってarduinoのIDE等が作られている 大昔、VSのIDEのコア部分だけみたいなライブラリー使って仕事で開発した事がある VS2022のUI/UX自体が既に10年以上遅れた酷いセンスかつクソ重いのにお前らは一体何を顔真っ赤でファビョってんねんクッソウケるわ まぁかといってJetbrainsのIntelliJ IDEAはもっとクソやけどな そやからIDEの中ではVSが最強なことに変わりはないのは事実やな そもそもMS製フロントエンドフレームワークがOSネイティブやないからおかしな話になってんねや 本来Windows Desktopアプリとしてビルドされたバイナリはどれだけ古かろうが実行するWindowsのバージョンが違ってもOSネイティブのUIになってればWinUI3とかゴミみたいなFWも必要ないんや Windows 11で実行してもMicaもAcrylicも適用されへんのがクソすぎるねん まぁそもそもWin11のUIはWin10のShellの上に無理矢理アプリとしてかぶせてあるからダイアログとかも古いままっちゅーオチなんやが これがmacOSならどんだけ古いアプリでも最新のSonomaで起動可能なら最新のOSネイティブのUIで表示されるからな Appleのエンジニアが如何に優れてるかよーわかるわ VSってcodeと勘違いしてたわ ソース出てるのはcodeのほう > Windows 11で実行してもMicaもAcrylicも適用されへんのがクソすぎるねん そこらへんはリソース食うから無理にというか絶対に開発環境のソフトには必要ないと思う 常にWinformsでよくね?が頭の中にチラチラする 精神衛生上非常によろしくない 慣れるとWPFでフォーム作るのが楽と言うかリフォームしやすいな。 出来ればConstraintLayoutを取り入れて欲しいな。 >>630 WPFゴリ押ししてた時でもWinForms(特にVBおじさん)勢からの反発がすごかったんにUWP(WinRT)と.NET Coreのあまりのクソさに優秀な開発者からも総スカンくらってWindowsストア(MSストア)にトドメ刺したからな やっとUWPが大失敗の原因やったんやと認識したときには時すでに遅しやった にっちもさっちもいかんくなってMSの開発環境にしがみついてるいにしえの底辺IT土方おじさんを取り込むためにMAUIでもWin32延命しまぁ〜す♪宣言で結局WinFormsでよかったんやになったんや Win8〜8.1でUWP(WinRT)と.NET Coreに散々苦しめられた俺はもう二度とUWP触りたくないわ silverLightコケた時に 今後はHTML5に全振りします!って MS自身が宣言してたじゃん UWPを思い出すと飯がのどを通らない 苦しかったただひたすら苦しかった 今の状況と比べたらUWPは100倍まし Microsoftが力入れただけあってあれだけの規模のものを 今よりずっとましな品質で作りあげた 今のWinUIの品質ときたら最悪 一個一個しっかり完成させてから次行くか 辞めるなら辞めるでスパッと切ろう ほんとマジでどっちかにしてくれ 今電卓ですら起動がもっさりだからな win7までいつものきびきびした電卓だったのに 今は定期的に機能追加してアップデート続けてドンドン遅くなってる アホが作るとこうなるみたいな見本 >>638 これな 何度も書いてるがこのせいでリソース分散 avaloniaUI,UnoPlatform,MAUI リソース分散してどれも低品質ww Build 2024でとつぜんWPFとWinUIのセッションがでできたけど Copilot runtimeでアプリ作ってくれってことか? 今までクラウドばっかで散々放置してたくせに 今までAzureとかそんなんばっかだったのに 今年はCopilot+PCで突然クライアントPC重視? もう、ほぼWindowsクライアントアプリ開発者全滅してるから Microsoftが勝手に作れよ 結局MS主導の開発環境て社内の派閥や部門の予算の奪い合いの縄張り争いやからな 予算のために自分等の仕事作るためだけに存在してるんやから毎回中途半端なゴミ作ってそのまま放置 じゃなけりゃWindows App SDK(MAUI)でASP(Razor/Blazor)、WinUI(XAML)、WinFormsのごった煮闇鍋にするわけがない 俺なら全部窓から投げ捨ててReact Native for Windowsに統一するわ C++でネイティブコードも呼び出せるからこれをC#で簡単にやり取りできるラッパーを実装してくれればガチで過去最強のWindowsマルチプラットフォーム開発環境になる >>643 Windowsのネイティブアプリなんてただでさえ絶滅危惧種なのに、Copilot+ PCでしか動かないアプリ作れなんてやる奴いるのかw >>637 Win11付属のアプリはC#で作られているのが劇多いだろうと思っていたが スピードがとなるとC++ってなるのかな。 MS純正のWinRTアプリはC++だぞ MSがC#でアプリ作ることはまずない C++使ってもWPFやUWPがゴミすぎてパフォーマンス最悪だったからな UWPからWindows App SDKに移行したらパフォーマンス改善しましたはクソワロタ C#だろうとC++だろうと改善されて当たり前だよ 記事読めば改善内容書いてあるんだから読めばいいのに MAUIにはマジで期待してたんだけどなぁ .net自体は成功してると思ってて、サーバ側用途ではAzureの躍進込みで盛り上がってるのにクライアント側はさっぱりな感じ マルチプラットフォームの恩恵ってクライアント側の方が大きいはずなのになんでなんだろ 単純に舵切りミスったからじゃね? xaml+mvvmじゃなくて最初からmvuにしときゃまた違ったかもしれない もっと目を見開いたほうがいい そういうレベルに達する前にずっこけてるから MVUパターンって比較的新しいからWPFが開発された当時は無かったのでは ぶっちゃけMVVMもMVUもいらんのや Reactも結局Redux(Reducer)からhooksでViewから直接書き換える方が簡単でシンプルで速いって気付いたやろ そもそもMVVMが市民権得られんかったのはOSSコミュニティがぜんぜん活発じゃないMS開発環境やのにMSが投げっぱなしで放置して中途半端なMVVMフレームワークしかなかったからなMVUも結局そーなってるの草生えるわ 俺はもう二度とXAML+MVVMで開発したくないわ いらないと言うより日本ではそこまで真剣な人たちがいなかっただけなんじゃないの wpf以降の情報なんて大体海外ばかりじゃん Livetと尾上氏をディスらないでもらえませんか(^^? html系が魅力的に見えてみんな短中長期で移っていた C#の父ですらあっちに行ってしまった 人間に匹敵する知能を持った汎用人工知能を開発した研究者に総額100万ドルの賞金を授与するコンテスト「ARC Prize」が開催 HTMLはネットにつながっているあらゆる層に訴求出来る 関連技術の優先順位が一番で進歩が常に起こっていて当然 HTMLはブラウザがOSと統合されてもっとスムーズに、シームレスになってほしい 常時リモートサーバーが前提の現状ではデータの秘匿性も確保できないし各アプリ毎にサーバー起動なんて混沌すぎる クラウド販売業者からブラウザを開放しなくてはならない htmlというよりプログラマーたちが使えないのはcssだろう 俺は自在に使えるけどプログラマーはほんと使えない 俺以外にまともに使える奴を見たことがない CSS、SCSSでカスタムコンポーネント作るのなんてXAMLのStyleやControlTemplateでカスタムコントロール作ることに比べたら100倍簡単なんだがな まぁそもそも老害はセンスないから教えられて長年やってきたことだけを惰性で続けたい新しいテクノロジーを忌避する無能やからからしゃーない 俺はもうXAMLのありとあらゆる要素がめんどくさすぎて拒否反応出るわ なーにがMVVMなら疎結合でメタプログラミング!やねん Style、StaticResource、ControlTemplate、Converter、Behavior、Actrion、DependencyPropertyと密結合の塊やんけ そもそも厳格な静的型付けのC#で疎結合とかリフレクション必須でパフォーマンスだだ下がりやんけ なにがDIやねんMSのUnityなんてまったく流行らんかったしよりめんどくさくなっただけやんけ デザインなんてやったことがない自称デザイナーことHTML/CSSコーダーとか DIをろくに知らない無知なDIアレルギー患者とか まともなやつおらんな CSSやだやだジジイが正論棒でぶっ叩かれて理論的に論破できないから顔真っ赤でファビョってんのクソワロタwww 一般にDIが遅いのは事実で、WPFでのサンプルで初めてDIに触れたような初心者が遅さに驚いてナンジャコレと思うのはわかる ああいうのはGUIアプリといえども基本的に業務システムの中の決まった場所で立ち上げっぱなしで使うもんだから、少々起動遅くてもいいのよ そもそもDIというのはクライアントではなく主にWebで使われるから、起動時間なんか度外視で設計されている 起動時間が問題ならMS自身がよくやってるように依存関係の解決はビュー層が引き受けてそこで直接newすりゃいいよ 昔、デスクトップアプリを別名「リッチクライアント」とか言ってた時代があって、 それはWebアプリよりリッチなUIが作れるからなんだけど、 それが逆転してもう10年以上経ってるよね。 今は処理速度的にはまだデスクトップ有利な状況なんだろうけど、 WASM+HTML+CSSで追いつかれつつある状況 今時一般ピープルが使うようなデスクトップアプリは殆どがWebベースで作られているから、悪い意味で速度の差はなくなっている むしろメモリ消費量を勘案すれば同じアプリならWebの方が有利まである 一般にDIが遅いのは事実で、WPFでのサンプルで初めてDIに触れたような初心者が遅さに驚いてナンジャコレと思うのはわかる ああいうのはGUIアプリといえども基本的に業務システムの中の決まった場所で立ち上げっぱなしで使うもんだから、少々起動遅くてもいいのよ そもそもDIというのはクライアントではなく主にWebで使われるから、起動時間なんか度外視で設計されている 起動時間が問題ならMS自身がよくやってるように依存関係の解決はビュー層が引き受けてそこで直接newすりゃいいよ cssちゃん居着いたの フロントエンドスレとか盛り上げて 居着くなにも彼はずっと前からいるだろ 前はよくxamarinスレだっけかで暴れてただろ rustで漫画ビューワつくるとかいってたしなw このスレは如何にJAVAのIT土方が多いかよくわかったわ マイクロサービスの時代にDIとか開発者のRodがSpring放棄してScalaに逃げて10年以上経つのに脳みそ化石の老害やなwww cssちゃんのほうが正しい せっかく普通で当たり前で一般的なWeb技術を勧めてるのにここのおじいちゃんたちが悲鳴をあげてるだけじゃん read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる