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

■ このスレッドは過去ログ倉庫に格納されています
2023/09/09(土) 07:02:56.33ID:xfSBfAyx
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/
2024/02/09(金) 16:31:44.79ID:Ug+IZ9PT
>>355
今どきはそういうのはgitとかでやるもんじゃないの?
2024/02/09(金) 17:21:10.88ID:yBOwgCMz
>>355
目的と手段の関連性がよくわからんな
2024/02/10(土) 01:51:05.15ID:ghsIMPAY
>>351
CommunityToolkit.Mvvm(旧Microsoft.Toolkit.Mvvm)がもっと早く出ていればな
Prismは必要以上に肥大化して複雑になり過ぎた
2024/02/10(土) 12:18:18.76ID:siL8f8mn
何がしたいのかいまいちわからないけどワークスペースのライン数数えたいなら今はcloc一択じゃないかな
2024/02/15(木) 23:48:07.50ID:sIh+C39m
1.5は大型アップデートのようだな
開発体制変更でだいぶ変わったんだろうか
2024/02/16(金) 15:28:06.91ID:25EHl0Ar
>>360
WindowsAppRuntimeのインストール権限の仕組みが良く分からん
管理者権限は要らない、が正解で良いんだよね?
2024/02/21(水) 12:32:37.21ID:PFGf4NHy
.net frameworkと.net
なんでこんな紛らわしい名前つけるのか
.net coreでよかったじゃん
2024/02/21(水) 13:56:17.87ID:lp6zNfu6
数字が大きい方が新しいよ!
364デフォルトの名無しさん
垢版 |
2024/02/23(金) 04:15:46.12ID:U6VjGFFM
実際5.0になり、4.8を数字的に越えたからCoreと付けるのやめたんやしなぁ。
2024/02/23(金) 04:47:46.51ID:wRMoGqp+
.NET Core 3.1の次だから本来4.0になるところを紛らわしいからスキップして5にしただけで
当初は超えてなかった
366デフォルトの名無しさん
垢版 |
2024/02/23(金) 17:01:41.10ID:mMXFzxMZ
1.4のランタイムがMSStoreの更新してくれるアプリの扱いになってるから管理者権限なんていらないんじゃないの
2024/02/23(金) 18:16:09.20ID:Jh7ZBph7
WPFの11テーマの対応って簡単に試せないのか?
.net 9まで待てと?
2024/02/25(日) 21:22:50.51ID:gLzXLzAw
儲かるのが、VB6の改造仕事しかない。
たまに、WPF仕事もやりたい。
2024/02/26(月) 00:47:29.41ID:wRPcw5gK
未だにVB6のメンテってあるよな
濫造されたからね
370デフォルトの名無しさん
垢版 |
2024/02/26(月) 05:52:13.71ID:ty4kadJF
俺もVB6のシリアル通信コントロール使ったアプリをWpfのC#でリメイクしたよ。
371デフォルトの名無しさん
垢版 |
2024/02/26(月) 08:21:39.66ID:XWJtja4N
企業の設備がWndowsXPでVB6というのが膨大にある。
さすがにN88BASICは少なくなったが、その手の案件は、中抜き業者が手を出さない。
となると企業とダイレクト契約になり、利益率が高い。
契約してしまえば、WPFでもWINUI3案件でも、小規模は見積り有利な方に注文が来る。
ただ、VB6に比較して利益率低いので、普通はVB6案件しかとらない。
372デフォルトの名無しさん
垢版 |
2024/02/26(月) 11:26:24.39ID:pWCmHinc
ダー
2024/02/26(月) 13:36:32.07ID:EabBEBrg
.NET Frameworkも4.8で終わらずに4.8.1とか出てるからな
374デフォルトの名無しさん
垢版 |
2024/02/26(月) 14:03:44.02ID:Y4jRoRGa
そのうちジワリと4.8.2とかなりそうよな。
4.9までいくとはおもわんが、4.8.4くらいまではいくと思う
2024/02/27(火) 14:02:05.28ID:991PBCrk
.NET 8 は何故コケたの? [422186189]
https://hayabusa9.5ch.net/test/read.cgi/news/1709009317/
2024/02/27(火) 23:42:36.14ID:e1bc8gxM
フレームワークのバージョンにコケるもクソもないと思うけど
377デフォルトの名無しさん
垢版 |
2024/03/11(月) 00:55:23.89ID:HkYrCely
親Windowから子Windowを開くのってMVVM的にはどう書くのが標準的なの?
普通にViewのイベント拾ってコードビハインドで子Window開いてやればええの?
2024/03/11(月) 07:48:27.75ID:pZ1yIH4h
VMのデリゲートをVがサブスクライブする
2024/03/11(月) 09:57:46.60ID:IOphoT8k
ウィンドウ開くとか検索したらすぐでてこないか
380デフォルトの名無しさん
垢版 |
2024/03/11(月) 12:51:12.10ID:wdmrI2rW
多用しないならそれで十分感はある
2024/03/11(月) 12:54:07.48ID:H3ynRxY9
>>377
でた!mvvmの糞さがわかる問題
2024/03/11(月) 13:00:05.68ID:Nab3g2JD
子Windowを開くというUI自体がWPF的でないという印象がある
どちらかというと、スマホUIのような画面遷移でどうにかするUIな印象
デスクトップアプリなんだから子Window開きたいというのも分かるけど
2024/03/11(月) 13:56:19.62ID:H3ynRxY9
WPFにサブウインドー開けないなんて制限ねーーわ
2024/03/11(月) 17:34:40.85ID:0kIYwJYj
リストビューのアイテムに隙間空いてんのかよ
クリックしても反応しねー時あるからおかしーとおもったわ
責任者出てこい
385デフォルトの名無しさん
垢版 |
2024/03/12(火) 09:25:50.34ID:oMOjwN9V
Apple musicアプリ快適すぎワロタ
WinUI3だぜ?なんでAppleの方が作り方うまいんだよw
2024/03/12(火) 09:45:29.07ID:Wt4b/TQL
MDIが作れないって意味なんだろうか?
SDIで十分だけども
2024/03/12(火) 15:03:53.98ID:vyCpIdp2
MVVMの宗教上の問題だよ
親Windowのハンドルが必要だからVMでは開けない
コードビハインドは使用禁止なのでViewでも作れない
2024/03/12(火) 20:46:22.46ID:m8EOe0Bf
じゃゴミプロダクトじゃん
2024/03/12(火) 21:24:31.00ID:+BbYrvFB
mvvmがゴミ思想で
WPF本体は良く出来てる
2024/03/12(火) 22:02:39.08ID:oG8PduKS
>コードビハインドは使用禁止なのでViewでも作れない

それは誤解。viewにあっていいものはコードビハインドに書けばいい。
391デフォルトの名無しさん
垢版 |
2024/03/12(火) 22:10:08.06ID:Uh71kCat
別にコードビハインドで良いじゃん、使う側わ知ったもんじゃないよ。
2024/03/12(火) 22:32:52.40ID:EGXHS4/c
このスレの連中がいつまで経ってもコードビハインド論争してる時点でmicrosoftのmvvm推しが大失敗なのは言うまでも無い
ビヘービアなりトリガーアクションなりのアドバイスすら誰も出来ねえんだもん
終わってるよ
2024/03/12(火) 23:14:00.16ID:sVxHin9O
まあ結局コードビハインドにガッツリイベントハンドラ書くのがベストって結論出てるわな
どうせビジネスロジックは別クラスなんだし
MVVMは結局コードが爆発的に増えて本末転倒
2024/03/13(水) 09:36:12.76ID:wefPK65v
>>コードビハインドは使用禁止

諸悪の根元
誰が言ったか
全てはこれから始まった
395デフォルトの名無しさん
垢版 |
2024/03/13(水) 10:20:38.22ID:sxGi6gEp
むしろViewがViewを開く話なんてVMがまったく預かり知らなくていいことだし、むしろ知ってはいけないことでは?
2024/03/13(水) 22:38:50.52ID:zeyBTnCB
WinUIですが
ViewModelのプロパティの値によって表示する
コントロールを切り替えるのはどうすればいいでしょうか
2024/03/13(水) 22:42:48.47ID:zeyBTnCB
例えば、そのプロパティの型は列挙型とします
まぁbool型でもいいですが

とりあえず必要なコントロールをcollapsedで非表示にして
BoolToVisibilityConverterで1つ制御?
2024/03/14(木) 00:11:12.71ID:YGbJEKVm
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)
{
}
}
2024/03/14(木) 00:12:52.67ID:YGbJEKVm
使い方:

<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}}" />
2024/03/14(木) 00:59:55.46ID:HT+2FBc/
WinUIはコンバーターも使えるけど、スタティックなメソッド作って値のコンバートする方が良いよ
コンバーターと違って型チェックもやってくれる

https://learn.microsoft.com/ja-jp/windows/uwp/data-binding/function-bindings
2024/03/14(木) 18:54:54.11ID:awMyQery
>>399
ありがとございます
ただ、単純なコントロールならいいんですが切り替えたいのが複雑なコントロールツリーなんです
要するに画面レイアウトごと切り替えるイメージです
その場合はCollapsedで見えないけどメモリ上にはある?のでよくない?
2024/03/14(木) 18:57:46.12ID:awMyQery
>>400
x:Bindだとコンバーターわざわざ作らなくていいんですね
ただ、onewayとかにするとめんどくさいんですかね

後x:Bindは検証してませんがメモリリークどうこうとかあってうーん
https://github.com/microsoft/microsoft-ui-xaml/issues/7282
2024/03/14(木) 22:00:35.91ID:YGbJEKVm
TabView 使えばいいんじゃないかな
404デフォルトの名無しさん
垢版 |
2024/03/14(木) 22:54:09.64ID:kLN7FaI/
根本的な設計が間違ってるに一票
2024/03/14(木) 23:28:34.59ID:kXnu57YL
エクスプローラみたいのを作りたいんか?
ざっくりアイコンビューみたいのと詳細ビューを切り替えとか

それとも違うのか?
406デフォルトの名無しさん
垢版 |
2024/03/15(金) 06:36:24.00ID:n9fiX3XY
v7.0.0で、WinUICommunity Templatesがようやく使えるしろものになったかな?
フレームコンテンツ作成で
System.Runtime.InteropServices.COMException (0x8000FFFF): 致命的なエラーです。 (HRESULT からの例外:0x8000FFFF (E_UNEXPECTED))
が出るが、とりあえずは動かせるので進歩したようだ。
2024/03/15(金) 10:12:34.11ID:r4OsPqSJ
ダイアログのようにVMからVを操作したければサービスを作ってVからVMにインジェクションすれば良い
知らずにイキっている彼が惨めだ
2024/03/15(金) 11:16:22.89ID:OBIsoOBb
>>407
その手間が阿呆らしいと言われてる事に気づきたいものである
409デフォルトの名無しさん
垢版 |
2024/03/15(金) 11:17:02.37ID:I1QcrsU/
VMからVを操作したいという設計がアウトだろw
2024/03/15(金) 12:02:09.13ID:MChK0tzU
VMとVとか中途半端な概念つくって実装破綻する阿呆
2024/03/15(金) 12:19:34.67ID:eZW8M4iC
VMをなくした場合テストコードってどうするの?
書かない?
2024/03/15(金) 12:59:48.28ID:McMWG0Vb
自動テストやってるプロジェクト見た事ないな。
SIerはどこもExcelでケース書いて手動でテストしてエビデンスでスクショ取ってた。
2024/03/15(金) 13:04:39.74ID:r4OsPqSJ
>>408
サービスは使いまわしできるから大した手間じゃない
2024/03/15(金) 13:07:54.74ID:MChK0tzU
>>412
Reactとかだとままある
2024/03/15(金) 13:40:36.22ID:eZW8M4iC
>>412
それって修正の度に過去のも含めて毎回やるの?形骸化しない?

テストコードを書くことで DI や MVVM の利点が理解できたし、
テストコードを書くことでミスに気づいたりより良い実装にできたりって経験が何度もあるから、
個人的にはテスト書かないのはあり得ないな。
2024/03/15(金) 14:24:47.78ID:McMWG0Vb
>>415
修正に関係した箇所しかテストしないところが殆どだよ。
個人的には自動化したほうがいいと思うけど、
低レベルなエンジニアだとテストコード自体にバグがある事も多いし、SIerのレビュアーはコードが読めない人が多いからスクショを欲しがるんだよ。
2024/03/15(金) 15:29:58.80ID:MChK0tzU
SIerのレビュアーは
受け入れテストだろうから
単体テストは受け取らないのでは?
基本UIテストが基本だろ
理屈でねじ伏せて単体テストで押し切れないかぎりは
2024/03/15(金) 19:50:46.10ID:eZW8M4iC
UIテストはやるっちゃやるけどわざわざスクショは取ってないな
やりましたよー嘘はついてないんで信じてください、で
2024/03/15(金) 21:27:44.49ID:cF/fCSwm
納品の単位がクラスや関数でない限り
テストはUIテストやで
無論納品物はテストデータとUIキャプチャーみたいな
このあたりもReact界隈では自動テストがちらほら見られる
2024/03/15(金) 23:32:19.58ID:gbQQtayq
>>408
たしかに Dependency Inversion は一手間かかるがそれを阿呆らしいとしか感じられないのであれば残念
2024/03/16(土) 00:45:18.98ID:Uhv60CWW
Injection じゃ?
2024/03/16(土) 02:04:03.40ID:75FjIr1W
silverLightがポシャった時代から
まじでなにも代わってない...
2024/03/17(日) 09:42:36.14ID:mB4AOeXd
MVVMで開発
hyperlinkをクリックしたらpopupが表示される
というのはviewだけで完結するから、popupのisopenは hyperlinkのclickイベントをコードビハインドで書くべき?popupの状態を保持してなにかを動かすなどの処理はない
2024/03/17(日) 09:45:08.38ID:mB4AOeXd
変な日本語だった

popup.isopenは hyperlinkのclickイベント(コードビハインド)で書くべき?
2024/03/17(日) 10:15:24.14ID:x8VC44Gx
その開いた画面でデータ修正するとどうなる?
426デフォルトの名無しさん
垢版 |
2024/03/18(月) 20:29:45.91ID:GPnxxBJp
そんなんで悩むくらいならmvvmで書けばいいんじゃね
コードビハインドにしたくなったらいつでも変えられるでしょ
2024/03/20(水) 00:57:48.10ID:b3LGPfrH
>>425
ありがとう
2024/03/20(水) 00:58:27.51ID:b3LGPfrH
アンカー間違えた
>>426
ありがとう
429デフォルトの名無しさん
垢版 |
2024/03/26(火) 17:16:47.74ID:0f2Qo6r6
clickoneceで公開できないあたりがもうゴミだわなぁ
2024/03/26(火) 21:02:51.23ID:hrjK7SMo
https://github.com/microsoft/microsoft-ui-xaml/discussions/9417
MicrosoftのUIフレームワークはひどすぎる
MAUIでも前に爆発してたよな
2024/03/26(火) 21:05:25.46ID:hrjK7SMo
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の方も大丈夫なのかね
2024/03/26(火) 22:20:48.99ID:5DqAkGe7
>>430
>How can it be possible that MS is investing 20 times more effort into MAUI than into WinUI3

20倍!
MAUI始まったーーー!
2024/03/26(火) 22:30:25.34ID:oEfu3HhX
WinUI3死んじゃうの
2024/03/26(火) 22:47:00.47ID:1Bd4/Fy+
言語能力が足りないので意味が分からない

MSがMAUIをWinUI3の20倍開発してるなんてありえるんでしょうか?って意味に取れる
WinUI3の開発が停滞してて開発の進まないMAUIにすら負けてるように思えると言うこと?
2024/03/26(火) 23:43:00.65ID:h5VbGVBf
>>434
それであってるよ
WinUI3からは開発メンバー引き上げて撤退中っぽいという話
あげられてる証拠を見るとほぼ間違いなさそう
2024/03/27(水) 00:00:01.95ID:+Rfobi2u
後、avalonia はItemsRepeaterが手におえなさすぎて
ItemsControlに戻るってあった
2024/03/27(水) 00:06:47.14ID:+Rfobi2u
ItemsRepeaterはwinuiの方を参考に実装してんだろ?
upstream(winuiの事?)とavalonia自身の問題で
ItemsRepeaterが手におえないってよ

リンク張りたいけどソースが見つからん
昨日見つけたけど見つからん
2024/03/27(水) 00:13:25.41ID:+Rfobi2u
https://github.com/AvaloniaUI/avalonia-docs/pull/423
別パッケージに追い出すこれ絡みだと思うけど
2024/03/27(水) 16:49:34.14ID:HO+d/NZo
MSの中でもとくに無能がUIフレームワークに関わってるんじゃないかってレベルで
ずーっとgdgdなのはもはやお家芸の域だなw
2024/03/27(水) 16:52:12.01ID:pdNpUpRc
MS自体が出してるアプリはどのツールキットで書いてるの?
2024/03/27(水) 17:56:14.90ID:2eNmXpSn
VSCodeはElectron、teamsはElectron→Reactじゃなかったっけ?
MS自身が主要アプリに自社フレームワーク使ってない時点でお察し
MAUIも沈みゆく船かもな
442デフォルトの名無しさん
垢版 |
2024/03/27(水) 18:01:03.88ID:fvftl7ag
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っぽい
2024/03/27(水) 18:07:41.79ID:Zxkvq2K7
>>442
PC版でReactNativeとしているソースを一つずつ挙げてください
444デフォルトの名無しさん
垢版 |
2024/03/27(水) 19:19:45.13ID:fvftl7ag
Teams(PC版)はReactだったねごめん

他はここがソースだけどよく見たらアプリ全体の構築としてReactNative使ってるのはXbox系のアプリだけかな?
https://microsoft.github.io/react-native-windows/resources-showcase
OutlookはここだけどこれもReactNativeとは明記されてなかったね…
https://www.reddit.com/r/reactnative/comments/j7jp1n/microsoft_outlook_is_moving_to_react_native/

んじゃPC版は全体的に「React(ReactNativeかも)」に訂正で
2024/03/27(水) 19:38:29.62ID:LmabxP9i
こ、これは...
PCを知らない世代かな
2024/03/27(水) 20:53:12.97ID:o6ku426i
ExplorerはWinUI3
2024/03/27(水) 21:34:26.84ID:+Rfobi2u
>MAUIも沈みゆく船かもな
MAUIは最初から沈んでるやろ
2024/03/27(水) 22:19:31.12ID:0Xg5/g0X
Unoもまだ生きてんのか
2024/03/27(水) 22:26:42.38ID:FuRTR6go
ちょっとずれた質問だけどFlutterよりReactNativeのほうが生き残ってるってこと?
そっち方面全然知らなくて
2024/03/27(水) 22:37:46.78ID:+Rfobi2u
どっかで見かけたりするシェアはreact nativeよりflutterのほうが上でしょ
2024/03/27(水) 22:49:23.89ID:OUGKNXTu
瞬間風速でなくてGoogleにとってflutterの戦略的メリットが無いと言う基本構造が続く限りは
コスト削減の煽りでEOLのリスクがあるのです
2024/03/27(水) 22:55:17.38ID:o6ku426i
簡単に簡素なアプリを作りたいのならばflutterみたいのは向いてないと思う
視覚的に開発中に階層が深くなる系は厳しい
2024/03/28(木) 11:14:39.51ID:/B5kuUN1
階層深くなるのはプログラマの責任
ReactでもFlutterでもXAMLでも変わらん
分割考えず1ファイルに詰め込むアホの所業
2024/03/28(木) 17:45:37.48ID:nBBGR5tB
ここ3,4年Flutterばっかやってるけど
Flutterはもう1歩頑張ってほしいな
2024/03/28(木) 23:33:02.95ID:XOyHyu4g
どのへんがダメなの?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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