WPF(.NET4.x, .NET Core) GUIプログラミング Part25

■ このスレッドは過去ログ倉庫に格納されています
2021/02/05(金) 19:54:23.73ID:I+zADhcc0
Windows Presentation Frameworkについて語るスレ。

前スレ
WPF(.NET4.x, .NET Core) GUIプログラミング Part24
https://mevius.5ch.net/test/read.cgi/tech/1575862574/

関連スレ
Windows 10 UWPアプリ開発 Part 2
http://mevius.2ch.net/test/read.cgi/tech/1499658092/

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2021/05/23(日) 16:30:43.27ID:M252CwrI0
>>632
すまん
一覧のタイトルを訂正させてくれ

?GUIまわりでMicrosoftが開発した技術一覧
○GUIまわりでMicrosoftが開発または実装した技術一覧
2021/05/23(日) 16:32:47.03ID:M252CwrI0
>>638
よく読めこのカス
2021/05/23(日) 16:40:46.69ID:p7xhfnCF0
>>639
他所の仕様を動かすためのMS実装なんて含めたら
ただでさえ意図の不明なリストの趣旨がさらに胡乱なものになるぞw
修正するならタイトルを変えるんじゃなくて指摘されたものを消すだけでいいんだよw
2021/05/23(日) 17:02:43.99ID:M252CwrI0
>>641
了解
OpenGL と OpenGL ESは取り消す
2021/05/23(日) 17:22:45.60ID:k+eQXbDU0
ごめんなさいを忘れてるぞ
2021/05/23(日) 18:41:30.27ID:sgOQ9USX0
>>628
僕に毎年99ドル振り込んでくだちい
2021/05/23(日) 18:42:38.27ID:nRfM0z7i0
令和納豆みたいな話しだな。
2021/05/23(日) 18:52:14.80ID:gK9hCp4N0
Prismはオワコンだな。
Regionのデザイン時表示に制限があることがわかって
こんな欠陥ライブラリ使い物にならんなぁと思ってたところに
MS印の軽量なの見つけたんでこれにするわ。
2021/05/23(日) 19:49:03.35ID:gwonYU4k0
MVVM Toolkit

こういうの標準ライブラリに入れないからイマイチ浸透しないんだよな。
2021/05/23(日) 21:26:26.65ID:FKa4nVIA0
>>646
prismはprismで便利なんだけど、MVVMコーディングの肩代わりさせたいだけなら重すぎるな
2021/05/23(日) 22:18:18.22ID:TX/DprfC0
>>647
MVVM?いらんね。
2021/05/24(月) 00:07:33.95ID:OdiwER750
>>618 いろいろなものを作って混乱させ、あとはどうやって収集させるのだろうか?無理だろうが
2021/05/24(月) 04:18:33.32ID:B7Hr8UAb0
C++の場合、MFCとWin32はよく使われているが(特にMFCが)、ATL, WTLなどは余り使われてないと聞いている。
同様に C#においては WinFormsとWPF以外はほぼ使われてないらしい。
UWP, WinUI, WinRT などもほとんど使われてないが。
理由は初期のものとの差が分かりにくいから。
MAUIは、マルチプラットフォームなのでちょっと違ってくるかも知れないが、やっぱり使われないかもな。
2021/05/24(月) 19:16:00.41ID:cQc1lF9J0
WinUIはまだスタートラインに着いたところでしょ、普及する気がしないけど
MAUIはXamarinの後継だから主流にはならないっすね
2021/05/24(月) 20:40:38.06ID:lZZrXw7K0
ATLとWTLを新規開発に使うなんてことある?
昔のコードであって、機能は全部MFCに入ってると思ってたけど。
無料環境でやるんだったら仕方ないけど、もう更新されてないでしょ?

あとC#のフレームワークの話してるけど、プラットフォームが違うでしょ
WinUIは上の通りだが。
言語云々よりもアプリの数見れば選択に上がらないのは想像つくかと。
>>651はWindowsでソフト作ったことあるの?
2021/05/24(月) 20:42:29.92ID:i2eTwvSN0
forthとmindなら
2021/05/24(月) 21:26:11.04ID:c7j1Cmuo0
ATLとWTLとMFCが何か知らないのは構わないが
調べもしないで妄想を垂れ流すのは止めてくれ。
2021/05/24(月) 23:05:52.21ID:4tCCrl8PM
MSは現場の技術力が低下している

VS2019で新規プロジェクト制作でプロジェクト種類一覧を出すだけでクルクルして待たされる
江戸時代かよ…
2021/05/25(火) 04:02:08.51ID:wv0vSqE+0
>>652
XamarinはWinForms風やXAML風が使えたようだけど、MAUIはMVC風に
するらしいから本当は後継とは言えず、受け継ぐのはマルチプラットフォーム性
だけかも知れない。
つまり、MAUIはXamarinとはプログラミング作法的には全く違ってくるかも知れない。
しかも、MVC風はWeb系の人には馴染みがあるがデスクトップアプリ系の人には
抵抗がある書き方。
2021/05/25(火) 04:09:49.84ID:wv0vSqE+0
勘違いしてたわ。Xamarin自体がXAMLを使っているがMVVMだったそうだな。
MAUIでは、アプリケーションモデルとして MVVM, RxUI, MVU, Blazor の
4種類も用意されるそうだが、となると、MAUIでggっても自分が使ってる
アプリケーションモデルと異なる説明が出てきたり、不具合を直すための
バッドノウハウ系の情報も出てこないだろうな。
あと、MVVMやBlazorはWinFormsの代わりにはならないだろうな。
2021/05/25(火) 04:12:53.72ID:wv0vSqE+0
また勘違いしてたわ。WPFはXAMLを使っているがMVVMが推奨され
てるんだってな。
そうか、だから普及しないんだな。
MVVMは伝統的なデスクトップアプリの作法とは違うからな。
HTMLとJSを組み合わせるWeb系プログラムに似た作法だから。
2021/05/25(火) 04:23:35.51ID:wv0vSqE+0
MVC/MVVM 系の代表格は、Ruby On Rails, Vue.js, Angular で、Web系に多い作法。
WPFもそれを推奨とすると聞いた。
ASP.NET には、WebFormsとMVC の二系統ありに系統有り、前者は
デスクトップアプリプログラマ向け、後者がWebプログラマ向けだと聞いた。
前者は名前からも分かるようにWinFomsに似た作法らしい。

・WinFormsは、C++のWin32やMFCと似た伝統的なデスクトップGUIアプリの作法に似る。
 ASP.NET WebFormsがこちら。
・WPFは、WebプログラムのHTMLとJSを組み合わせた作法に似るのでWebプログラマ向け。
 ASP.NET MVCがこちら。

ということらしい。
2021/05/25(火) 05:40:36.07ID:9OtJ0sMt0
WebFormsは廃止されたよ
2021/05/25(火) 13:02:40.82ID:l9badWvWa
伝統的というかもはやレガシーだな
2021/05/25(火) 15:06:45.66ID:wv0vSqE+0
>>662
でも現実には一番人気なんだがな。
2021/05/25(火) 15:13:05.14ID:e3vhmkG80
NGばっかり
665デフォルトの名無しさん (アウウィフ FFc7-4Cki)
垢版 |
2021/05/25(火) 15:17:44.44ID:9esnpvbXF
>>656
技術力が高かったことはない
元々低かったのがさらに低くなった
2021/05/25(火) 15:41:47.78ID:wv0vSqE+0
>>656
俺ははっきり言ってローエンドのCPUを使っているが、
もしも、コア数の多い最新版の Core i7 や i9 などを最新の M/Bと
共に使ったら、速いのかね?
それが分からんし、どれくらいのCPUにすれば速くなるのかも分からんし、
貧乏だし、ローエンドCPUを使ってる。
2021/05/25(火) 16:52:39.15ID:A+W5LYj10
そんな事言ったら、androidの新UIフレームワークjetpack composeの重さに発狂するわ
まだベータだが
2021/05/25(火) 18:42:25.09ID:9OtJ0sMt0
あとEclipseも
2021/05/25(火) 21:32:49.98ID:M8xlM0ftM
新規プロジェクトのテンプレ一覧なんて表示にそんなに時間のかかる者なのか?
かかるとしてキャッシュするぐらいの知能がないのか?
2021/05/25(火) 21:44:25.98ID:M8xlM0ftM
nugetの表示が遅いのも謎なんだな
2021/05/25(火) 21:47:45.58ID:9OtJ0sMt0
VSCode使えよ
2021/05/25(火) 21:48:46.03ID:6fkDazFe0
WPFは遅くないとか言ってる馬鹿が開発してるのだろう。
2021/05/25(火) 22:05:45.12ID:9OtJ0sMt0
dotnet new
2021/05/26(水) 05:49:33.92ID:PcPDHPmW0
「Microsoft Build of OpenJDK」が一般公開
2021/05/26(水) 07:16:45.72ID:WMlsggHNM
WMIも遅いしな
2021/05/26(水) 07:44:21.96ID:rX+9HUcZ0
>>674
死ね
2021/05/26(水) 12:31:40.10ID:Qr9i9spQ0
WPFは、RIA(Rich Internet Application)と関連深かったらしく、
Silverlight は、WPF/E と呼ばれていたらしい。
この意味で WPFが、MVVMを推奨したり、Web系の HTML+JSでプログラミング
する作法に似るのは当然かも知れない。
また、XAMLは、画面をデザインするデザイナーとプログラミングをする
プログラマーが共同作業を行うときに有利だとされていたらしい。
2021/05/26(水) 17:59:23.57ID:4HxghkQ50
備忘録?
メモ帳と間違えたのかな?
2021/05/26(水) 18:04:22.56ID:AGoVKm480
リッチなWPFだけど、内部でWebの様なレンダリングをしてるのだろうか
2021/05/26(水) 18:26:26.83ID:PcPDHPmW0
XAMLを解するデザイナーなんて存在しない。
XAMLはプログラマーが手打ちで作るもの。
2021/05/26(水) 18:36:05.26ID:VkYgpXSN0
https://forest.watch.impress.co.jp/docs/news/1327091.html
mauiもまぁ失敗するだろう
2021/05/26(水) 19:33:48.31ID:HCaE60wZ0
XAMLでなんでもやろうとするよりレイアウトだけやって他はコメントいっぱい書かかせておくのが一番
でもコメントも書きずらいからやっぱり糞
2021/05/26(水) 21:44:17.87ID:TbIpIxpy0
>>678
ここはもうその人のチラ裏なんだよ
2021/05/26(水) 22:01:01.85ID:SHVtCdRV0
長文の人ずっといるのにまだ理解してないんだな。
2021/05/26(水) 23:41:00.89ID:bVUt983d0
NG推奨
2021/05/27(木) 14:28:39.62ID:XhKnovwX0
ずっといるというか、糖質は適切に治療しないとずっと寛解しないからな
2021/05/27(木) 17:16:23.55ID:2hZg3wd40
16.10.0のプロパティ簡単設定機能はXAML直書きの苦行から少しは解放されるん?
2021/05/28(金) 12:15:53.81ID:ycE8fU310
むしろXAML直書きを支援する機能を充実させてほしい
2021/05/28(金) 12:45:21.22ID:0xnsda4N0
bindにインテリセンス効かせて欲しい
2021/05/28(金) 13:46:22.80ID:YP1Y+7z60
UWPとWInUI3のx:Bindはインテリセンスが効く

別件だがVSのオプションで
>テキストエディタ>C#>IntelliSenseで「インポートされていない名前空間の項目を表示する」を設定すると
using していないクラスもインテリセンスの候補で出てくるようになっています
2021/05/28(金) 20:51:48.31ID:SIN+4Aj/0
>>688
コードビハインド書けるだろーが。
2021/05/28(金) 21:28:27.68ID:ycE8fU310
コードビハインドでUI記述したらWPF使う意味がない。
XAMLは画面プレビュー見なくてもそれだけで画面の構造・イメージが把握できるのがメリット。
2021/05/29(土) 03:05:07.31ID:9KU4ooqJ0
>>692
XAML直書きってそういう意味の事か。
勘違いした。
2021/05/29(土) 22:34:26.11ID:CsBdGtLtM
xamlってstyleやtrigger使うとかなり階層が深くなりがちなんですけどよい解消法はありますか?

あとは深いところでちょっとだけ違うものを短く書けないかなと

似たような山が3つとか並ぶと不快です
2021/05/29(土) 23:57:41.52ID:LoL0k2Zo0
そういうのはできない
XAMLの致命的とも言える大弱点
2021/05/30(日) 04:23:54.80ID:U4AyDVvm0
それはXAMLの問題ではない。
お前の問題。
普通にコードビハインドで書けばいい。
2021/05/30(日) 05:22:02.09ID:opoaIBKj0
だよねぇ。
ペアレントを数段階遡ってサーチしDatacontext設定やってんじゃねぇ、、、 と言いたい。
ビハインド一発。
2021/05/30(日) 08:09:01.61ID:ge/ihLGc0
Styleはコードビハインド無理だろ
ResouceDictionaryで分離するくらいしか手がない
2021/05/30(日) 09:59:36.82ID:B0xK2QHY0
Resourceに切り出せば階層の深さも限定的だと思うけどね。
特定のコントロールにベタ書きしているんであればそのコントロール自体をUserControlに切り出すとか。
2021/05/30(日) 11:23:06.69ID:Yu1UbmIo0
お前らもgridの設計書はexcelで作ってるの?
2021/05/30(日) 11:44:04.57ID:ge/ihLGc0
そういう後日全く役に立たない成果物という代物は整理できないものなんだろうか
この仕事が生まれてからの永遠の課題だが
2021/05/30(日) 12:58:29.27ID:9qhZnm4fM
人足仕事で案件取ってくる営業からしたら一粒で二度おいしいだろ
2021/05/30(日) 16:12:30.07ID:xX6k4N6w0
>>700
そんな資料が必要な時点で作りが悪い可能性。
普通は上手に部品化してGridとStackPanelを使っていけば
見りゃわかるレベルで構造が綺麗になるもんだけどな。
2021/05/30(日) 17:22:11.21ID:U4AyDVvm0
>>698
コントロール自作するレベルは
最初からmvvmとかつかってない。
まず遅すぎて使えない。
XAMLの美味しいとこTemplateやStyle使っても
コードビハインドから十分かける。
2021/05/30(日) 19:00:27.12ID:xX6k4N6w0
作り方が下手くそなだけなんじゃ・・・
2021/05/30(日) 19:24:27.06ID:U4AyDVvm0
>>705
誰にいってんのかな?

ちなみに複合コントロール(データグリッドとかガントチャート)とかの内部実装はそんなもんです。

それに、WPFのコントロールの開発者のほとんどは、
WinFormsのコントロールの開発者でもありますよ。
2021/05/30(日) 19:31:51.55ID:xX6k4N6w0
>誰にいってんのかな?

一人しかいないでしょう。

ちなみにプロジェクトの規則でWinForms禁止や、
発注側が(質の低い技術者を振るい落すために)WinForms禁止を指定してくることもあるよ。
2021/05/30(日) 19:34:46.09ID:6PzLf/hnd
見た目こだわらないならWinFormsでいいんじゃないの?
2021/05/30(日) 19:36:22.03ID:U4AyDVvm0
>>707
意味も理解できてないようだね。
710デフォルトの名無しさん (ワッチョイ 936a-4Wjq)
垢版 |
2021/05/30(日) 21:24:30.95ID:Qv5hMNzG0
見た目のカスタマイズに限った話だけど、
コードビハインドだと標準の挙動で上書きされて思い通りに動かないことがある
じゃあXAMLスタイルを部分的に入れ替えて作ろう、てやってると
段々>>694の状態になっていく
コードビハインドだけで解決できる世界じゃ無いんだよ
2021/05/30(日) 21:27:39.68ID:xX6k4N6w0
>>708
見た目こだわらなくても開発生産性や品質上げたいならWPF使うでしょ。
2021/05/30(日) 22:36:18.55ID:GQzTsaB30
なるほど
世間では生産性や品質はMSが考えるほど重視されなかったのか
参考になる
2021/05/31(月) 05:56:53.59ID:EnIBUBvH0
>>711
ウケるww キミ笑いの天才だよw
2021/05/31(月) 06:40:11.53ID:gx49gNht0
>>713
ああ、働いたことないのね
2021/05/31(月) 06:50:12.73ID:EnIBUBvH0
>>714
技術者です。MSのサポートを何度も利用してますがいつもインシデントを消費できません!!!

wwwww
2021/05/31(月) 09:51:36.96ID:Tm9sROGBF
>MSが考えるほど重視されない

むしろ「MSに期待してない」

本気で考えたらMSの製品なんて採用しない
2021/05/31(月) 19:44:30.23ID:bqT3Z3azM
横からだけど

生産性を高めるには標準コンポーネントをさらっと使えたほうが楽だからwinformの勝ちだと思うけど
2021/06/01(火) 00:27:28.76ID:ivHisrQo0
仕様によるわな
レイアウトは崩れてもいい、という仕様ならwinformの方が工数は少ない
2021/06/01(火) 00:30:07.02ID:LVmbfPywr
普通に作るとWPFでも崩れるよ

デスクトップでまともに表示されてもタブレットに移すとボタンが画面を占拠したりする
2021/06/01(火) 00:37:47.40ID:LVmbfPywr
画面の解像度が同じでもdpiなどが違う場合を考慮しないと簡単に操作不能になる
2021/06/01(火) 00:43:20.58ID:ivHisrQo0
>>719
そういう話ではなく、どちらが生産性が高いかという話だよ
当たり前だけど、そんなの仕様による

ウィンドウが小さくなったときにどう表示するかも、その仕様のひとつでしょ
スクロールバーをつけるのか、全体を縮小表示にするのか、コントロール自体を少なくするのか
または、小さいウィンドウはサポート対象外とするか
2021/06/01(火) 00:52:24.63ID:LVmbfPywr
勘違いしてるようだけどwindowは小さくなってない
実際の画面が小さくてdpiは高くなってるけど文字とかが大きくなってるからボタンが占拠してるんだろう

やっぱりwinformsのほうが生産性が高い
2021/06/01(火) 01:06:46.93ID:KADTgI/r0
そんなの当たり前、WPF使ってもレイアウト崩れるようにつくれるし

アダプティブにレイアウトが崩れないようにつくりやすいのはWPFで、こっちの方が生産性が高い
2021/06/01(火) 12:09:53.23ID:P7TylxIb0
WinFormsはMFCと似ているが、WPFは作法が違いすぎる感じがする。
WPFはHtml+JSベースのアプリに似ている。
2021/06/01(火) 12:11:25.66ID:P7TylxIb0
ただ、WinFormsもイベントハンドラの書き方がVBと似ている。
基本的にグローバル関数の様な関数でイベントを受けるところとか。
MFCは、イベントを受けるクラス毎に好きに選べる。
2021/06/01(火) 12:11:54.18ID:P7TylxIb0
>>725
誤: MFCは、イベントを受けるクラス毎に好きに選べる。
正: MFCは、イベントを受けるクラスを好きに選べる。
2021/06/01(火) 12:14:22.03ID:RYR7OQzf0
>>717
いや、使い捨てのプログラムですらWPFのが楽だわ。

>>719
WPFの普通の作り方は
コントロールに幅や高さ、位置を指定しないでレイアウトコンテナーに流し込む
というものだけど、ちゃんとやってる?
普通の作り方していれば画面崩れなんてまず起きないよ。
2021/06/01(火) 12:32:58.68ID:H/EX+yIla
MVVM必須にするならWinFormの方が初心者には優しいし、MVVM使わないならどっちでも大して難易度変わらないだろ。
2021/06/01(火) 12:44:34.81ID:RYR7OQzf0
WinFormでもMVVMで作ることは可能。自分はやらないけど。
2021/06/01(火) 18:45:36.84ID:8WjXWTtLr
>>727
いやいやそういうのだけでうまく行くなんて思うなよw

縦にボタンをスタックしてdpi高いデバイスに移ったら
ボタンがデカくなって下の方のボタンがはみ出るw
2021/06/01(火) 18:55:45.61ID:RYR7OQzf0
>>730
まさかとは思うが、ウィンドウサイズ固定なんて初心者丸出しの作りしてないよな?
2021/06/01(火) 19:14:27.86ID:8WjXWTtLr
もう馬鹿は黙ってた方がいいんじゃないか?
恥の上塗りだけど?
2021/06/01(火) 19:17:32.37ID:8WjXWTtLr
同じ解像度でも

PCだと全画面表示で縦にボタンが10個表示できたとしてタブレットだと縦に6個ぐらいしか表示されないと言うことがありうる

例えウィンドウサイズが変更できたとして何ができるんだ?
2021/06/01(火) 19:24:07.59ID:XQmHh8RI0
ウイドウサイズ固定ガー レイアウトガー DPIガー

WPFスレってずっとしょうもない話ばかりしてるよな。フレームワークが糞すぎて
PGとデザイナーの分離とか言う理想以前のレベルにまで落ちてしまった。

まあ、日本語でLinux使うとボタンが画面の外に出て押せないとかしょっちゅうだけどなw
2021/06/01(火) 19:37:25.73ID:MI+FTKnO0
>>733
スケーリング倍率の違いを考慮せずにPCの画面いっぱいにデザインして
FlowLayoutにするとかViewBoxやScrollViewerを使うとか何も対策しなきゃそうなるだろうな

OSのスケーリング倍率設定を無視して表示したければマニフェストを編集すれば簡単に出来るよ
2021/06/01(火) 19:38:08.23ID:60m7XNm60
>>733
最終兵器のViewBoxというものが有るよ
2021/06/01(火) 19:43:14.80ID:8WjXWTtLr
ViewBoxつかうのは下の下だろw
本当に使ったことがあるのか?
2021/06/01(火) 19:45:33.08ID:RYR7OQzf0
>>733
>PCだと全画面表示で縦にボタンが10個表示できたとして

えーと、ウィンドウサイズを小さくしたらボタンが隠れて使えなくなるような酷い作りって事?
VGAぐらいまで縮めても使えるように作るでしょ普通。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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