WPF(.NET, WinUI) GUIプログラミング Part32
>>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更新するわ