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

■ このスレッドは過去ログ倉庫に格納されています
2023/01/22(日) 05:53:16.97ID:oY263ilm
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/
2023/01/22(日) 08:33:38.55ID:S27U9TnJ
51 それでも動く名無し 2023/01/07(土) 22:30:50.31 ID:lFyqvDkS0
お姉さんのとんでもないどスケベおっぱい
階段の揺れがエロすぎる
https://i.imgur.com/OuSEYSW.jpg
https://i.imgur.com/a6mirN4.jpg
https://i.imgur.com/aphvweq.jpg
https://gcol;le.net/product_info.php/products_id/855392/ref/15062/affiliate_banner_id/1

地味巨乳というか地味爆乳だなこれは
JKっぽいし同級生に毎日おかずにされまくってそう
https://i.imgur.com/5No7mr1.jpg
https://gcol;le.net/product_info.php/products_id/862884/ref/15062/affiliate_banner_id/1

89 それでも動く名無し 2023/01/07(土) 22:51:44.20 ID:pA5+SQtP0
周囲の男をおかしくしてしまうほどのおっぱい
https://i.imgur.com/zuu7SzF.jpg
https://i.imgur.com/7hikR0y.jpg
https://i.imgur.com/rbV5N7y.jpg
https://gcol;le.net/product_info.php/products_id/873815/ref/15062/affiliate_banner_id/1
2023/01/22(日) 08:33:43.60ID:S27U9TnJ
すみません、誤爆しました
2023/01/22(日) 13:10:25.88ID:c5qeXcBi
続けたまえ
5デフォルトの名無しさん
垢版 |
2023/01/22(日) 16:30:31.58ID:HYU/DVaQ
誤爆を装ったアフィカスによる宣伝が横行してるので見かけたら通報推奨
6デフォルトの名無しさん
垢版 |
2023/01/23(月) 15:22:33.84ID:yzbVlsZ5
>>2
はいAV
2023/01/23(月) 22:11:37.86ID:ZZy4cUui
>>2
これがMAUIってやつか
2023/01/25(水) 14:14:33.98ID:nIsknA0b
WinUI3もWPFもいまだにxaml2009非対応ってマジ?ゴミじゃん
9.NET MAUI HighSchool
垢版 |
2023/01/25(水) 19:22:56.63ID:I78/+Jqu
>>8
xaml2009っていいもんなの?
2023/01/25(水) 20:38:09.97ID:p9s9PYuH
Flutter 3.7
2023/01/25(水) 21:33:47.47ID:nq19f4JR
>>1
貴方には人脈が足りないわ
2023/01/26(木) 22:08:36.52ID:xlPUDsu5
Observerパターンを取り入れ始めたんだけど、ちょっと凝ったことすると一気に難易度上がって崩壊するわ
13.NET MAUI HighSchool
垢版 |
2023/01/27(金) 07:22:35.95ID:j9f73zRK
>>12
Rx使え
14.NET MAUI HighSchool
垢版 |
2023/01/27(金) 08:05:12.54ID:j9f73zRK
どうでもいいかもしれんけどMVVMって
VM↔Mは1対多だけどV↔VMは1対1が基本だよね?
2023/01/27(金) 08:38:22.83ID:RxpK1TrS
YES
2023/01/27(金) 10:51:04.71ID:JmJb63qg
>>13
それ使ってもちょっと難しいことしたらキツかったわ
デバッグもしにくいしメンテ大変よ
2023/01/27(金) 12:15:42.07ID:WdKOXuPi
1.2.3で、やっとtoolkitのImplicit Animationがマトモに動くようになった模様
1.0から15ヶ月は長かったな
18.NET MAUI HighSchool
垢版 |
2023/01/27(金) 12:20:38.12ID:V5rrNNYD
>>17
需要ないからしゃーない
今5chブラウザ作ってるからそれで認知度上がってくれればよいが…
2023/01/27(金) 14:25:54.40ID:6tOaIdXR
>>18
Youtubeに上がってたな
20.NET MAUI HighSchool
垢版 |
2023/01/27(金) 16:28:25.55ID:YXqDPp2F
>>18
そう
上げた
2023/01/27(金) 23:12:16.12ID:Ze4DWSK5
>>14
そうとも言い切れないよ
2023/01/27(金) 23:19:02.38ID:Ze4DWSK5
ああ基本か

基本と言えば基本だけどそうでもないと言えばそうでもない
ページの画面遷移
タブページ
何をどう捉えるかでどうとでも取れる
23.NET MAUI HighSchool
垢版 |
2023/01/28(土) 07:48:21.08ID:Akv+btg4
>>22
ページが複数あってもページ分1対1対応のV↔VMが作られてるイメージ
2023/01/28(土) 10:04:10.54ID:zBTU9IJ/
Vをどう捉えるか次第だけど、一般にはクラス、あるいはインスタンス単位じゃね?
そういう意味では、Vに対してVMは基本1つだけど親のVに割り当てられたVMを子のVが参照することがあるから
V:VM は 1:N かねぇ。
2023/01/28(土) 10:04:47.17ID:zBTU9IJ/
逆か。 N:1 だ。
2023/01/28(土) 11:54:21.60ID:1IGwH4nq
複数の親Vを意識してVMを設計することはないから1:1でいいでしょ
2023/01/28(土) 12:34:11.44ID:zBTU9IJ/
親兄弟それぞれにbindするプロパティをひとまとめにしたVMはふつうに作るが。
2023/01/28(土) 13:21:22.90ID:1IGwH4nq
あー複数の見せ方を想定した汎用VMもあるか
取り消します
2023/01/28(土) 18:38:02.10ID:2fN4XNNZ
ViewModelからViewエレメントにアクセスするのはタブーじゃねぇの?
UIエレメントアクセスするなら、Viewにトリガープロバイダーをインジェクションして、ビハインドでやれよ。
2023/01/29(日) 12:25:46.22ID:ySFcAWnP
>>29
コードビハインドからVMのメソッド呼ぶのが楽じゃない?
2023/02/02(木) 14:29:10.09ID:3jZbdKoK
WPFでUSBの抜き差しを監視するのにスムーズな方法はありませんか?
WndProcはWinFormsみたいな使い方は出来ないし、
DeviceWatcherは抜き差しでどちらも同じdeviceInfoUpdateになってしまい、どちらか判別出来なくて微妙です。
よろしくお願いします。
2023/02/02(木) 17:14:49.61ID:Pn095JJT
DeviceWatcher使ったこと無いけどこの辺りは試したん?
https://learn.microsoft.com/ja-jp/uwp/api/windows.devices.enumeration.devicewatcher?view=winrt-22621#events
2023/02/02(木) 17:33:55.37ID:3jZbdKoK
>>32
ありがとうございます
読んで試してみましたが「Added」と「Removed」のイベントは文字通りデバイスが新規追加か削除された時に発生し、
抜き差しは両方「Updated」イベントが発生しました
2023/02/02(木) 19:09:22.21ID:EfPxyF1X
ttps://nagare-it.com/274/
ここを見る限りUpdatedと一緒にAdded/Deletedも発生するらしいけどデバイスによって挙動が変わるのかね

DeviceInformationUpdate.PropertiesにIsEnabledがあるか探して
その値をチェックして接続/切断を判定するとかどうだろうか

ttps://learn.microsoft.com/ja-jp/windows/uwp/devices-sensors/enumerate-devices#enumerate-and-watch-devices
ここの「デバイスの列挙と監視」も参考になるかも

実際に使ったことなくて気になって軽くググっただけだから的外れなこと言ってたらごめんね
2023/02/03(金) 09:30:54.14ID:4nD12Hjs
>>34
はい、その記事を見てシンプルにイベント発生が出来ると思ったのですが、Added/Deletedは発生しませんでした
DeviceInformationUpdate.PropertiesやDeviceInformationUpdate.IdにIsEnabledはありませんでした

一定間隔でデバイス情報をポーリングすれば出来なくも無いですが、それだとスマートじゃないかなと
2023/02/03(金) 10:10:52.52ID:HPBiMoRp
>>35
https://learn.microsoft.com/ja-jp/uwp/api/Windows.Devices.Enumeration.DeviceInformation?view=winrt-22621
このサンプルを見るに
あらかじめリストを収集した上で
更新されたIDを持つDeviceInformationを探してIsEnabled見るんじゃないか
2023/02/03(金) 12:19:13.85ID:5ZfEBQQZ
WMI 使えないんだっけ?
2023/02/03(金) 18:09:14.44ID:wOrSY9je
https://imgur.com/DU5dhjy

この画像のようなデジタル時計をWPFで再現したいのですが
意図したように表示できません。

具体的には以下のようにさせたいです。
・ウィンドウ中央に時分を表示
・半分のフォントサイズで時分の右側に文字の下位置をそろえるように秒を表示
・ウィンドウサイズが変更されると、追従して表示レイアウトとフォントサイズを自動調整

時分だけならViewboxを使って意図したとおりにできたのですが
秒が絡むとどうにもうまくできないのです。

WinFormsで同じようなのを作ったときは自力で計算して描画させていたのですが
WPFでも自力で描画させるしかないのでしょうか?
2023/02/03(金) 19:23:52.97ID:7HGpQsNb
>>38
手もとにPCないのでなんとも言えないけど

<VIEWBOX verticalalignment=buttom>
<textblock font-size=A>時間 分</textblock>
<textblock font-size=B>秒</textblock>
</viewbox>
みたいな感じでいかないかな?
2023/02/03(金) 19:31:42.53ID:QNSGgP05
>>38
秒の高さを時、分の高さ(ActualHeight)をバインドして設定するが、
その時にコンバーターを噛ませて高さを半分とか2/3にすればいけるんじゃね?
2023/02/03(金) 19:58:18.94ID:QNSGgP05
<Viewbox Stretch="Uniform" VerticalAlignment="Center" HorizontalAlignment="Center">
<StackPanel Orientation="Horizontal">
<TextBlock Text="12:00" FontSize="48"/>
<TextBlock Text="59" FontSize="24" VerticalAlignment="Bottom" Margin="0,0,0,6" />
</StackPanel>
</Viewbox>

フォント自体にマージンがあるからマージンを目視で調整するしか無いようだな
2023/02/03(金) 20:03:14.99ID:dPQuY1/G
画像を文字表示分の11種類用意して描画
2023/02/03(金) 20:23:19.25ID:QNSGgP05
実験結果から推測
ジフンの高488のフォントの上12と2下12が空白で、高さ24の秒の上6と下6が空白
だから下に合わせると秒が6だけ下に表示される
これを補正するためにマージンを6取れば並ぶってことじゃないかな
2023/02/03(金) 21:04:00.62ID:HPBiMoRp
TextAlignmentにBottom指定できないから自前で書くのが良いと思うよ
2023/02/04(土) 02:57:23.35ID:CT19HbYK
>>38
Grid使えばviewboxを使わなくても再現できそう
2023/02/04(土) 10:54:32.83ID:9eFPj8BD
reactでやればマジ簡単(*бωб)
2023/02/04(土) 16:34:36.36ID:WyB5KAm7
reactとか時代遅れだろ。
Angularこそ至高
2023/02/04(土) 20:39:27.54ID:yPc0HPvW
そういえば最近はもうAngular見なくなったな…
何がどうなったんだ?
2023/02/04(土) 20:58:47.44ID:Y6T/cmcC
案件ごと消滅した感じ
2023/02/04(土) 21:05:30.82ID:yPc0HPvW
いつも思うけどwebは本当に一寸先は闇
jQuerry死んだときも同じことを思った
2023/02/04(土) 21:41:43.50ID:4XV72bGn
Webのフロントエンドは自分の仕事を産み出して金を稼ぐために不必要に次から次から次へとおれおれブームを作り出すという
2023/02/04(土) 21:57:06.11ID:Y6T/cmcC
殆どが技術が進化方向にあるから
踏み台として次に移れるんだよね

XAMLからvue.jsに移行したときは
かなりの資産を失ったけど
その後vue.jsからreactへは数日もあれば移行できた
失う物は僅かな感じ
2023/02/04(土) 23:27:03.53ID:yPc0HPvW
webだけに限らず仕組みが軽いほうがいいと思うわ
あれもこれも全部できるけど独自の仕組みがあって学習時間がかかるものはどんどん淘汰されていくと思う
2023/02/04(土) 23:31:51.64ID:W3FVNzdt
React出てからもう10年経つのに一寸ってアホか
単に自分がついていけてないだけだろ
2023/02/04(土) 23:42:49.68ID:Y6T/cmcC
まあ普通の感覚だと
jQueryはjsの機能に置き換わってより普遍的なものになってるわけだし
それにSPAやるのにjQueryとかだけではキツいのでreactとかが生まれたわけだからね
ステップアップとしては楽な道だったのを踏み外したのかもね
2023/02/05(日) 19:43:14.16ID:wPslOgmh
>>50
勝手にjQueryを殺すな!
まだまだあと20年はがんばるぞ!
2023/02/10(金) 11:32:03.72ID:QF+VD1Et
KeyDownイベントが発生しない
たすけて
2023/02/10(金) 11:36:13.53ID:G4y7+DjP
キーボードの掃除をしましょう
2023/02/10(金) 12:18:07.26ID:f+gxhvWW
コーヒー飲みたい by キーボード
2023/02/10(金) 13:10:31.04ID:HfV/2vOb
キーボード「気合が足りない」
2023/02/10(金) 17:11:00.66ID:kp3AhjVG
タッチスクリーンだとかそんなところかな?
2023/02/10(金) 18:41:53.09ID:vs4Q5dAA
多分複合コントロールの中でイベントが発生しないとかだろw
ルーティングイベントを調べろ
2023/02/11(土) 12:10:48.85ID:ELrsF36t
Webのスケルトンスクリーンってダサくね?
昔のPCで描画が間に合ってないみたいな、見せちゃいけない汚い裏舞台を見せちゃっているような。
シマー効果もただちらついてるだけというか、昔のテレビの砂嵐を彷彿して格好悪いというか。
2023/02/11(土) 12:40:20.80ID:tGyiyo9Q
意図されてないものが表示されるのと意図してそれを表示するのは全く違うと感じるが
まあ情報量の多いスケルトンスクリーンは無駄ではあると思うけどね
微妙に本当のレイアウトにマッチしてなかったり
2023/02/11(土) 17:11:57.44ID:s/IAI9OO
SPAは最初のロードに時間がかかるから
2023/02/11(土) 17:48:11.11ID:ELrsF36t
開発者が実際に意図してやってるかどうかはどうでもよくて、
意図してやっているとユーザーに思わせられれば成功、ひでー作りだなと思われたら失敗。
2023/02/12(日) 16:03:17.30ID:O9dtb47z
知能が低い人に合わせるのか一般人に合わせるのか
2023/02/12(日) 16:06:46.22ID:O9dtb47z
webサイトにつないだらほぼ全画面占領して動画読み込み初めてスキップも出来ずにnowloadingとだけ出たら殺意沸くわ
2023/02/12(日) 17:09:35.54ID:N20Cmn/5
.Net6でプラグイン形式のプログラム作ってるんだけどAssemblyLoadContextってもしかしてWPFじゃ使っちゃだめなやつ?
2023/02/14(火) 15:16:44.74ID:mciNdrzE
MAUI信じていいんか?
2023/02/14(火) 15:29:36.09ID:Xga81Eab
信じる者は(足元を)すくわれる
2023/02/14(火) 16:14:11.64ID:bTgNAyEg
>>71

まさにそれ
2023/02/14(火) 16:22:18.36ID:sw931VSz
「MAUI やりたい事」でググって情報の無さに絶望した!
2023/02/14(火) 20:41:01.74ID:4KQ468uN
MAUIは人脈必須の後継だぞ
人生を無駄にするな
2023/02/15(水) 12:38:52.21ID:waHy/d2K
とにかく臭い
2023/02/22(水) 18:17:03.58ID:uetx62cD
WPFでアプリのアイコンを動的に選択する方法はありますでしょうか?
WinFormならSystem.Drawing.Iconで呼び出せば良さそうなのですが、
WPFだとSystem.Drawing.Iconは無いってVS2022に言われるのでお願いします。
2023/02/22(水) 22:08:32.86ID:jxNN8dk9
https://github.com/dotnet/wpf/blob/main/roadmap.md

https://github.com/dotnet/wpf/discussions/7555
voteでもしとけ
78デフォルトの名無しさん
垢版 |
2023/02/23(木) 09:15:32.83ID:1tjEzFEU
コントロールって全てDirect3Dで描画?
グラフ描画系だけ?
2023/02/23(木) 10:53:08.81ID:Gf1B/b41
>>76
ググったらそれらしきものはあった
https://qiita.com/sukobuto/items/a672e945103d7dda284b
これの一番最後
2023/02/23(木) 20:35:06.75ID:MOYrMHVL
Blazor Hybrid良いじゃん
XAMLもHTML+CSS+jsも使えるし
2023/02/24(金) 01:05:35.00ID:F+/0AG8v
>>80
詳しく
2023/02/24(金) 08:41:09.47ID:EkFlv8/C
>>81
このページの内容そのまま
DI必須だけどMVVMも出来るし、何よりUIにCSS使えるのが便利
SASSも導入すれば、個人的にResourceDictionaryよりスッキリしてて好き

https://learn.microsoft.com/ja-jp/aspnet/core/blazor/hybrid/tutorials/wpf?view=aspnetcore-7.0
2023/02/24(金) 10:13:33.17ID:qC9AVot7
>>79
ありがとうございます
アプリ左上とタスクバーのアイコンは変える事が出来ました
ただ、実行ファイルとショートカットのアイコンは変わらないので、別設定が必要なのでしょうか?

・実行ファイルのアイコン変更でやってみた事
×:AppData/Localにあるアイコンファイルを手動で削除してWindowsの再起動
○:別のPCで起動
2023/02/24(金) 12:04:32.75ID:HbsC8klK
全部変えるならプロジェクト設定になかったっけ?
2023/02/24(金) 14:41:34.30ID:qC9AVot7
>>84
インストーラのプロジェクトを2つ作成して、
ショートカットとプログラムファイルでそれぞれ別のアイコンファイルを指定する事で何とか変えられました

インストーラじゃなく実行ファイルの方で、アイコンの指定をスマートに行う方法は無いのかな?
2023/02/24(金) 18:00:41.90ID:F+/0AG8v
>>82
やっぱWebViewでhtml cssが最強だよな
2023/02/24(金) 22:04:35.42ID:KCjnBZl8
実行ファイル自体のアイコンを動的にスマートに変える方法?
意味あるのかそれ?
何のためにとしか…

昔はwindowsにアイコンキャッシュがあってアイコン変えてもすぐに反映されなかったりしたけど
2023/02/24(金) 23:37:21.09ID:He/Mrrce
みんなはフォルダ構成どんな感じにしてる?
共通で使うようなクラスとか、適当なクラスってどんなフォルダに入れてるか気になる
2023/02/25(土) 00:01:59.17ID:5xbVML89
githubで見るのはcoreみたいなフォルダに基本モデル突っ込んであるのは見るけど

そもそもがModelみたいなフォルダは推奨されないんだよね
機能単位で普通はまとめて共通はcommanやcoreとかってイメージ
2023/02/25(土) 00:03:00.25ID:5xbVML89
commonだ…コマンタレヴー?
2023/02/25(土) 00:24:28.73ID:5xbVML89
C#の名前空間だと結構いろんなものがルートに当たるsystemに突っ込まれてる
2023/02/28(火) 19:15:49.43ID:TF3BHX6b
>>77
Windows 11テーマ対応やることに決まってもなんだかな
今さら何なのか
2023/03/01(水) 06:35:24.40ID:i7L8EuSu
いや、標準テーマが古臭いから仕方なく嫌々バグだらけのUWPやWinUI使ってる人が多いだろうから
テーマの問題が解決すればWPFが最善の選択
2023/03/01(水) 12:16:16.07ID:a+p+VK9T
>>93
UWPがバグだらけって聞かないけど、何処情報?
それとWinUIも流石に1年半だからバグも減っているように見えるが
2023/03/01(水) 12:20:07.56ID:tWOScmTl
アプリの配布方法が制限されてる時点でもはやバグ
2023/03/01(水) 14:21:19.72ID:qZJesg35
>>94
GitHubでのバグレポートが700個、Openが2800個
バグじゃなくてQ&Aがいっぱい混じっていて本当のバグを追跡できない
2023/03/01(水) 16:45:40.86ID:1KuvZnq5
NumericUpDownをそろそろ公式で実装してくれ
2023/03/01(水) 19:30:05.42ID:SBtTwWje
上下キーで数値が変わるのはマジヤバいので無効に出来るようにしてくれ
2023/03/01(水) 19:52:03.14ID:tXmlO50M
さすがに、テーマが古臭いからといってUWPに移行する奴はレアだろう。
2023/03/02(木) 00:17:26.91ID:YJ+cBd/3
有償のコンポーネント使えばテーマなんていくらでも変えられるのに
2023/03/02(木) 09:22:58.33ID:pwr4e0eZ
857デフォルトの名無しさん (ワッチョイ aa9f-ZYAP)2023/03/02(木) 01:06:05.40ID:pwr4e0eZ0>>858
ModernWPF UIのコンテントダイアログでプログレスダイアログをいい感じにMVVMで実装する方法ないかな?

やりたいこと:
したのコンポーネントをProgressDialog.xamlで定義して、ProgressDialogModelView.cs内でEventAggregatorでイベントを受け取ってプログレスバーとテキストを更新
https://github.com/Kinnara/ModernWpf/wiki/ContentDialog

なんだか、UIが更新されない。(Vueで言うところのnextTick()みたいな処理がいる?)
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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