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/ >>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にくらべてスカスカデザインすぎね?
従来通り高密度のデザインにしたかったら使えないのか