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/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ぐらいまで縮めても使えるように作るでしょ普通。
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
程度による。
本来制限する必要のないことを技術選定ミスや設計ミス、技術力不足のせいで制限かけて客に押し付けるのは無能。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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