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/
660デフォルトの名無しさん
垢版 |
2019/10/09(水) 16:14:04.43ID:0y9ABYBv
>>659
以下に変更したら動作しました。ありがとうございます。

cs側
public DecimalBox()
{
InitializeComponent();
textbox.DataContext = this;
}

xaml側
<TextBox x:Name="textbox" Text="{Binding Value}" PreviewKeyDown="TextBox_PreviewKeyDown"/>

もう一つ質問なのですが、
DataContextの設定を今はcs側でやっていますが、
これをxaml側で行うことって可能なのでしょうか?
2019/10/09(水) 16:24:35.37ID:0y9ABYBv
>>660

自己解決しました
RelativeSource FindAncestorでUserControlまで遡ればよかったみたいです。

<TextBox DataContext="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl}}" Text="{Binding Value}" PreviewKeyDown="TextBox_PreviewKeyDown"/>
2019/10/09(水) 19:13:21.44ID:Ce1FE6BG
>>659
> DecimalBoxにPriceなんてプロパティは無いのでバインディングに失敗する
こう言う時は実行時でもいいから例外発生させるなりしてくれればいいのにね
663デフォルトの名無しさん
垢版 |
2019/10/09(水) 19:46:19.00ID:yz69DB70
Binding失敗してるとデバッグログとかにメッセージ出なかったっけ?
2019/10/09(水) 19:58:14.79ID:0fRzc22C
デバッグログに出るけど他にメッセージが多いと見落としがち
WPFにもx:Bind欲しい
2019/10/09(水) 22:00:06.20ID:TJpx/LrH
さんざん欲しいと言われてるはずなのに追加されない

なぜだろうね
2019/10/09(水) 22:05:55.57ID:bHkpFlre
.Net5なら
2019/10/09(水) 22:16:15.27ID:mYLA6NTy
ないない
なんか勘違いしてるようだが、MSがWPFをCoreに移植したのはメンテナンスをしたくないからだよ
今後.NETランタイムがアップデートされてWPFが壊れても、Coreなら開発者は自己責任で古いランタイムをずっと使い続けることができる
2019/10/09(水) 22:27:19.81ID:E53UYuwr
winformsも同じだね
2019/10/09(水) 22:43:33.90ID:yz69DB70
WPFはオープンソース化したんで何か起きるかもしれん
2019/10/09(水) 22:53:02.63ID:373lwcNW
メンテナンスが放棄されcannaの二の舞を
2019/10/09(水) 23:31:18.85ID:bHkpFlre
WPFは.netframework+WinUIと入れ替わる予定じゃないかな
xamlソリューションとしてはこっちのほうができが良い
2019/10/10(木) 00:05:16.71ID:/TNjFiTo
引き合いに出すのがCannaかいなw
Struts1とかのがヤバくね
2019/10/10(木) 19:08:05.52ID:U4NCIrbo
WinUIは100%C++で書かれたwindows専用API
2019/10/10(木) 20:23:18.39ID:MeoT4exf
winui 3.0で新規に書き起こすんだから今なら下位のレイヤー取り替えられるようにするんじゃねぇかな?つまり、windowsから簡単に切り離せるように。
2019/10/11(金) 19:38:07.79ID:NbTMQOfE
もともとwindowsの機能に依存したUIにすると思う
下位を汎用にすると設計が大変だから
2019/10/11(金) 20:17:33.23ID:Mh9N3tse
下位を汎用にした結果がWPFの大失敗だもんな
まあWPFが下位に抽象化レイヤを入れたのは移植性を高めることではなくて自由度を高めるためだけど、
結局出来上がったのはゲロ遅くて無駄に複雑でMSによるアップデートも遅いゴミ
WinRT以降のOS側で高レベルなUIコンポーネントを提供する戦略は少々行き過ぎてる気もするけど、
少なくとも今更WPFの黒歴史を繰り返すことはないだろう
2019/10/11(金) 23:03:08.03ID:XWYiG0pn
どういうことなの…
2019/10/12(土) 02:58:35.99ID:VvRjKpAi
下位を汎用ってもflutterだってやってることだしな。描画エンジンの部分と入力を汎用化するだけで、googleエンジニアが出来てMicrosoftのエンジニアができないとな?

もちろん、それなりの手間が発生するが。
2019/10/12(土) 03:11:46.71ID:SBuCcucL
でもデスクトップPCそのもののシェアが減ってる現状で下位を汎用化してマルチプラットフォームにする価値あるか?というと怪しい気がする
2019/10/12(土) 08:34:07.80ID:T5dO8LiA
下位に抽象化レイヤを入れたGUIフレームワークとしては既にElectronが成功を収めている
今更作る意味はないよ
2019/10/12(土) 08:37:10.78ID:VpodjE+/
みんな大失敗だよ。
2019/10/12(土) 08:44:21.47ID:VvRjKpAi
WinUIはFluent Design Systemのライブラリだし、別にタッチ専用という訳じゃないけど、クロスプラットホーム化狙うなら、まずはUWP/Android/iOSでしょうに。

WinUIはただのUIライブラリだから、プラットホーム特有のAPIも簡単に呼べるようにならんだが。
https://devblogs.microsoft.com/dotnet/introducing-net-5/
.net coreにもjava/swift interopelabilityが予定されてるし。
2019/10/12(土) 08:46:15.64ID:VvRjKpAi
Electron上げるくらいならflutterの方が有望だと思う
2019/10/12(土) 08:53:16.39ID:VvRjKpAi
まぁ、俺はflutterに乗っかりつつあるけど、Microsoftはやる気あるなら急がんと。googleのflutterへのやる気すごい。
2019/10/12(土) 10:28:41.50ID:V3SUioeZ
Blectronやろ
2019/10/12(土) 18:51:33.97ID:0Jt8rcSq
Electronを汎用と言うのは脳がいかれてると思う
2019/10/12(土) 21:11:44.74ID:fKbeXMkP
Webブラウザは明らかにPALと見做せるだろ
しかも対応するする詐欺ではなく既に各プラットフォームに実装が存在する
2019/10/13(日) 20:08:26.73ID:g3zENVi8
PAL (曖昧さ回避)

PAL方式 - アナログカラーテレビ規格
Pilot Activated Lighting - 飛行場の灯火に関するシステム
フィリピン航空のICAO航空会社コード
プログラマブルロジックデバイス (Programmable Array Logic)
年間熱負荷係数 (perimeter annual load) - 建物の省エネルギーの指標
パレスチナ自治区の旧FIFAコード
江釣子ショッピングセンター パル
2019/10/14(月) 16:48:28.52ID:WeKpLulI
>>669
オープンソース化してなんか起きたのってなんかある?WTL?
2019/10/14(月) 16:50:13.31ID:WeKpLulI
>>322
jsonと規模が違いすぎるだろ
アホすぎる
2019/10/14(月) 16:54:22.26ID:r8b52e+X
三ヶ月と半月
2019/10/14(月) 17:42:15.71ID:7niU2SoV
>>690
規模とか都合のいい条件後付けすんなよwwwww
2019/10/14(月) 20:28:57.08ID:ZDEVVSo/
>>690
INotifyPropertyChangedの実装をネットで拾ってくれば数十行のコピペで行ける
嫌ならライブラリなど使わなくてもいい
2019/10/14(月) 21:17:15.84ID:PUjSeEPC
オープンソース化したらソースが見れるからとドキュメントを書かなくなり、
ユーザもテスト丸投げで品質が下がって
誰も使わなくなって誰も保守しなくなるパターンはいっぱい見てきた。
2019/10/14(月) 22:25:51.44ID:xbNYMWcX
PrismとかReactivePropertyみたいなもんを
汎用化してフル機能で実装するのは難しいかもしんないけど
必要な範囲を作り込むだけなら現実的な工数でできるんじゃないかな
2019/10/14(月) 22:46:59.97ID:O9NensbZ
同僚のプログラマはソース見れるからドキュメント書く必要はないと?
2019/10/15(火) 09:54:14.02ID:uXTdmEH6
今回のSDK更新でUWPDESKTOP完全に逝った? BLE等々使えなくなってるんだけど、、、
2019/10/23(水) 08:03:51.37ID:265Q+qtw
まるでOSS品質
2019/10/28(月) 08:03:50.83ID:Q9FrB4sN
.NET Core 3.0 のリリース以降はコミットも激減してるね
順調に終了に向けて畳みに入ったようだ
2019/10/28(月) 12:43:00.83ID:/BnASX8q
そりゃ元々死んでたのを移植してただけでおすし
2019/10/28(月) 15:48:12.23ID:Oh473u6X
リアニメイトではなく墓を移設しただけか
2019/10/28(月) 16:14:09.33ID:in/88NWJ
ポストモーテムプログラミング
2019/10/28(月) 18:19:00.88ID:JOlYOcTH
とにかく終了してよかった。ほんと惨い仕様だったからな。
2019/10/29(火) 09:12:27.78ID:5yTsnrxf
MS自身が終わったと公式にアナウンスしていないプロダクトが半端に世に残り続けるのは
良かったどころか地獄に巻き込まれかねんがな
2019/10/29(火) 19:31:53.21ID:YCAuRgWu
勝手に皆がwinforms終わった終わった言ってたけど終わってなかった
2019/10/29(火) 19:46:47.87ID:wj5iFmjc
wpfけなしてるのって
winformしか分からない低スキルおじさんと思ってんだけど偏見だろうか
2019/10/29(火) 19:53:59.26ID:+aWfVBYE
偏見じゃないだろ
統合失調症だよ
2019/10/29(火) 20:02:44.28ID:r3tx6fiI
それってとても重要なこと。低スキルには使えないなんて、
フレームワークとして致命的な欠陥品、ゴミと言わざるを得ない。

馬鹿でも使える、Delphi、VB6、C#+winformのユーザを取り込めるはずがない。

キミはwpf使えるおれ高スキルと自惚れてたようだが、実はこのスレでキミが一番滑稽だったんだよ。
2019/10/29(火) 20:12:26.96ID:lqcJQiNV
日本の大半のコーダーはwinformレベルしか理解できないだろ
2019/10/29(火) 20:17:06.23ID:YCAuRgWu
低レベルかどうか以前に使いにくい
listboxのアイテム右クリックして操作するのが非常にめんどくさい

ancestorのbindingとか見ると非常に汚いしこんなもん使いたくないけど使ってる
2019/10/29(火) 20:23:35.82ID:C299Q9qq
バカが使えねーとか結果もいいとこだろ
馬鹿かお前
2019/10/29(火) 20:36:27.81ID:YCAuRgWu
RelativeSource FindAncestor, AncestorType={x:Type Window}

これが汚い
これが平気で使えるのは頭おかしい

データ構造で親クラスのコレクションにアイテムがあったと言うことにだけ依存して親にアクセスするならわかるが
Type Windowと言う変な依存を作ってしまうのが汚い
2019/10/29(火) 20:42:22.81ID:YCAuRgWu
元のデータ構造に依存してデータ操作するならわかるんだけど
GUIのオブジェクトの構造に依存してまたそこからDataContext参照してそこでまた型が違うかもしれないものに対して
平気でアクセスしてしまう異常性

WPFは汚いよ
仕組みを作るべきだった
2019/10/29(火) 22:41:25.89ID:fUvf5qSP
>>712
そこ、Windowでも動くが、大体ListBoxだよな
それなら問題ないだろ
2019/10/30(水) 03:52:53.88ID:d1aCsWvI
汚いなさすがWPFきたない
2019/10/30(水) 11:26:47.04ID:X6nZEuPE
>>711
10年以上前から言われてたから普及するわけないと散々・・・
2019/10/31(木) 14:51:30.77ID:lA+PWvZ+
vb6でもwinformsでもwpfでもuwpでもelectronでも何でも自分の用途にあってればいいわけで、テクノロジーや、それを使う人をdisったりする理由にはならないと思う

サポート切れてるのは新規採用は自分ではしないかなというくらいで後は好きなの使えばいい


そして俺はWPF好き
2019/11/01(金) 07:16:23.42ID:POn0QVxB
俺もWPFの方が好きだなぁ
XAMLで構造が編集できるのがいい
2019/11/01(金) 08:29:04.64ID:luUnrp0t
>>712-713
> RelativeSource FindAncestor, AncestorType={x:Type Window}
> これが汚い
> これが平気で使えるのは頭おかしい
それなー

> データ構造で親クラスのコレクションにアイテムがあったと言うことにだけ依存して親にアクセスするならわかるが
いやいやそれは逆にビューがデータ構造に依存しちゃうからまずいでしょ

> Type Windowと言う変な依存を作ってしまうのが汚い
型で検索すると言うのが気持ち悪い
なぜビュー内の名前で参照できるようにしなかったんだろう?
2019/11/01(金) 08:48:08.78ID:XtQgzT46
ElementNameあるんだけど
721デフォルトの名無しさん
垢版 |
2019/11/01(金) 08:48:22.65ID:hqW7WiA1
>>719
別ファイルでDataTemplate定義してたりしたら使えないけど、ElementName使って名前で参照も出来る場所もあるよ
2019/11/01(金) 08:56:09.38ID:luUnrp0t
>>720-721
まじか、知らんかった…
休み明け(今日は有休)に会社で試してみよう
2019/11/01(金) 13:47:06.36ID:BwGO0cqt
.net coreでグラフ画像を作る方法ある?
chartコントロール使えなくなったから、新しいやり方知りたい
2019/11/01(金) 20:19:46.78ID:TtiCw1tS
そういうジャンルはHTMLにもう任せてしまえば楽なんだけどなあ
jsのライブラリを使えれば一番楽だしGUI操作などもインタラクティブに行える
大量の人間が常に開発を続け最新のトレンドを自分の製品に取り込める

けどWPFなんでしょ?
これからもJSと比べるとライブラリ大幅増の希望もないけどWPFなんだよね
2019/11/01(金) 20:23:09.89ID:7fq87ZBz
ライブラリ増に関してはWinUIがある
大幅増じゃないが
2019/11/01(金) 20:25:10.00ID:TtiCw1tS
これからもOSSのライブラリ依存の状況は進んでいくだろうけど
そういうプロジェクトでユーザーや開発者が多いのはjsなんだ
最先端で使いやすいものを取り入れようとするとC#+WPFは選択から外れる

ごく限られた環境で使うときにWPF+MVVMは使いやすい
しかし実際にアプリを作ると使いたいライブラリがなくあっても貧弱で古い事が多い
2019/11/01(金) 20:30:59.87ID:TtiCw1tS
WPFを使うのは自分が開発しやすいからであるが特定の最新機能などを使おうとすると
OSSが無かったり貧弱であったりしてまあ思い通りのアプリが作れないことがある
そういうのは個人ではどうにもならないレベルだったりするんだよね

自分が開発しやすいから選んだはずなのに実際はしやすくない

いつか誰かが作ってくれるのを期待して待つかそこだけ他の技術に頼るか

それかあきらめるか
2019/11/01(金) 20:43:54.06ID:TtiCw1tS
ヘタするとWPFで開発十数年の人が作ったWPF上のグラフアプリより
入門三日目のhtml+jsの作ったグラフアプリのほうが評価が高くなるかもしれない

そしてwebアプリは3日で出来てWPFは一か月かかるかもしれない
これからどう生きていくかは自分で選択してできるだけ狭い世界に閉じこもらないようにしないと環境と一緒に死んでしまう
2019/11/01(金) 20:46:57.03ID:EqckBJhH
いやjsのほうが人選ぶだろ
型なし言語をスキルない奴に触らせると地獄
これからはBlazorな!
2019/11/01(金) 20:51:28.94ID:TtiCw1tS
ユーザーの目が肥えて期待される機能の完成度のハードルがあがっていくと
高機能のありものを使うしかない

WPFに限らずC#に高機能な既製品が少ない
2019/11/01(金) 20:52:08.15ID:U/a7Wx11
WPF理解できずに逆ギレしてる ID:TtiCw1tS w
哀れやのう
2019/11/01(金) 20:55:00.88ID:TtiCw1tS
書いてる内容noどこがWPF理解できずの部分があるのか教えてくれよw
2019/11/01(金) 21:05:47.08ID:esyAMMm3
>>731
もう夢は終わったんだよ。WPFは消える。だがキミの仕事は安泰だ。
WPFの保守案件はWPFマスターのキミが独占できる。コボラーと同じ身分だ。
2019/11/01(金) 21:12:23.60ID:TtiCw1tS
自分がWPF使ってるのはGUIデザインがやりやすいからでHtml+CSSは理解できないししたくない
自分が使いやすいから使ってる

トータルで優秀だとは思えないが自分の好みで使ってる
いつか死ぬのは見えているでも使ってる
愛があるとかじゃなく今自分のレベルで使えるのがWPFだから使ってる
使える部分だけ使ってる
2019/11/01(金) 21:27:27.29ID:xPzXsDel
それでいいよ
2019/11/02(土) 17:14:50.59ID:POhg1hDY
jsのライブラリも有料化の波が・・・
2019/11/02(土) 17:54:38.37ID:akoaid8M
スレチだったらすみません
グラフ(データプロット)と表を並べるGUIを作りたいんだけど、最近のGUIプログラミングって、どの言語がおすすめ?
楽に覚えられてチャラいデザインにできたら御の字です
C#、MATLAB、Pythonは扱えますが、GUIプログラミングのことはよく知らないもので……
2019/11/02(土) 18:06:20.34ID:pWYzNK5/
webでjs使うのが一番表現は自由だと思う
2019/11/02(土) 19:10:48.46ID:FxhpmPNy
俺はプログラムができてオシャレな物作れるんだぞと言うのをアピールしたいなら
java scriptがおススメ
2019/11/02(土) 19:15:30.51ID:FxhpmPNy
俺はデータサイエンティストだぞというのをアピールしたければpythonがおすすめ
メジャーなグラフアプリもある
2019/11/02(土) 21:48:00.04ID:RbIBPvzK
俺は泥臭い仕事何でもやりますアピールしたいなら
java scriptがおススメ
2019/11/02(土) 22:30:42.41ID:Nne/H10W
夢も希望も無いな
2019/11/02(土) 22:53:31.90ID:tYWIiPQE
>>739-741
ありがとう
泥臭い+オシャレアピールしたいからjsにします。
2019/11/03(日) 15:49:02.46ID:ng0hG2Nw
他人が書いたWPFコードは読めたものじゃないな。保守性ゼロ。
2019/11/03(日) 16:29:59.14ID:kVBOYkVG
他人が書いたWPFコードは(>>744みたいな無能には)読めたものじゃないな。(>>744みたいな無能には)保守性ゼロ。
当たり前やなw
2019/11/03(日) 16:48:20.02ID:Y1hBQ+8z
>>745
言えてる
2019/11/03(日) 17:55:02.22ID:leaAuATv
これから.net frameworkと.net coreが統一されるというが実質は.net frameworkが捨てられるだけ
皆が.net coreに移るわけじゃないから結果として.net軍団は二分される

ゲームでunityに流れ込む人は多いけどWPFに流れてくる人は大幅に減ると思う
2019/11/03(日) 18:39:05.65ID:YzgyorL1
まあWpfフェードアウトしてUWPのWinUIベースになるのは予想できるね
基本的にはWpfとほぼ同じでx:Bindなどの拡張があるから良いと思うよ
WpfにできてWinUIに出来ないこともあるけど、UIタスク以外からコレクションイジられるようになればいいけどな
2019/11/03(日) 20:08:32.81ID:+IMA5W8O
プログラミングのモデルをがらっと変えてくるのはともかく
性能や機能面で以前より劣るものをこれからの主流で御座いと押し付けてきた挙句
そのへんロクに改善せずに開発者の移行も進まず以前のフレームワークもダラダラとサポートし続ける
WindowsのGUI方面はWin8から今まで5年以上は時間と金をドブに捨てとるわ
2019/11/03(日) 21:43:31.62ID:6/YkgK4q
正しい方向へ戻っただけだと思うけどね
Windows作ってる会社自身が、Windowsの進化が遅いから箱庭方式のフルスクラッチでOSから独立したGUIフレームワークを作るわーなんて言ってたんだぞ
糖質かよ
751デフォルトの名無しさん
垢版 |
2019/11/04(月) 00:35:03.18ID:ViGCTZCn
MSの誰がそんなこと言ったんだ?
だいたいこんなゴミフレームワークですら叩くと信者がワラワラ出てくるがそいつらが本当の糖質だろ。
技術的な話題には一切入ってこない低スキルなのに。
752デフォルトの名無しさん
垢版 |
2019/11/04(月) 01:41:28.60ID:uqYdx4m2
どうも、Microsoftのこれからの方向性
この1年で大きく変化しているのを理解できていない投稿が
多いように見受けられんだけど。
来週のIgniteを楽しみにしよう。
2019/11/04(月) 02:18:54.05ID:B36l93jf
MSのこれからの方向性?
「Azure全振り」だ
デスクトップアプリなんて商売としては最早どうでもいい分野であり戦略もクソもないよ
2019/11/04(月) 08:16:57.81ID:7wrIz40y
> 技術的な話題には一切入ってこない低スキルなのに。
>>751の悪口はやめなよw
2019/11/04(月) 14:57:49.02ID:ViGCTZCn
>>754
糖質信者乙W
2019/11/04(月) 15:02:34.48ID:+lCGWVyn
相変わらず非技術的な内容だと元気なID:ViGCTZCn w
2019/11/04(月) 16:56:18.36ID:ViGCTZCn
過去ログも含めてこのスレの大半はWPFの悪口だが、
このようにWPFをゴミと言うだけで信者が顔真っ赤に絡んでくるから注意な。
2019/11/04(月) 17:09:09.95ID:DlV1X8tk
ん?そりゃ悪口とその反論が半々てことじゃないのか?
2019/11/04(月) 17:26:07.75ID:7wrIz40y
ID:ViGCTZCnは技術的な話についてこれないならマ板で吠えてりゃいいのにw
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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