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/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ぐらいまで縮めても使えるように作るでしょ普通。
2021/06/01(火) 19:53:03.17ID:KADTgI/r0
>>730
StackLayoutをScrollViewerでラップするだろうに
大丈夫か君??
2021/06/01(火) 19:53:21.20ID:8WjXWTtLr
> WPFの普通の作り方は
> コントロールに幅や高さ、位置を指定しないでレイアウトコンテナーに流し込む
> というものだけど、ちゃんとやってる?
> 普通の作り方していれば画面崩れなんてまず起きないよ。

からの〜


> えーと、ウィンドウサイズを小さくしたらボタンが隠れて使えなくなるような酷い作りって事?
> VGAぐらいまで縮めても使えるように作るでしょ普通。
2021/06/01(火) 19:54:38.31ID:8WjXWTtLr
お前らの言う普通てなんだよとw
そんなもん考慮しないで作っても使えるようになれば楽なんだ
2021/06/01(火) 19:59:00.64ID:KADTgI/r0
普通に今時アプリ作るなら、
StackLayoutをScrollViewerでラップするけど
特に設定画面とかほとんどそうするが
2021/06/01(火) 20:01:30.38ID:8WjXWTtLr
鼻くそほじりながら普通に作るアプリの要素をいちいちScrollViewerでラップしてるのか?
関心だねw
744デフォルトの名無しさん (ワッチョイ 936a-4Wjq)
垢版 |
2021/06/01(火) 20:01:53.66ID:iwzPw3hm0
>>737
何で下の下なの?
2021/06/01(火) 20:04:07.21ID:XQmHh8RI0
これではWPFは欠陥品と言われて当然だな
2021/06/01(火) 20:04:07.93ID:8WjXWTtLr
>>744
本当の意味での本来のレイアウトと違う結果になるから
それとかなり強めの副作用が出る
2021/06/01(火) 20:05:22.76ID:MI+FTKnO0
そもそも極端にスケーリング倍率が異なるモニターに映して
どのような動作になるのがお好みなのかさっぱり分からんぞ
2021/06/01(火) 20:06:34.33ID:KADTgI/r0
今度は鼻くそほじりながら作るとかアプリの種類もピンキリだがアプリの種類を極端なほうに持ってこうとしてて草
2021/06/01(火) 20:10:47.71ID:8WjXWTtLr
例えば地図の経路を編集できるアプリがあってデスクトップでは片側に縦に操作ボタンが並んでたとする
タブレットではタッチで操作できるからタブレットにそのまま移してみた

ボタンが画面の半分を占めてしまったりしたらどう思う?
しかも下の方のボタンを表示するにはサイズ変更やスクロールしないといけない
同じ割合で表示されていたらと思うが他の人は違うのかな?
だったら知らんけど
2021/06/01(火) 20:17:55.30ID:KADTgI/r0
ん?話ずれてねぇか??

特定のレイアウトが使いづらいとかただのUIの話してるの??

アダプティブなレイアウトをWPFとWinFormsで作るならどっちが生産性が高いかの話だろ??
2021/06/01(火) 20:18:35.40ID:qd49Xl0p0
趣味でしか使ってないけどWPFは欠陥品でいいと思う
無駄にややこしいし
2021/06/01(火) 20:20:04.30ID:MI+FTKnO0
WPFとかWinFormsとかもはや関係なくてDPIスケーリングとUIデザインの話になってるな

>>749
>>735に書いたけど、スケーリングしないようにすれば?
2021/06/01(火) 20:21:44.36ID:8WjXWTtLr
>>750
えっ
いつから話をそらし始めたのかな?
つかさ初めからそんな話はしてない

>>740みたいなのか君も?
2021/06/01(火) 20:21:55.69ID:RYR7OQzf0
>>740
うん。
その通りに作ってればウィンドウサイズを広げても縮めてもちゃんと使えるようになってるはずだよ。

>>741
Gridで領域を区切ってその中にそれぞれScrollViewerとStackPanelをはめ込む。
これが基本。
2021/06/01(火) 20:23:18.00ID:8WjXWTtLr
病気なのか
そこに書いてある通りで上のようになるんだがw
2021/06/01(火) 20:24:15.15ID:XQmHh8RI0
ターゲットモニタを顧客と仕様で決められない無能SEの話でしかない。
WEBアプリ開発とかでIT音痴の顧客に、すべてのOS、ブラウザ、バージョンで動くようにしろと言われて
無理ですと答えられないアホSEだったのだろう。その手のデスマーチは何度も見てきた。
2021/06/01(火) 20:26:15.44ID:KADTgI/r0
>>752
だよな
完全に話の中身というか論点変わってるよな
2021/06/01(火) 20:29:38.25ID:8WjXWTtLr
Aさん Gridの領域を区切って〜 と作ればちゃんと使える
Bさん アダプティブなレイアウトが作りやすいだけでちゃんと使えるように作る必要がある
Cさん すべてのOS〜で作れるようにはならん 仕様が決められていない!

で?と言いたくなる
2021/06/01(火) 20:33:14.75ID:8WjXWTtLr
俺はそもそもがこれだけ言ってただけなのに仕様とか言い出すんだから困るな
同じところを勝手にお前らが堂々巡りしてる
AさんBさんCさんの意見は似てるようで似ていない

719 名前:デフォルトの名無しさん (オッペケ Sr8d-6ypv)[sage] 投稿日:2021/06/01(火) 00:30:07.02 ID:LVmbfPywr [1/3]
普通に作るとWPFでも崩れるよ

デスクトップでまともに表示されてもタブレットに移すとボタンが画面を占拠したりする

720 名前:デフォルトの名無しさん (オッペケ Sr8d-6ypv)[sage] 投稿日:2021/06/01(火) 00:37:47.40 ID:LVmbfPywr [2/3]
画面の解像度が同じでもdpiなどが違う場合を考慮しないと簡単に操作不能になる
2021/06/01(火) 20:52:37.89ID:MI+FTKnO0
ウィンドウサイズを縮小するとレイアウトが崩れるしょぽい作りのアプリが
DPIスケーリングで相対的にウィンドウサイズが縮小された場合にも
同じようにレイアウトが崩れるってだけの話だな
2021/06/01(火) 21:40:41.20ID:60m7XNm60
>>749
それが気になるならViewBOxでパネルごと自動で縮小すりゃいいじゃないか
つうか、もしかしてViewBoxを他のものと勘違いしていないか?
2021/06/01(火) 21:48:42.01ID:8WjXWTtLr
無限のフィールドにどんとおいちゃうViewBox

非常に使いどころが難しい
今のやつ程度なら様子見ながら使ってもいいけど普通は使わない
あらかじめそうなるとかそうしないとどうにもならない場合でしか使わない

副作用が大きすぎるから他と絡めて使う場合普通は避けて通るのが吉だろう
763デフォルトの名無しさん (ワッチョイ 936a-4Wjq)
垢版 |
2021/06/01(火) 22:02:03.20ID:iwzPw3hm0
>>746
どんな副作用よ
2021/06/02(水) 09:33:14.03ID:3iY/ReWf0
>無限のフィールドにどんとおいちゃうViewBox
どうみてもScrollViewerに対する表現だよな
WPFに関しては初心者同然でViewBoxが何かを知らない人が喚いているだけ
2021/06/02(水) 09:48:42.22ID:JIuvABhI0
ViewBoxは画像として伸縮させてるだけだから、
スケール合わないとすぐ滲むよ
2021/06/02(水) 10:09:47.82ID:7jKMKTGT0
どんどん盛り上がてくれ
WPFのノウハウをどんどん吸収するからさ
2021/06/02(水) 13:10:52.49ID:kPaqSWwv0
レイアウトが崩れるというどうでもいい話しかしてない
2021/06/02(水) 14:01:43.63ID:vZJzhIofH
>>767
他の事に注力したいのはやまやまだがクリアしとかなきゃならない課題だ。
winformだと本当に地獄だから。
2021/06/02(水) 15:07:37.29ID:g8OFXqDxa
>>767
案件によってはどうでも良くない
レイアウトが崩れて「実行」ボタンが押せないとかw
2021/06/02(水) 16:42:44.84ID:NAmQLeRA0
>>756
程度による。
本来制限する必要のないことを技術選定ミスや設計ミス、技術力不足のせいで制限かけて客に押し付けるのは無能。
771デフォルトの名無しさん (ワッチョイ 936a-4Wjq)
垢版 |
2021/06/02(水) 20:14:58.58ID:rAP8NYGi0
>>765
にじまねーよ
2021/06/02(水) 21:26:15.37ID:kPaqSWwv0
>>769
折衝能力不足。
仕様されるターゲットを限定できない馬鹿SEのアホプロジェクトだけだろ。
2021/06/02(水) 22:59:57.54ID:U2D7IVNU0
マ板に行けや
2021/06/02(水) 23:21:36.31ID:kPaqSWwv0
レイアウトガー、レイアウトガー、レイアウトガー

最初からWEBアプリ作ってろよ
775デフォルトの名無しさん (ワッチョイ 13e6-hX9V)
垢版 |
2021/06/03(木) 00:46:24.77ID:jRu8qXpb0
後発なのにhtmlに敵わないの?
2021/06/03(木) 01:17:26.81ID:TUiNXg/up
>>775
スマホでPC版ページのまま表示させたら辛いこと多いやろ
2021/06/03(木) 06:54:47.16ID:yjXcQV3M0
>>772
技術力が低いと客を騙してどうにかするしかないわなw
2021/06/03(木) 07:01:49.17ID:ACDqZrdS0
>>777
> 本来制限する必要のないことを技術選定ミスや設計ミス、技術力不足のせいで制限かけて客に押し付けるのは無能。
ドアホ無能SE。要件にターゲット明記せずにどうやってテストするんだ?
いつも未テスト納品でもしてんのか? テスト仕様書ぐらい書けよ、ウスノロ。 

仕事したことねー幼稚園児はマ板に行って勉強してきな。糞野郎。板違いだ。
2021/06/03(木) 07:06:15.58ID:yjXcQV3M0
>>775
後発って言ってもHTML5の10年前に登場した太古のアーキテクチャだぞ。
2021/06/03(木) 07:08:55.95ID:yjXcQV3M0
>>778
読解力ないな。どう読んだらターゲット明記しないなんて読み取れるんだ?
SE失格だぞ。
2021/06/03(木) 19:22:57.37ID:5arV6BGR0
wpf面倒に感じてもwinformsには戻れないわ
2021/06/03(木) 19:26:02.59ID:xWGjtxyo0
レイアウトだけにすれば全然面倒じゃない
とても快適
2021/06/03(木) 23:00:02.23ID:v6QVapLx0
WPFならModelを本体にして、低解像度と高解像度を別々の画面を用意する荒業も大した手間もなく出来る
横の部品を縦長ならGridのRowとColumnを変更して下に表示もできる
WinFormsでは不可能な柔軟性を持っているのは事実だ
2021/06/04(金) 02:16:36.88ID:MjKwKQTU0
どのみち対してwpfはさして流行らんまま次のものへと移行してくわけだから、
存在感としては、winform以上に割り食いそうだけどな。
2021/06/04(金) 08:15:24.74ID:56fkmw6f0
その「次のもの」が10年近く迷走を続けている状態だなぁ。本当、Win8以降のストアアプリ路線が黒歴史。
WinUIが決定版となってくれればいいが。
786デフォルトの名無しさん (ラクッペペ MMde-+uhU)
垢版 |
2021/06/04(金) 10:23:04.83ID:3oZ8CiKCM
でも重たいんでしょう?
2021/06/04(金) 14:19:36.78ID:03MQShFS0
そもそも、WPFは、WinFormsより人気無いよね。
2021/06/04(金) 14:37:29.04ID:03MQShFS0
https://blog.jetbrains.com/wp-content/uploads/2020/06/dotnet-2020-survey-frameworks.png

2020年:
Which technologies or frame works do you use ?

ASP.NET Core : 55%
Entity Frame Work : 43%
ASP.NET MVC : 42%
Win Forms : 31%
WPF : 26%
Azure : 22%
ASP.NET WebForms : 19%
Unity 3D : 18%
Xamarin : 13%
Windows Communication Foundation(WCF) : 12%
UWP : 6%
Share Point : 2%
2021/06/04(金) 14:40:48.01ID:03MQShFS0
>>785
もともと、Windowsアプリ開発の決定打は MFC だったし、今でもそう。
Webプログラマが色々言ってるだけ。
2021/06/04(金) 16:22:22.98ID:rC5qkclP0
>>788
デスクトップ向けのWPFやFormsとWeb向けのASP.NETとIaaS・PaaSのAzureとジャンルごちゃまぜで意味なさすぎるアンケートだな
2021/06/04(金) 19:19:30.75ID:fNUUmS5r0
少し情報古いけどデスクトップに絞るとこれかな
https://qiita.com/sengoku/items/fb4948e0d2746e3cc26f#%E7%B5%90%E8%AB%96
792デフォルトの名無しさん (ラクッペペ MMde-+uhU)
垢版 |
2021/06/04(金) 19:21:25.71ID:0c0chM5JM
将来的なサポートはFrameworkだと思うけどなぁ
2021/06/04(金) 19:27:36.34ID:fNUUmS5r0
さすがにMFCは10年以上前に滅んだよ
794デフォルトの名無しさん (ラクッペペ MMde-+uhU)
垢版 |
2021/06/04(金) 19:30:27.24ID:0c0chM5JM
今は.netじゃないネイティブアプリは何で作ってんの?
2021/06/04(金) 19:31:37.34ID:BzCokzlMM
>>792
.NET Frameworkは.NET4.8で開発終了したけど何言ってるの
796デフォルトの名無しさん (ラクッペペ MMde-+uhU)
垢版 |
2021/06/04(金) 19:42:13.23ID:0c0chM5JM
>>795
サポートは5や6より長いだろー
2021/06/04(金) 19:48:19.26ID:qGu+M2wT0
VB6みたいな断絶されたシステムと違って互換性がある後継が存在するからな
798デフォルトの名無しさん (ワッチョイ ca6a-PRuz)
垢版 |
2021/06/04(金) 19:50:57.22ID:IAgKdKOl0
>>796
新技術の取り込みないからレガシー化待ったなしだぞ
c#8も全機能使えないし
2021/06/04(金) 20:18:30.70ID:D9FHeoRUr
>>764
素人だらけだろこのスレは

ScrollViewerだけじゃないだろ
サイズ計算やレイアウト絡むものを入れてはいけない
2021/06/04(金) 20:22:29.84ID:D9FHeoRUr
わかるぞ
他人を馬鹿扱いしないと主張を保てないみじめな人生

そして経験不足からくる傲慢さ
801デフォルトの名無しさん (ワッチョイ ca6a-PRuz)
垢版 |
2021/06/04(金) 21:00:32.21ID:IAgKdKOl0
自己紹介?
2021/06/04(金) 22:12:08.36ID:qGu+M2wT0
>>799
あんたが>>749に書いた仕様など
>同じ割合で表示されていたらと思うが他の人は違うのかな?
と言うならViewBoxで解決じゃねーか
あんたがViewBoxを知らなかったのはバレバレなんだよ
2021/06/05(土) 00:54:25.92ID:0C8ccwu5a
>>789
未だにMFCは勘弁してくれ
2021/06/05(土) 05:35:31.46ID:L7L31nHe0
いや、実際息が長いのは.net frameworkの可能性が高い。
実際にはあれで作れないものって業務むけでは殆どないし。
.net5以降は古いメジャーバージョンから、新しいメジャーバージョン一切読めないから
結構困惑が始まると思うぞ。
2021/06/05(土) 06:06:10.49ID:qRwbnhuf0
>>795,796,798
新規開発で4.8を選択するのはプロジェクトの性質によっては妥当。
Core系を選択してしまうとたったの3年でサポート切れ、
OSのサポート期間だけ気にしておけばいい4.8の方が長期的に見てずっとコストを低く抑えられる。
開発側からすれば新しい方が便利な機能使えて楽だが、使う側からすればそんなの知ったこっちゃないからな。
レガシー化って言ってもVB6ランタイムですらまだWin10で生き続けてるからな。
2021/06/05(土) 06:20:46.69ID:qRwbnhuf0
>>749
マウス・キーボード操作前提のUI設計、タッチ操作前提のUI設計をするべき。
サイズが違うとかそういうレベルの話じゃなく、使い方が異なるものを
同じUIで済まそうとするのは手抜き。
807デフォルトの名無しさん (ワッチョイ ca6a-PRuz)
垢版 |
2021/06/05(土) 10:36:53.28ID:byK7y7eQ0
なかなか説得力あるなw
でも技術者としては「これからも.NET Frameworkで新規開発するよ!」なんて言う組織にはいたくないなw
2021/06/05(土) 12:14:27.15ID:FhII8RApM
まあ>>805みたいなのは短期的には至極正しいんだが、長期的には優秀なエンジニアが離れていって結果的に品質は低下していくんだよ
2021/06/05(土) 12:19:22.16ID:G+DaEH8XM
まあそもそも今時Winのデスクトップアプリ作ってる時点でアレなんで、>>808のような理屈を持ち出すのはナンセンスな気もするな
810デフォルトの名無しさん (ワッチョイ 2501-INBt)
垢版 |
2021/06/05(土) 17:48:32.45ID:xu2czDUZ0
.NET CoreはWin10に勝手にインストールされるようにならんのかね
GUI付きのツール作って配布するときいちいちランタイムインストールしてくれって周知するのがめんどい
だったら.NET Frameworkで我慢して作っちゃうって人多いと思う
2021/06/05(土) 17:57:12.18ID:8tsttn3r0
>>810
どれだけWindows Updateの遅さで苦しんでいると思ってるのか。
もともと独占禁止法違反に拍車をかける。
812デフォルトの名無しさん (ワッチョイ ca6a-i9RX)
垢版 |
2021/06/05(土) 19:14:51.92ID:byK7y7eQ0
>>810
ポータブルなデプロイできるでしょ
容量増えるのがイヤならしょうがないけど
2021/06/06(日) 06:29:46.87ID:NePY0SXK0
>>810
それがネックでまだ個人利用でしか使えないよな。

>>812
3MBぐらいまでコンパクトにならないと実用性無い。
何十個もファイル分割して送りたくない。
2021/06/06(日) 07:44:28.12ID:7JEi2rzOp
フロッピーで配布?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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