WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part22
■ このスレッドは過去ログ倉庫に格納されています
Windows Presentation Frameworkについて語るスレ。
前スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part21
http://mevius.2ch.net/test/read.cgi/tech/1494288553/
関連スレ
Windows 10 UWPアプリ開発 Part 2
http://mevius.2ch.net/test/read.cgi/tech/1499658092/
コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/ ・WPFが普及しないのは、底辺PGが大半という現実をマイクロソフトが理解してないから ・WPFが普及しないのは、MSの宣教師が少ないから ・WPFが普及しないのは、VSのXAMLテキストエディタで
プロパティエレメントのタグのうち、オブジェクト部分(ドットの左側のみ)を色変更できないから。
そこを薄いグレーにするだけでプロパティ名が強調されて世界が明るくなる。 >>495
少ないというか、役に立たない宣教師しかいないのが… 宣教師たちの「XAML弄るとこんな事もできるんですよ」とドヤ顔に、現場PG達の冷めた目。 開発スタイルが30年前に逆戻りしたWPF。骨董品を模倣した贋作とも言うべきか。 >>501
あー言われてみればX Windowのプログラミングに似てるかも
UI要素の汎用性がとても高くて、やれることは無限大だけど、
ちょっと便利なコンポーネント(NumericUpDownとか)がなくて
いちいち作ってかなきゃいけないとことか 業務アプリは部品貼り付けてプロパティ弄ってイベントにコード書くやり方での見積りだから、XAMLをああでもないこうでもないと時間かける暇は現場PGには無いよ。 FormsのNumericUpDownはボタンがちっさくて使いづらい
ボタンなしならwpfでビヘイビア一回書いたら使いまわしできるだろ FormsよりWPFのほうが自作ツールでスキャフォールディングしやすい
業務系でこの差は大きい 業務系はコントロールは買うものなんですよ。
バーコードとかアナログメーターとか買ってペタペタ張るだけです。 顧客と接するとフラットデザインの嫌われ方が異常だよな。強制しなきゃこれほど嫌われなかったのにな。
こんなものを強要したアホデザイナーは死刑で。 Formsの経験はあるんだが、WPFちょこっと勉強してるがむずいな
本買わないとWEBサイトじゃ分かりやすくまとまったサイトないんかなこれ
依存関係プロパティだのルーティングイベントだの分かりにくいわ
結局何ができるんだよって感じ 別に何とかはない。当たり前だが窓の枠を超えるモンじゃないし >>511
>依存関係プロパティだのルーティングイベントだの
判っているのに越したこと無いが、そこは最初からわからなくてもなんとかなるところですわ
xamlのGridなどのレイアウトコントロールとかprism使ったバインディング辺りから始めるといいかな WPFとUWPって何が違うの?
どっちもxamlだし
ターゲットOSが違うのは分かるが
コントロールが違うのと、WPF独特の構文や機能が使えなくなるって感じかな >>515
まず、ブラウザ対応かどうかが違いますよね >>515
UWPはスマホやタブレットのバッテリー考慮したライフサイクルになってる。
自由に好きなフォルダのファイル読めない。(スマホ宜しくユーザーに許可を求める) >>511
どちらにしても、レガシーシステムを使いづづける場合のメインテナンスでなく
新たなアプリ開発となると、WinFormsのようなインターフェースは使えなくなる
ので、今後の環境に合わせたインターフェースにトライして行くしかない。
その際に、どれを選んでもWinFormsを前提にした頭があると、すべてが難しい
と感じてしまうと思う。
さらにロジックと画面の分離は、今後必須の課題。
その面では旧来のFormsで画面を含めた業務課アプリ開発の人達にとっては
乗り越えないとならない壁が幾つもあるのだと思うよ。 >>515
XAMLテクノロジーには大きく分けて2つの系統があるんだよ
一つはWPFで、これはほとんど全部C#で書かれてる
もう一つはその他(Silverlight, 昔のWindows Mobile, Windows Phone, UWP)で、C++で実装されてる
これらは共通のXAMLという言語を使っているものの、内部的には全くの別物だ
なぜ後者が生み出されて前者が見捨てられたかというと、単純にOS標準として位置付けるには重すぎたから >>511
>依存関係プロパティだのルーティングイベントだの分かりにくいわ
当初、私も悩んだ。 UWPはMSにプッシュして貰えている
WPFはそうでもなかった 現状Uの意味が特にないのでWPにしたらいいと思う
忌まわしいWindowsPhoneと被るけど micorosoftが生み出したまともな技術ってdirectXとExcelVBAくらいだよなw 広く使われているからといって、マトモとイコールになる訳では無いのだ みんなレスサンクス
WPFは重い
UWPはWindowsPhoneがこけてユニバーサルじゃない
のはわかるんだが、開発者視点でアプリ作る上で変わったことはなに?
UWPの目次見ると結構WPFと似てるんだよな
添付プロパティ、依存関係プロパティ、データバインディングにMVVMパターンと
この辺はWPFと共通か
ルーティングイベントとかリソースとかコマンドとかは軒並みなくなったのかな
俺今WPFの勉強してるんだが、WPFすっとばしてUWPの勉強した方がいいのか? >>528
一番助かるのがx:Bindというやつで、コンパイル時にバインドするプロパティーをチェックしてくれるからデバッグが楽になる
更にイベントハンドラーもバインド出来るからビヘビアを書く機会が格段に減った >>529
x:Bind、WPFでも凄く欲しい機能だけど、政治的理由で来ないだろうなぁ >>530
MSでは「レガシー」への新規投資は認められないからね >>528
ほとんど概念的なのは共通だから好きな方からやればいい。
俺はUWPアプリ作りたかったからUWPから入ったけど。
作りたいアプリの方を先にやればいいじゃん つか、x:bindはサンプルアプリ作って比較しても速度的なメリット全然実感できねぇw 逆にx:bindの型チェックのうるささがあれでbindingに回帰してるわ俺は。 WPF重いってきくけどWPFアプリに必要なのはむしろx:bindよりUWPみたいな.netネイティブ化? >>528
そう言うGUI的な部分はあんまり変わらない。
>>519 で書いた通り、ライフサイクルとファイルアクセスがスマホやタブレットと同じになった。
づまりアクティブアプリじゃ無くなるとスリープに入ったり、アプリ沢山立ち上げると古い順に勝手に終了する。
ファイルアクセスもユーザーに許可を求めておkされた場所しかアクセスできない。
(ストアにアップする時画像を扱いたいのに、間違えて許可取らなかったらアップし直し) >>534
.netでネイティブよりセキュリティ安全って立場だから無理。
UWPはアクセス権限が厳しいのと、ストアでバイトコードをコンパイルする事で多様なプラットフォームに対応出来るからネイティブに出来た。
(多様なプラットフォームなんて無いに等しいんだが) みんなレスサンクス
>>532
作りたいのはxamarinアプリなんだ
だからxamarin.UWPなんだが、仕事中に勉強しやすいのはWPFなんだよね
入門サイトもまとまったのが多いしサイト見てても不審がられない
>>535
デスクトップアプリでもUWPで作るとそうなっちゃうの?それってクソすぎないか?
みんなの話をまとめるとUWPってターゲットOSもwindows10のみでWPFより狭くなりブラウザでも使えなくて制限も増えて、速度だけWPFより早くなっただけのプラットフォームってこと? あのチャールズ・ペトゾルドにスルーされているぐらいの人気の高さ ストアアプリ(WinRT)はペゾルトもリッチャーも本出してたべ
スルーされてたのはWPFの方 チャールズ・ペトゾルドって初めて知ったけど
かなり年いってるな
今も現役なんだろうか >>547
Win16時代に読みました^^;
あとはSDKのサンプルくらいしか情報が無かったです。 WPFをDirectXからWebGLにポーティングしてBlazorでwasm化できたら最強なのにな。 同じアセンブリ内にある自作クラスの静的プロパティを
フォームのXAMLでコントロールのプロパティにバインドするってできる? 別にビューモデルにその静的プロパティ用のプロパティ追加すりゃいだけじゃん。 まぁ直接できるか聞いてるんだろうけどごめん俺の知識では... あれこれ試してたらx:Staticでやれることが分かったんで解決しました
>>555-556
解決手段のひとつですね、貴重な意見ありがとうございます キタコレ!
ARM64向けWindowsアプリの開発が正式サポート 〜「Visual Studio 2017」v15.9でビルド可能
“Microsoft Store”での受け付けも開始
https://forest.watch.impress.co.jp/docs/news/1153679.html WPFの場合、Windowに直接ではなく、Gridなどの下に各コントロールを入れることが多いと思うんですが
コントロールのオブジェクトから親のWindowのオブジェクトを辿ろうと思ったら
地道にParent辿っていくしかないですかね? >>560
バインドされてるデータならViewmodel見ればいいし、コントロールがほしいならnameだかkeyだかを欲しいコントロールに与えればいいんでね? ここで便乗質問。
ApplicationクラスからMainWindowプロパティを辿り、MainWindowに作った ViewModelプロパティを設定する。
Frameに置いたPageとかは、Applicationクラス→MainWindowプロパティ→ViewModelプロパティで、親のViewModelを辿るソースを見るけど、やっぱりそういうもんか?
昔でいうMFCのCWinApp(CWinAppEx?)の派生をカスタマイズしインスタンスのtheAppから操作するってな思想でOKなん? 経路がややこしくなってきたらeventaggregatorで飛ばすという手抜き・・・
ある意味スタティックより悪質かもしれんが あーめんどくせー
Windows Forms楽でいいわ dotnet/wpf: This repo contains Windows Presentation Foundation (WPF) for .NET Core
https://github.com/dotnet/wpf
> .NET Core (including the WPF repo) is licensed under the MIT license. レジストリとかWMIみたいなWindowsOS寄りの機能を使うがためにWPF採用したので、
結局coreに移行してLinuxで動きます言うても手直しは必要なんだろうな。
UWPみたいにプロセス間通信までお断りみたいな状況よりはましか
DBサーバと通信できないんじゃ何も出来ないしな。。 >>568
>>433
>WinFormsとWPFがクロスプラットフォームになることのない点には注意が必要だ >>569
英語読めないの? >>566 読め。
読めないなら日本語記事見付けたから貼っとく。
WPF/WinFormsをオープンソース化 〜Microsoft、「.NET Core 3.0」Preview 1を発表
Windows デスクトップアプリも「.NET Framework」から「.NET Core」ベースへ
https://forest.watch.impress.co.jp/docs/news/1156678.html >>570
>「WPF」や「WinForms」がMac/Linuxで利用できるようになるわけではないが、 WPFがクロスプラットフォームになると勘違いしてるやつがいるのか?
MSの開発者はそれはありえない
WPFのWはwindowsのWだからってわざわざ言ってるのに WebブラウザーがやっとEdgeになるのか
地味にうれしいかも GUIは環境ごとの差が大きすぎるから仕方ない
だいたいmacやLinuxでリボンやらメトロやらをごり押しされても迷惑だろう >>568
DBはREST使う前提の設計だからなんとかなる
しかしローカルサーバーとhttp通信できないのは割と困る
あと、ファイルシステムが無茶苦茶遅いね >>577
マイクロソフトがARM版Chromeのコミットを頻繁に行っている
ってとこからの妄想じゃないのかな WPF/WinFormsをオープンソース化
だってよ 碌にドキュメント整備せず、オープンソース化して、テスト、サポートを顧客に丸投げ。
完全に手抜き開発。MSの技術力低下しすぎ。 結局MSはWPFなりWinFormsなりをどうしたいんだよ
中途半端に生かされても困る だな。ほんとマイクロソフトはWPFとか今後どうしたいのか。
.NET Standard 2.0までは明確な目標あったけど、.NET Core 3.0以降の展望がわからん。 WPFとか囲い込み目的でWindowsべったりの実装にしたんだから、
レガシーとか言わず、もっと責任持ってメンテして欲しいよね
WPFとか適当に扱った実績ができたからUWPも信用されなくなってる気がする フレームワークを建てては放置してで信用されてないのはその通りだが
WPFが囲い込み目的でWindowsべったりってのは意味わからんw >>577
https://github.com/MicrosoftEdge/MSEdge/blob/master/README.md
Chromiumベースのブラウザにシフトするというのが正解らしい
最もらしいこと言ってるけど、実体はもうEdgeに人手を掛けたくないんだろうな microsoftはどうせならblinkじゃなくてシェア低いfirefoxのエンジンの方を採用しろよ。これで更にblink1強感が強まると後々ヤバそう。
webkitは実質apple製品のみだから脇に置いといて。 ■ このスレッドは過去ログ倉庫に格納されています