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

■ このスレッドは過去ログ倉庫に格納されています
2019/05/16(木) 07:52:32.39ID:8fOYIMEO
Windows Presentation Frameworkについて語るスレ。

前スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part22
https://mevius.5ch.net/test/read.cgi/tech/1513175747/

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

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
2019/07/12(金) 23:34:54.47ID:7tlH/3uz
>>435
解像度が限られてるってどういうこと
そんなんで任意の倍率のスケーリングに対応出来るの
2019/07/12(金) 23:39:27.68ID:hON+ItQO
継承とか再帰が難しくて理解できないならまあしゃあないな。
2019/07/12(金) 23:45:41.07ID:wl4Kl1W2
問題はそこじゃないんだけど
2019/07/12(金) 23:58:29.13ID:NU7e1WUB
滲ませときゃいい
2019/07/13(土) 00:00:56.44ID:5nQhdEBd
外観に拘るからwinformなんだよな。UIをコロコロ変えるなって業務じゃ当たり前の話。
2019/07/13(土) 00:12:22.75ID:3KZM/Lpz
>>440
滲んだりレイアウト崩れてるのはださ過ぎる
2019/07/13(土) 01:09:23.10ID:82wAf4q1
FHDで作っておいてそれを6/3,5/3,4/3,2/3に拡大縮小すれば
3840*2160,3200*1800,2560*1440,1280*720になる。
画面解像度を取得して変更後解像度を決定しthis.Controlsに対してLeft, Top, Width, Height, Font.Sizeを再帰関数でまとめてリサイズしてやれば大体のことは終わる。
この時ポイントは元のレイアウトを3の倍数で作っておくことでそうすれば縮小後のレイアウトがギザギザになることはない。
後はFormの部品と特殊なcontrolを調整するだけ。
これをFormのカスタムclass化しておけばForm毎に書く必要もない。
2019/07/13(土) 01:30:09.28ID:i3FtWD1F
めんどくせー
2019/07/13(土) 01:56:55.90ID:7P4pnQbe
Coreの方のWinformsだか忘れたけどソースにPerMonitorV2の処理が入ってるの見たな
動くのかは知らんけど
2019/07/13(土) 02:06:30.51ID:wLbo3yCa
>>443
レイアウト倍数に揃える時点で面倒だけど
Windows10の標準のスケーリングサイズは25%刻みだから4の倍数の方が都合が良い
2019/07/13(土) 03:10:50.07ID:82wAf4q1
>>446
爺がFHDのノートを125%とか150%にして使ってるだろ。
そうすると仮想解像度は1536*864とか1280*720になる訳だ。
1600*900の125%も1280*720。
だから1280*720対応が必要なんだよ。
2019/07/13(土) 05:20:07.77ID:K15oVfEY
老害「継承と再帰使えばできるだろ」
若者「へー、凄いですねー(棒」
2019/07/13(土) 06:01:54.50ID:bPr3gdFr
若者と老人の人形で延々と遊びたがっているやつって中身はどっちなんだろうな
2019/07/13(土) 06:41:44.42ID:5nQhdEBd
ここで暴れてる若者が無職だってのまでは分かる。
2019/07/13(土) 07:44:59.92ID:K15oVfEY
>>449
俺?
年は老害の方だよ
WPFは使うけどw
2019/07/13(土) 07:57:42.71ID:dW6OPSpS
このスレタイで暴れるとは一体
2019/07/13(土) 09:40:03.91ID:gtVCL9Bz
WPFむずい なしてこんなむずくしてるの?
2019/07/13(土) 12:18:47.98ID:N+VPDfLY
解像度の話なら、画面の大きさでダイナミックにレイアウト変更できるUWPが最強なんだけどね
縦置きにしたら邪魔になるパネルを下の方に移動とか自由自在
2019/07/13(土) 12:25:58.20ID:GK56c6Xi
Windowsあんまり縦置きにしないから
2019/07/13(土) 12:45:09.61ID:OGVt99Wz
極端な例を挙げて自由自在ってことを強調したいだけだろw
2019/07/13(土) 12:46:23.89ID:uYMBN7vu
業務アプリは解像度ほか動作環境を限定してしまっていい状況が多いからwinformsで十分かな
2019/07/13(土) 12:58:21.71ID:BcXUPH3s
WindowsPhoneで縦にも使うかも知れないだろ!
2019/07/13(土) 13:14:02.62ID:7P4pnQbe
縦置きってかウィンドウを縦長にした時とかの話じゃね
XAML上でブレークポイント設定してテンプレート切り替えるという単純なサポートはあるね
2019/07/13(土) 16:11:06.70ID:N+VPDfLY
例えば、しきい値より横幅が狭くなったら上部のツールバーを縦型に変更する処理などがXamlで書けたりする
2019/07/13(土) 16:12:33.38ID:5nQhdEBd
客はそんな要望や機能追加を出してこないから
2019/07/13(土) 16:44:10.24ID:OGVt99Wz
Winform廚はなぜこんなにも必死なんだろう
2019/07/13(土) 17:02:23.00ID:s1iOPxod
>>461
その前提は苦しすぎるぞ
464デフォルトの名無しさん
垢版 |
2019/07/13(土) 17:29:06.39ID:EdaTEXa+
>>462
時代に取り残されたことを受け入れられないまま終わった技術に固執しているという点では、
もはやWinFormsもWPFも外から見りゃ大差ないけどな
さんざんそうやってWinFormsを煽ってきて、自らも煽られる側になったということだ
受け入れ難いかもしれないが、時代の変化というのはそういうもの
2019/07/13(土) 17:54:43.19ID:RwUYPbHu
WPF MahAppsを調査してるんですが、HamburgerMenuコントロールにEffectをつけると、コンテンツの内容すべてに、そのEffectが継承されてしまいます。HamburgerMenuのみにEffectをつけるには、XAMLでどう指定すればいいんでしょうか?

皆様のお力をお借りしたいと思います。
2019/07/13(土) 17:55:06.37ID:5nQhdEBd
無職が何かいろいろ勘違いしてるようだな。基本的な事実をおさらいしよう。

vb6 & winform 普及した。今後も保守しなきゃならないシステムがいっぱい。
wpf 普及に失敗した。保守しなきゃならないようなシステムなんてほとんどない。
2019/07/13(土) 18:09:32.05ID:82wAf4q1
いい加減VB6は止めたい
2019/07/13(土) 18:15:41.79ID:uFDP8LEk
VB6をVB.NETへ移行すら簡単に出来ない様にしたマイクロソフトの失策
2019/07/13(土) 18:18:08.34ID:KfP9prYE
>>468
エクセル VBA に移植すればいいだけなのでは?<VB6
2019/07/13(土) 18:41:46.24ID:gtVCL9Bz
>>466
? これからの開発案件って無いという事? 寂しい話では?
2019/07/13(土) 18:49:10.68ID:sBwjlCef
よほどトラウマでもあるんだろうな…
まあコボラーも保守で食えてるみたいだからそういうのを目指すならいいんじゃね?
2019/07/13(土) 18:50:11.11ID:uFDP8LEk
>>469
VB6でもFORM有りきのアプリだけじゃ無いぞ
ActiveXとかは無理
2019/07/13(土) 18:54:09.69ID:EdaTEXa+
>>470
何を今更
保守で必要ならWinFormsも使うし、新規なら当然Webを最初に検討するよ
今時Webできないとかさすがにあり得ないでしょ
2019/07/13(土) 19:03:02.63ID:5nQhdEBd
Winodws10は仕事に向かない。この失敗をMSは修正する気ないみたいだから、
もう新規案件はJavaでいいやって流れかな
2019/07/13(土) 19:05:36.76ID:uFDP8LEk
>>Java
ライセンス云々で新規案件減ってますが
2019/07/13(土) 19:06:21.64ID:vnTBzjlH
OSと比較されるJavaの未来は何処に
2019/07/13(土) 19:06:33.81ID:gtVCL9Bz
>>474
その意見に対する素朴な疑問だと思うが・・・
次のPC OSは何?
WIN7とか先祖返りの話じゃないだろうな?
2019/07/13(土) 19:11:21.18ID:DRXUTE7G
それ以前にガイジに開発の仕事なんかねーよ
クッキーでも捏ねてろ
2019/07/13(土) 19:14:28.58ID:82wAf4q1
更新を機にPCを減らしてタブレットを入れるということは始まっている。
特定ソフト専用マシンがPCである必要がないから。
2019/07/13(土) 19:47:46.83ID:N+VPDfLY
>>465
MahAppの問題じゃなくてXamlの属性はカスケード式だからどうにもならん
素直にコンテント内に効果を打ち消すスタイルを設定するしか無い
2019/07/13(土) 20:36:46.45ID:QrmRuEQn
>>480
ですかー

影用のボーダー作ってシミュレートしますわ
2019/07/13(土) 21:58:11.65ID:BcXUPH3s
タブレットで済む仕事ならそれでいいんじゃね
2019/07/14(日) 07:31:05.68ID:F/jbIKB9
え、タブレットでいいようなものをPCでやってたって無能の話なの?
2019/07/14(日) 07:43:44.46ID:odxfHTio
PCをタブレット用途のUIにしようとして大失敗したのがMS。
485デフォルトの名無しさん
垢版 |
2019/07/14(日) 08:28:37.45ID:VbZ1QWE/
タブレットOSの競争ではマイクロソフトが勝利した。一時はiPadがシェアを拡大したが、PCとしても使えWindowsが勝利した。

スマートフォンOSの競争ではGoogleのAndroidが勝利した。

アップルはまた没落が始まった。
486デフォルトの名無しさん
垢版 |
2019/07/14(日) 08:31:03.76ID:VbZ1QWE/
それにしても言っていることが10年くらい前の話で変なスレッドですね。
2019/07/14(日) 08:51:45.04ID:WWhXkSE2
とこがだよ
10年前にもこのスレで語られているような世界はなかったぞ
2019/07/14(日) 09:46:32.95ID:+79Cdwyg
>>485
そんなパラレルワールドの話じゃなくてWPFの話をしろよ
489デフォルトの名無しさん
垢版 |
2019/07/14(日) 11:52:09.45ID:Ok2aTYrS
Prism7の勉強法おしえてくれ〜〜
2019/07/14(日) 12:27:02.58ID:Z6T0QQU3
勉強法おしえてくれなんて言う人にはそもそもWPFは無理なんじゃないの?
2019/07/14(日) 13:57:55.26ID:M/u7qcG6
>>489
コードビハインドスタイルでアプリ作ったことあれば、それをPrismでドリブンドライブに書き換えていけばいいだけでは?
テスト駆動、保守堅牢のためのPrismだで、、、
WinFormsでも、アプリ一本も作ったことなければ、まずはそちらから。
2019/07/14(日) 14:02:24.31ID:M/u7qcG6
失礼 ドメインドライブね。
2019/07/14(日) 14:07:37.90ID:2ifJuNDC
ドメインドリブンのこと言ってる?わけないか言い直してるし
2019/07/14(日) 15:28:51.43ID:venUw3Sd
>>489
Prism.Unityが7で思いっきり変わっていて面食らったな
AutoFacなどの別のDIと同じように扱えるようにガワを乗せた感じ
とりあえずサンプル見て適当に作ればなんとかなるよ
2019/07/14(日) 22:04:50.82ID:Ok2aTYrS
>>491
MVVM素組みはやったことあるんで
>>494
Prism自体ちょこっとしかかじってないんですわ
何かチュートリアル的なものがあればなーって思ったんだけど
地道にやります、ありがとう
2019/07/14(日) 22:23:52.68ID:jhSkrqvh
>>495
Brian Lagunasがいろいろ動画upしてくれてるやろ
2019/07/17(水) 08:31:49.64ID:Dzumdx+u
なんでカレンダーやチャートコントロールすら未だにないんだよ
2019/07/17(水) 08:53:22.30ID:HNOfBFZz
>>497
カレンダーとグリッドはだいたい標準のやつが使い物にならないからな…。DataGridViewはいい線いってた気がするけど。カレンダーは自分で作った方が使い勝手がいいよ。一回作れば使いまわせるし。

>>494
俺が多用してた UnityBootstrapper はどこにいったんだ
2019/07/17(水) 10:25:13.46ID:KBlqeI/v
カレンダーってせめてググルのライブラリより優秀なのを用意してもらいたいな。
2019/07/17(水) 11:45:00.51ID:2Hm3sgUC
MSが標準として出せるようなレベルのWPFコントロールを作るのって無茶苦茶難しいんだよ
テンプレートを当ててL&Fを自由自在にカスタマイズできるようにしなきゃいけない
カレンダーのように高級なコントロールほどそのための抽象化が困難、というか事実上不可能だ
まあ典型的な「過剰な抽象化」だわな
その反省でUWPでは色々諦めたけど、今度はガチガチすぎて融通のきかないゴミになっちゃった
設計って難しいね
2019/07/17(水) 11:46:09.20ID:+qZ5aSp8
Xaml islandでUWPの使えるんじゃないか?
UWPでカレンダーあったっけ?
2019/07/17(水) 12:03:04.27ID:S7Mvcazp
>>497 アップダウンも忘れないで
2019/07/17(水) 12:17:19.48ID:hjKl4aVr
グレゴリオ歴以外にも対応可能とかやりだすときりがないからなカレンダー
2019/07/17(水) 12:23:31.73ID:QuDmOW+q
あんま漁ったこと無いけどカレンダーやチャートってgithubに転がってないの?
そういうの漁ってれば標準化がいかに大変かわかりそうなもんだけど
どうせ無茶な要求に答えきれない代物しかでてこないのなら別にいらないかな
2019/07/17(水) 12:25:04.21ID:QuDmOW+q
>>504
いらないってのは標準としてはってだけでOSSでいろんな人がいろんなパターンで作ってるのは欲しいってことね
2019/07/17(水) 15:16:40.30ID:6lrMFPv6
カレンダーは昔のWin32の時代からコントロールあるだろ。
UWPにもあるし、WinUIでもNumberBoxが2.2でくるのかも
2019/07/17(水) 15:23:16.75ID:6lrMFPv6
ごめん、『カレンダー』ってスケジュールアプリつくるとき用の高度のやつか?俺が言ったの単に日付や時刻を選択するコントロールだな。
2019/07/17(水) 16:04:10.33ID:aJ7QlybY
だいたいNuGetからExtended.Wpf.Toolkit使っちゃうな
2019/07/17(水) 20:31:22.25ID:3xFq4IMt
UWPのカレンダーはまあ普通なんだが、DatePickerはいい感じ
https://www.microsoft.com/store/productId/9MSVH128X2ZT
ここにサンプル有るから試してみてね
2019/07/19(金) 15:13:31.62ID:Rii43hQ8
UWPと同じく、WPFもWinUI 3.0に飲み込まれるの?
2019/07/19(金) 19:10:45.56ID:tEkSjkHY
winui 3.0でUWPの依存を排除してxaml islandなしでも動くようになるらしいが、これはクロスプラットなUIフレームワークへの布石なのか?
どうなってるのかよくわからん
2019/07/19(金) 19:27:44.90ID:41z+JSnH
>>511
普通にwindows上でUWPにしか用意してなかったAPIを通常のAPIにするだけでは?
2019/07/19(金) 19:41:26.12ID:tF13LP95
迷走が続くよ、どこまでも
2019/07/19(金) 19:44:45.25ID:41z+JSnH
迷走じゃなく正常化だろ
とちくるって最新の機能を誰も使ってないUWPにだけ開放してたんだぞ
上がバカだとこうなるみたいな話
2019/07/19(金) 21:31:30.10ID:uL87l19N
もうこの際デスクトップ案件でもElectronとかでHTML5で作るようにしたほうがいいかもしれんね
個人的にはC#と.NET好きだけど最近は迷走しすぎる
2019/07/19(金) 21:57:59.32ID:IuwL/lPH
WPFやWinFormsの.NET Core対応も全く将来のこと考えてない必要最小限の場当たり移植で、リリースしきったら逃げる気満々だしなあ
.NET CoreならSCDが可能だから後々MSが.NETのバージョンアップに合わせてメンテしなくて済むという判断なんだろうね
517デフォルトの名無しさん
垢版 |
2019/07/20(土) 01:28:56.34ID:VkxS/ZoP
SCDて何?
2019/07/20(土) 05:52:21.51ID:CKZHjQsT
>>517
.NET Core当ランタイムをバイナリに同梱する供給形態。
2019/07/20(土) 10:23:19.05ID:FOqnxKm1
>>515
そこでWebBrowserControlだけ貼ったWinFormsアプリの出番ですよ。
JSからC#のメソッドfooが`window.external.foo()`で呼び出せるし、
"IE7相当なのでモダンな機能が使えない"問題もHTMLに
<meta http-equiv="X-UA-Compatible" content="IE=11" />
<script src="https://cdn.jsdelivr.net/npm/babel-polyfill/dist/polyfill.min.js";>
の2行をおまじないとして入れとけば大概何とかなるし。
2019/07/20(土) 11:35:17.39ID:D7d7RY7Z
とちくるって最新の機能を大して使われてないWPFに開放されてもだな
上がアホだとこうなるみたいな話
2019/07/20(土) 11:35:18.28ID:kGn1bC0v
SwiftUIとかバインディングできるようになるの?
ってことは時代はMVVM?
2019/07/20(土) 18:24:15.26ID:VkxS/ZoP
>>518
ありがとう勉強になった
2019/07/20(土) 18:43:38.51ID:RQJYT+em
どういたしまして
2019/07/23(火) 10:50:30.31ID:tzcmPjKI
WPF Prism RegionでReact.js並みにコンポーネント画面にしたらおせーー。 もっと早く描画できねぇの?
2019/07/27(土) 14:52:40.76ID:b7Cm9ptD
ObservableCollectionをConverterでバインドしたいけど、初期化した時ぐらいしか発火しないから使い物にならない。どうにか中身が変わっただけで発火させる方法ないですかね...?
2019/07/27(土) 15:40:22.98ID:h5zsNncy
>>525
多分リストそのものじゃなくてザムルでアイテムテンプレートを定義してその中でコンバーター指定するんじゃなかったかしら
2019/07/27(土) 15:45:12.63ID:WtYjh7O4
記憶が正しければ、ObservableCollectionはT型のINotifyPropertyChangedの面倒まで見ないので、自分で実装するしかないはず
誰かNugetで配ってるかもしれない
配ってないなら配ったら喜ばれるかもしれない
2019/07/27(土) 18:53:43.31ID:OJ48iPsW
>>526
>>527
ありがとう。試してみます
529デフォルトの名無しさん
垢版 |
2019/08/02(金) 00:41:38.73ID:/oIAm+R2
ObservableCollectionをそのまま使うのは面倒臭いから
ReactivePropertyのReactiveCollectionクラスのObserveElementPropertyメソッドを使うかな
2019/08/10(土) 23:19:50.45ID:CdfuVllp
https://www.surveymonkey.com/r/MJSNTYK
.net crossplat uiの未来のために
2019/08/10(土) 23:21:32.22ID:CdfuVllp
https://devblogs.microsoft.com/dotnet/calling-all-net-desktop-and-mobile-developers/
こっちでいいか
2019/08/10(土) 23:27:13.13ID:CdfuVllp
https://github.com/microsoft/microsoft-ui-xaml/blob/master/docs/roadmap.md
winui 3.0でもxamlフレームワークを共通にしてcrossplat化着々進行中。
.net core 3.0の次の.net 5も計画されてこの2年が勝負。
未来は明るい
2019/08/11(日) 09:05:27.57ID:JRum2LCS
WinUIは.NETで使用できますが、.NETに依存しません:
WinUIは100%C ++であり、たとえばC ++ / WinRTを介して標準C ++ 17を使用するアンマネージWindowsアプリで使用できます。
2019/08/11(日) 09:06:01.03ID:JRum2LCS
悲報

WinUIは、毎月のプレリリースビルドで、毎年3倍の新しい安定バージョンを出荷し続けます。
2019/08/11(日) 09:13:35.93ID:JRum2LCS
WinUI 3.0は.netに依存しない
ネイティブ(c++)で開発されている

WinUI 2.0との下位互換性を目指すが.netを多用したWinUI2.0の成果は捨てられるということ?
2019/08/11(日) 09:20:41.05ID:JRum2LCS
WindowsネイティブでAPIセットが提供されるから.net 5と何の関係もないし
クロスプラットホーム化も関係ない
そのページで挙げられているクロスプラットホームの例はReact Nativeの話だし
2019/08/11(日) 10:40:57.83ID:Kuz6y2Oe
ついにMFCを捨てることができるのか
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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