- 1 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 23:45:15.36 ID:EZjVZgG6.net]
- ■Visual Studio 2013 Community & Express(無償の統合開発環境)等はこちら
www.visualstudio.com/downloads/ ■コードを貼る場合はこちら ideone.com/ ■前スレ C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net peace.2ch.net/test/read.cgi/tech/1437808445/ C#, C♯, C#相談室 Part89 peace.2ch.net/test/read.cgi/tech/1443271409/ C#, C♯, C#相談室 Part90 echo.2ch.net/test/read.cgi/tech/1455160063/ ■次スレは>>970が建てる事。 建てられない場合は他を指定する事。
- 24 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 09:57:52.03 ID:euWTmbm8.net]
- wpfの方が騒がれてるけど結局formじゃないか?
- 25 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 12:17:20.02 ID:FyIcdvIJ.net]
- 業務アプリ以外はUWPに移行
業務系はWinFormsだろうな
- 26 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 12:20:21.90 ID:fkbDdb5s.net]
- WPFは描画にGPU支援あるけど、恩恵なんて極わずかだしな
- 27 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 12:44:44.53 ID:9i/eBlRk.net]
- っていうか、WPFってどんなに取り巻きが誉めそやしても裸の王様だと思うわ。
可読性がとにかく悪い。 Win Formみたいなイベントドリブンならある機能がどこで実装されているか、それを修正するためには どこを変えればいいか、ほとんどの場合すぐに検討が付くけど、WPFだとこれがイライラの連続の 苦行そのものに堕落しちゃう
- 28 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 14:03:36.25 ID:T8rwYGfS.net]
- UWPはネイティブ化されたから、C#やJavaなどのVM系特有のもっさり感から開放されたし
リバースエンジニアへの対応もC++と同レベルになった 問題はDataGridViewが標準でないこととリソース使用の制限などだが そこがクリアできるなら速攻移行するべきだな
- 29 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 14:24:49.81 ID:/8UUm0jP.net]
- やっぱりDataGridを切望してるのは日本人だけなんですかな
異常に罫線が好きな民族だからね
- 30 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 14:26:53.51 ID:lMECrzfj.net]
- 民族だよね
- 31 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 14:29:08.88 ID:io5w9F+U.net]
- >>24
>業務アプリ以外はUWPに移行 >業務系はWinFormsだろうな 何で業務系は移行しないん?
- 32 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 14:51:18.13 ID:pMvOYoph.net]
- 業務アプリ以外はUWPに移行してるかどうかは別として
UWPはwin10必須になるからな
- 33 名前:デフォルトの名無しさん [2016/11/07(月) 15:09:36.70 ID:8BVz5aV9.net]
- 必須とはどういう意味?
WPFは大失敗だから、いま見直ししてると思うな。もう少し頭のいい奴に考えさせる んじゃないかな。まあすぐに消えるわ。
- 34 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 15:15:37.39 ID:T8rwYGfS.net]
- しかしCollectionViewSourceに有った機能の殆どを「自分で実装しろ」と言う仕様変更は如何なものか
- 35 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 18:02:50.76 ID:5lIwdUhD.net]
- >>32
読んで字のごとく、UWPはWin10じゃないと動作しない
- 36 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 18:18:24.24 ID:mmljEldz.net]
- WindowsServerの共有フォルダに対して
一台のPCで複数のセッションを 張りたいのですが 便利なC#でも難しいでしょうか セッション枯渇をシュミレーション したいのですが、数十台の 物理的なクライアントを用意するのが 厳しく
- 37 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 22:53:04.02 ID:UfUqh0gR.net]
- >>21だけど取り敢えずはWindowsFormも普通に現役っぽいからそっちを使う事にします
回答ありがとう
- 38 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 22:53:34.17 ID:d19P1q1E.net]
- その手のはC#のライブラリで用意されてなくて結局P/InvokeでWin32APIを呼ぶことになるから、
Win32APIのスレで訊いた方が良いと思う。
- 39 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 23:00:48.29 ID:GpYwrGgA.net]
- WPFは出てからちょうど10年たったけど全然普及しなかったね
- 40 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 23:26:27.59 ID:geFZXkbd.net]
- >>37
やはりC#での手段は無さそうなのですね Win32APIスレで聞いてみます ありがとうございます
- 41 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 23:46:06.46 ID:d19P1q1E.net]
- WPFはせっかくがんばって色々できる土台を作ったのに、完成度を上げ切れてないのが何とも勿体ない。
ReactiveProperty(MS製のオープンソース)とか標準で入っていればずいぶん作りやすくなるのに。 標準のコントロールも数が足りないね。 とは言え、WindowsFormsよりもWPFの方が楽な場合もあるから、結局両方使う。
- 42 名前:デフォルトの名無しさん [2016/11/08(火) 00:28:14.64 ID:mUYwed62.net]
- WPFってWinFormプロジェクトと混在して使えるの?
- 43 名前:デフォルトの名無しさん [2016/11/08(火) 00:31:06.09 ID:mUYwed62.net]
- >40
完成度のもんだいだろうか? そもそも根本的なところで間違ってるような気がする。 何が間違っているのかうまく言えないが、、、W
- 44 名前:デフォルトの名無しさん [2016/11/08(火) 00:41:11.17 ID:mUYwed62.net]
- MSのドキュメントって最近は多少ましになっては来ている部分も少しだけあるけど
ほとんどが駄目だとおもう。頭の悪い奴の書いた文章そのものって感じがする。 簡単なことを難しく書いていて要領を得ない。ワザとやってるのかなと思って いたがそうでもないらしい。 こんなドキュメントを書くようではスッキリした まともな言語の開発はできないと思う。 でもC#は奇跡的に素晴らしいと思う。この素晴らしさはMS的ではないな。WPFは MS的だと思う。
- 45 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 00:51:04.50 ID:360M0HJP.net]
- >>41
WPFにWindowsFormsHostコントロールってのがあるので、それを利用してFormsのコントロールを使える。 その逆はやったことないけど、ElementHostコントロールを利用するらしい。
- 46 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 01:21:27.86 ID:Iqb/ffmt.net]
- >>26
Formsの何がダメかというと意識の低い雑魚プログラマでも手が出せるところだろうな 雑魚が書くとすぐにレイヤがぐちゃぐちゃに混ざり合い重複したコードが際限なく増えていきオブジェクトから手続きの時代にタイムスリップする 油断して監視を緩めるとあっという間に手に負えなくなる WPFは雑魚は切り捨てられてるからそういったリスクが少ない MVVMという共通の概念を身に付けた意識の高い人材が集まるから自然とコーディングスタイルが統制されて読みやすい高品質なコードが出来る
- 47 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 02:27:54.02 ID:KFsAZFmi.net]
- >>45
WPFのコードを読みやすい思ったことは一度もないわ。 しかし、凄い倒錯だねw Windows Formの問題はダメな奴でもそれなりに(可読性のないコードを)書けてしまうことだというが、 それを言うならWPFの問題はまともなプログラマが書いても決して可読的にならないことだろう。
- 48 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 03:24:51.90 ID:iu8f14dF.net]
- 可読性が悪いっていってるのは XAML のこと?
それともバインドしてるプロパティがどれなのかわからないみたいなこと? 前者ならもうどうしようもないけど、 後者ならWindows Formでも同じ気がするし、 バインドとかCommandとか使わずにイベントドリブンで作る方法もあるよ。
- 49 名前:デフォルトの名無しさん [2016/11/08(火) 03:48:44.45 ID:mUYwed62.net]
- >47
どっちがダメかといわれても答えようがないが、ダメなものを平気で追加している と、少しだけはいいものがあったにしてもダメになるよね。 いいものなら直観的にシンプルに説明ができると思う。 C#の属性拡張なんかも、その点ではかなり危ない。でも本体がしっかりしているので あまり汚れが目立たない。 WPFは最初からダメでしょ。そもそも取り付けないし見通しも見えない。1日ほど 弄ってみたことがあるが、全然わからんかった。何がいいのかさっぱりわからん。 直観的に説明できないようなものって間違ってると思うよ。 こういう場合二つのアプローチがあると思う。 1.訓練してこれに慣れるという方法 2.何がダメなのか何が問題なのか発見するという方法 後者を採用する人にはこれはある意味チャンスだと思う。まあでもこれを使いこなせる ってことは「頭いい」って証明にはなると思うから、1.のアプローチも間違い じゃない。W
- 50 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 04:02:41.99 ID:VojG/etj.net]
- >>43
英語を読んでる? 日本語版は機械翻訳だよ
- 51 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 05:54:50.91 ID:360M0HJP.net]
- >>48
1日しか触ってなくてほとんど何も理解もしてないのにダメ出しってのも何だかな。 従来と仕組みが違う部分が多いから、従来の(WindowsGUIプログラムの)経験からの直観は働きにくい。 学習コストがかかるのもデメリットではあるけどね。
- 52 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 07:31:09.86 ID:TXhVVjP1.net]
- 雑魚排除といえば
VBを残し続ける理由が分からない VB作る人的リソースを XAML強化とかに回せば良いのに
- 53 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 07:36:07.95 ID:TXhVVjP1.net]
- WPFはFormアプリが
健在だから使う機会がない MSの下位互換の精神は悪いと 言わないけど、もう良いんじゃねって 技術が延々と残ってるから 嫌になる
- 54 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 07:48:59.11 ID:uO4YTQEs.net]
- 俺は最初からWPFを使ってるのでWindowsフォームの利点がわからん。
あらゆる点でWPFの劣化版のように思えるのだが。
- 55 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 07:54:17.11 ID:Iqb/ffmt.net]
- >>48
こういう人をお断りできるだけでもすごいメリットだよな WPF程度の難易度のフレームワークを1日で諦めるとかちょっとな 昔は多かったオブジェクト指向はよくわからないから悪もの理論の年配と同じ臭いを感じる
- 56 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 08:01:23.60 ID:6Cpjtpfi.net]
- >>40
>ReactiveProperty(MS製のオープンソース) Prismとごっちゃにしないでね。 ただアレは便利だわ
- 57 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 08:10:26.28 ID:6Cpjtpfi.net]
- Formsで出来るレベルのことだけでいいなら、そりゃFormsのほうが楽かもしれんね
でも、コントロールの外観をいじりたいとかって話になると、wpfのほうがずっと楽だろ Formsでアニメーショなどどうやってヤるんだよ
- 58 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 09:36:53.50 ID:+DS6ozoh.net]
- だからそういう用途じゃなきゃFormsだし
そういう用途にしてもUWPに移行するって話だろ
- 59 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 10:24:37.04 ID:h2p8PH96.net]
- >>53
例えば、Formの利点というよりWPFの欠点だけどグラフィックのパフォーマンスだね。 GDI+も登場時散々遅いと叩かれたけどWPFはその何十倍も遅い。 ググると出てくると思うけど、あまりに遅くて、2Dの折れ線グラフのような単純なものでも データ数が多いと全く使い物にならない。 俺自身パフォーマンスの問題をどう工夫しても解決できなかったので結局GDI+で書き直すはめになった
- 60 名前:デフォルトの名無しさん [2016/11/08(火) 11:20:31.78 ID:mUYwed62.net]
- >50
XAML <TextBox Width = "100" FontSize = "30" Text = "テスト" Background = "White" Foreground = "Blue" /> C# textbox1.Width = 100; textbox1.FontSize = 30; textbox1.Background = Colors.White; textbox1.Foreground = Colors.Blue; textbox1.Text = "テスト"; 文字少なくてよさげだけど、肝心のこの部分が隠れる。 TextBox textbox1 = new TextBox(); 大事なところを隠蔽されるのはダメだよ。 プロパティを並べるのに<>で囲む必要なんてどこにあるんだよ。 という感じ。文書として保存するときなら<>つけたらいいではない? でもエディットするときにこんなもんは不要だ。
- 61 名前:デフォルトの名無しさん [2016/11/08(火) 11:31:34.08 ID:mUYwed62.net]
- <TextBox
Width = "100" FontSize = "30" Text = "テスト" Background = "White" Foreground = "Blue" /> 文書保存するときはこれは別にいいと思うけど、もともと簡単に打ち込みできるよう になってるものを、テキストで打ち込む理由はないな。
- 62 名前:デフォルトの名無しさん [2016/11/08(火) 11:43:12.95 ID:mUYwed62.net]
- >47
XAMLはNetをXMLで表現するタグだけのことだろ。 それは別にそれでいいんでないか? 整理できるし。 問題はWPFっていう糞のIDEだな。見通しがきかない保存文書構造のXMLを使って なんでプログラム組まなきゃなんないのってこと。本末転倒だろ。W
- 63 名前:デフォルトの名無しさん [2016/11/08(火) 12:00:35.75 ID:mUYwed62.net]
- >コントロールの外観をいじりたいとかって話になると、wpfのほうがずっと楽だろ
>Formsでアニメーショなどどうやってヤるんだよ 楽なのは抽象度が高くなっていて、逆に言えば細かい処理はできないってことだね。 FormでできないことがWPFでできるわけじゃなくて、それなりのコントロールを用意して 楽にしているだけ。楽なコントロールが楽になってるだけ。そういうのを適宜使うって のはありだと思うよ。アニメーションとか、、、、アニメーションとかほかにどんなもの がある? でも.netになくてWPFだけにあるものなんてある?
- 64 名前:デフォルトの名無しさん [2016/11/08(火) 12:12:18.45 ID:mUYwed62.net]
- xmlns="schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="schemas.microsoft.com/winfx/2006/xaml" エディターにロードした段階でこんなタグは不要だろ。なんでこんなのがいちいち 画面を占有しているの? バカっぽいと思わん。 これがなければ余分に2行ソースが見える。W
- 65 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 12:47:02.22 ID:unEOfTV3.net]
- >>59
なんでXAMLにすり替えてんだよじじい
- 66 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 14:50:51.38 ID:CGI+nyHh.net]
- 男だったのか
- 67 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 15:14:04.09 ID:EaH/m5NR.net]
- GUIフレームワークなんて何使っても大差ない
根本的な設計がしっかりしてれば楽 でなければ何やっても苦痛
- 68 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 16:42:41.52 ID:TdC6P0sc.net]
- newも、ソースの見通しとも、xmlnsについてもWinFormsではデザイナが自動生成するコードだからほとんど見ないし、自動生成コードよりはXamlのほうが優れてるだろ
WPFの問題はバインディングとかMVVMとかがなかなか難しいし、情報資産が少ないことにある気がする 少なくとも、外観やコントロールの機能いじったり、バインディングを活用するなら悪くはない
- 69 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 17:07:35.31 ID:uO4YTQEs.net]
- >>58
そうなのか。 本当にWPFが遅いのかは限界までチューニングしなきゃわからんとは思うが、 少なくとも通常のやり方ではWindowsフォームのほうが速いというわけだな。 WPFでは勝手に画像がスケーリングされたり、 アンチエイリアシングされたりするのでそういったのを 徹底的に無効化しなきゃ速くならんからな。 画像を綺麗に見せるためなのか知らんが、 こういったマクロソフトの俺様仕様は勘弁してほしいところだわ。 >>59 そんなにXAMLが嫌いならXAMLを使わなきゃいいだろ。 そもそもXAMLはWPFとは何の関係もない。 XAMLを使わなくてもWPFプログラミングなどいくらでもできる。
- 70 名前:デフォルトの名無しさん [2016/11/08(火) 18:00:32.99 ID:mUYwed62.net]
- >68
えっ、そうなんだ。チュートリアルはほぼxamlの説明だけだよ。W
- 71 名前:デフォルトの名無しさん [2016/11/08(火) 18:03:46.28 ID:mUYwed62.net]
- 一時期XMLが流行った時があって猫も杓子もXML状態になったよね。そのあと全部
失敗してXAMLはしぶとく残ってるということではないのか?
- 72 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 18:52:03.52 ID:WSlpNxFl.net]
- もうザマリンでAndorido準拠の
プログラム作れば良いよ WindowsPhoneのシェア0.3%で WPFの先も無さそうだし
- 73 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 18:56:36.28 ID:WSlpNxFl.net]
- FormアプリとVBは
Windows7までにしておけば良いのに 共に役目は終えたし MSはリソースを少し集中しようよ モバイルじゃシェア失ってるんだし
- 74 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 20:25:06.49 ID:UoXgnYKD.net]
- Win32API時代から自分で描画するコントロールを作っていくのが好きすぎて未だにやめられない
- 75 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 20:40:02.61 ID:RPJf2WNu.net]
- WinFormは趣味グラマにとってぬるま湯で居心地がいいw
IDEのおかげで下手なスクリプトより楽だし
- 76 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 20:51:54.08 ID:360M0HJP.net]
- >>55
すまん。完全にごっちゃになってた。 >>59 その例だとXAMLにx:Name="textBox1"が抜けてるぞ。 XAMLでの<TextBox>タグの宣言こそが、TextBox textbox1 = new TextBox(); に相当するってだけで、別に隠しちゃいない。
- 77 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 20:58:12.04 ID:RPJf2WNu.net]
- ついでに流れに乗っておくと
>>58 WPFはGDI+(WinForm)よりもグラフィック関連は速くなるものだと思っていた WinFormは扱うデータサイズが大きくなると消費するメモリサイズが飛躍的に増えるんで、グラフィック関連は扱うのにあまり適していないんだよな
- 78 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 21:15:33.89 ID:360M0HJP.net]
- >>76
あるポイント数を超えるとまったく実用じゃないくらい遅くなるね。 ポイント数が多くてスピードが要求される場合は、DirectXを使って高速描画出来る有償のコントロールを買うしか無さそう。 数年前の資料だけど、各種チャートコントロールの性能比較 WPF Charting Performance Comparisons (the Battle Continues) blog.scottlogic.com/2012/04/24/wpf-charting-performance-comparisons-the-battle-continues.html
- 79 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 23:17:39.44 ID:6Cpjtpfi.net]
- ポイント数が多くてスピードが要求されるなら、データを間引いたほうが現実的じゃなかろうか?
データ視覚化なら2、300もアレば十分だろ
- 80 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 23:28:48.20 ID:o3gm2pi/.net]
- そんな高度なことができるわけないだろ
- 81 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 23:52:00.16 ID:6Cpjtpfi.net]
- >>79
もうちょっと頑張れ
- 82 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 00:13:40.23 ID:HQuuA4JA.net]
- >>49
他のベンダーのヘルプとか見たことないんだろ MS なんてかなりまともな方だと思う
- 83 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 01:04:00.05 ID:SotHgA9V.net]
- >>78
系列が少なければね。
- 84 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 01:09:36.44 ID:SotHgA9V.net]
- >>62
知らないのに当てずっぽうで書いてるのが良く分かるな
- 85 名前:デフォルトの名無しさん [2016/11/09(水) 02:23:18.79 ID:pYqjQFAT.net]
- >77
イケてるやないか。 でもデータバインディングやったらボロボロ。W
- 86 名前:デフォルトの名無しさん [2016/11/09(水) 02:57:40.95 ID:pYqjQFAT.net]
- >に相当するってだけで、別に隠しちゃいない。
隠すつもりがなくても視認性が悪いから隠れるんだな。これが、、 WPFの肝は 1.UI部分は XAML で記述 2.実行コードは C# または VB 3.グラフィックス描画は DirectX 4.データドリブン的なものをデータバインディングでやる 1.と4.が手抜きでいい加減だから全然だめ。 1が駄目だから2を書こうにもどう書いたらいいのかわからないというジレンマ 4がダメだから遅いし使いにくいし使い物にならないしトータル的には失望を加速 している。 料理の材料はまあこんなものでいいというか素材は素晴らしい。しかし集めて料理 するんならもっと一つ一つを丁寧に作りこまなくてはだめだろ。これじゃ味の バランスが悪くて料理になってない。もうひと手間かけるのができないんだよな。 最後までやりきることができない。思い付きと能書きは立派。W
- 87 名前:デフォルトの名無しさん [2016/11/09(水) 03:24:51.72 ID:pYqjQFAT.net]
- <Window x:Class="SliderTest.Window1"
xmlns="schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300" Background="LightBlue"> <Grid> <TextBox Height="24" HorizontalAlignment="Left" Margin="30,19,0,0" Name="textBox1" VerticalAlignment="Top" Width="72" Text="{Binding ElementName=slider1, Path=Value}"/> <Slider Height="22" Margin="28,64,20,0" Name="slider1" VerticalAlignment="Top" /> </Grid> </Window> この書き方は糞 Text="{Binding ElementName=slider1, Path=Value}"/> こうなるのが正解。 Text="{Binding slider1.Value}"/>
- 88 名前:デフォルトの名無しさん [2016/11/09(水) 04:07:40.94 ID:pYqjQFAT.net]
- ファンクションキーのイベント発生に見れるセンスのなさ
こんな書き方はどんだけ糞か? ネーミングのセンスがまるでない。 PreviewKeyDown="Window_PreviewKeyDown" これがセンスのいいなまえ FunctionKey = "KeyDown" もしくは KeyDown="FunctionKey" KeyDown="F1" など
- 89 名前:デフォルトの名無しさん [2016/11/09(水) 04:26:59.85 ID:pYqjQFAT.net]
- プロパティ値の継承に見る手抜き
プロパティ値が割り当てられていない子要素がある場合、プロパティ値の設定がある 最も近い親要素の値を割り当てる。W まあこういう問題が発生するのも、手抜きが手抜きを生むことの良い例だ。ボタンコン トロールひとつを表すのに手近な要素をかき集めて作りあげるという手抜きをしたこと で、イベントがうまく取れないという問題が発生した。そこでイベントルーティング という新たな手抜き概念を導出してしかもプロパティ継承という誤魔化しまでしなくて はならなくなった。 トンネル、バブル、ダイレクト イベント一つにこんだけ複雑なことをする羽目にな ったのも、最初に行ったわずかな手抜きが原因なのだ。
- 90 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 04:29:27.99 ID:9orsc4MQ.net]
- >>86
>>87 業務で使う場合はViewとViewModelをきっちり分けるよ なのでバインディング式は下記のように <TextBox Text={Binding ResultMessage} /> シンプルになる。 View内の他の要素の値をバインドするなんて 滅多にないから(デバッグ時くらい?)、{Binding ElementName=slider1, Path=Value} みたいな冗長な書き方はいいと思う。 装飾系も普通はResourceDictionaryにまとめる。TextBoxタグ内にゴテゴテ書いたりしない <Window.Resources> <ResourceDictionary> <Style TargetType="TextBox"> <Setter Property="VerticalContentAlignment" Value="Center" /> <Setter Property="HorizontalAlignment" Value="Left" /> <Setter Property="Foreground" Value="{StaticResource GlobalForeground}" /> </Style> </ResourceDictionary> </Window.Resources> キー押下時のイベント発生もViewはCommandをViewModelに発行するだけだね <Window.InputBindings> <KeyBinding Gesture="Ctrl+T" Command="{Binding MenuOpenCommand}" /> </Window.InputBindings> イベント発生時の処理内容をxaml.csに記述したりはしない
- 91 名前:デフォルトの名無しさん [2016/11/09(水) 04:36:52.64 ID:pYqjQFAT.net]
- データバインディングに見る手抜き
「WPF のデータバインディングはこれだけで 1 冊の本が書けるほど面倒です。」という 関係者。たったこれだけで関係者が本を書いて10年は食える飯のタネになる。W WPFにおけるデータバインディングの重要性と可能性はこの限りにおいては非常に成功 している。テーマとしては食いつきがいい。「これさえマスターすれば、あとは データを流し込むだけで自動的に表示してくれる」 魅力的なのだ。 食いつきがよくて、複雑怪奇な場合には関係者は情報を小出しにすればかなり長期に わたってよい飯の種になる。
- 92 名前:デフォルトの名無しさん [2016/11/09(水) 04:37:26.02 ID:pYqjQFAT.net]
- さあ寝よう。おやすみ
- 93 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 07:27:40.65 ID:ccPtaul1.net]
- >>91
そこら辺が問題だと思うのなら、全て解決したUWPに移行したら良いんじゃないのかな? x:Bindで事前バインディングで厳密に型チェックヤるし、イベントバインディングも出来るからな つか、アンタの言い分はイソップ童話の酸っぱいブドウそのものです
- 94 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 07:54:15.04 ID:TlbuxVnv.net]
- 個人的にUWPに偏見を抱いている理由はOneNoteが糞なせい
OneNoteの糞さはUWP無関係だと思うが、自分の観測範囲にUWPの実用サンプルがそれしかないので どうしても印象が引っ張られる
- 95 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 09:17:12.31 ID:KnEUpDo2.net]
- XAMLに親を……
- 96 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 09:17:36.57 ID:SotHgA9V.net]
- >>87
KeyDownってイベントは別にあるぞ >>88 もはや言いがかりのレベルだな
- 97 名前:デフォルトの名無しさん [2016/11/09(水) 12:09:48.16 ID:pYqjQFAT.net]
- >89
どんな糞言語でも本質をよく見極めてセンス良く使う人はいるものだよ。 しかしそこに到達するまでにどんだけ時間がかかるというのだ。俺なんかわけわからん から右往左往するばかりだよ。 せめてBlendをまともに作ってくれれば、それなりにUIの問題は解決するのにな。 Blendも糞だろ。W 最近のは使ってないからわからんが、、、
- 98 名前:デフォルトの名無しさん [2016/11/09(水) 12:10:37.11 ID:pYqjQFAT.net]
- >そこら辺が問題だと思うのなら、全て解決したUWPに移行したら良いんじゃないのかな?
>x:Bindで事前バインディングで厳密に型チェックヤるし、イベントバインディングも出来るからな 今度はUWPかよ。小出しにするなー。つまりWPFは糞だったと認めるんだな。W
- 99 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 12:12:21.25 ID:C35LXred.net]
- UWPは互換性取るために使えない機能が多すぎてFormやWPFと比較する気にもなれない
- 100 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 13:18:01.59 ID:imHVERPt.net]
- で?。W
- 101 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 13:24:22.96 ID:13V/HCY3.net]
- またストアアプリみたいにいつ梯子外されるかわからないUWPに手を出す人は
よっぽどお勉強好きなんだろうなw 仕事ならしょうがないけど自分の時間使って勉強する気にはなれんわ
- 102 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 13:44:46.30 ID:U6OuotlL.net]
- WPFに手だしちゃった人ならいけるでしょ
- 103 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 16:05:04.67 ID:L45XBX69.net]
- >>87
コードビハインドにイベント書くことはおすすめされないし、そもそもPreviewKeyDownってFunctionキーのイベントを受け取るためのイベントじゃないぞ? WinFormsにも同じ名前のイベントあったじゃん WPF以前の根本的な能力がかけてるんじゃね?
- 104 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 19:12:41.31 ID:UPD5ANvk.net]
- UWPって多重起動できるんですか?
- 105 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 19:23:20.90 ID:c1gJ8Ir2.net]
- Windows10のPCは買ったけど、予備にした古いPCで動かす事を考えたらUWPは使いたくないな
まだ動く7とXPのPCがあるからな
- 106 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 20:02:19.12 ID:xK7OwzcU.net]
- WPFやってないんだが、そもそもXAMLは人間が見る必要のあるものなのか?
VSのデザイナやBlendがダメすぎるのか? フォームでさえ、.Designerの中身なんてほぼ見る事ないのに 人間が生のXAML見たり編集したりしないとダメならそら普及しないなと思うが
- 107 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 20:09:14.52 ID:y+VOBp5j.net]
- XAMLはなにもかもXML(?)で記述できるようにしようとして失敗してる感じ
レイアウトだけにしとけばいいのに
- 108 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 20:09:22.06 ID:knOh/4SR.net]
- データバインディングが遅いとかいって大量データをなんの工夫もなく描画する画面を引き合いに出す人ってたまにいるけどあれって悪意があってやってるの?
- 109 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 21:24:36.59 ID:WmFTPhhE.net]
- 普通、設定ファイルを、人が直接いじったりしない
Godot(ゴドー)などのゲームエンジンでは、IDEの右側にある、 インスペクタービューで、プロパティなど設定する オブジェクト同士の衝突判定・イベント通知なども、同じ
- 110 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 21:25:12.33 ID:TlbuxVnv.net]
- どこぞのフレームワークで「人間にXMLを書かせるなんて虐待です」って書いてるのがあったけど
ほんとその通り
- 111 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 23:41:49.58 ID:7n7DDFeG.net]
- つうかここってC#+Windowsフォームしかやってないやつばかりなの?
XAMLはそもそもWPFだけのもんじゃないんだが。 Silverlightにも使われていたしUWPにも使われてる。 そしてC#だけじゃなくVBにも使われてる。 つまり、言語や
- 112 名前:Nラスライブラリなどから分離できるものは分離しようっつーのがXAMLでしょ。
C#/VBとXAMLの関係はJavaScriptとHTMLの関係と似てる。 XAMLを批判してる奴ってほんとにXAMLを理解してんの? [] - [ここ壊れてます]
- 113 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 00:11:40.20 ID:TlbdJV8L.net]
- 1日で挫折したのにここまで批判できる >>48 はすごい人
- 114 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 00:22:28.24 ID:4pFcdHJl.net]
- JavaScriptとHTMLではなくJavaScriptとJSONの方が近いな
XAMLはただのシリアライズフォーマットの1つでしかない WPFと関係ない普通のオブジェクトもXAMLにシリアライズできる そんでXAMLはJSONと違って型とアセンブリの情報を持つ UIデザインを宣言する手段として考えると書きにくいXAML形式よりシンプルでインテリセンスもよく働くC#コードの方が優れているのは確かだろう しかしそうではなく可視性と可搬性のある普遍的なシリアライズフォーマットとして考えるとXAMLがXMLを採用したのは自然な帰結と言える 可視性のためにはテキストでなければならない 可搬性と普遍性では対抗馬としてJSONがあるがJSONはシンプルすぎて表現力がちょっと物足りない となるとXMLは妥当な選択と言っていい 新しい時代に乗り遅れてXMLにしたわけでもないし虐待目的でXMLにしたわけでもない XAMLの目的に合致するフォーマットではXMLがベストだったというだけの話なんだ
- 115 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 00:29:57.49 ID:ApowNrKS.net]
- wpf使うならelectronでいいや感ある
- 116 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 01:16:39.44 ID:Co+DcSGG.net]
- AndroidStudio使っててもXMLは出来るだけいじりたくないw
- 117 名前:デフォルトの名無しさん [2016/11/10(木) 01:52:09.10 ID:aHkFnxeg.net]
- >102
ん? それは考え方に矛盾があるだろ。UIを切り離すのが目的
- 118 名前:ネら、切り口がシンプルで
綺麗なほうがいい。 例えばスクロールバーと連動して値を表示する場合なんてUI内でまとめて片づけて しまったほうがいい。 ほしいの値だけで、処理側からしたらくだらないイベントなんて見えないほうがいい。 そっちでまとめてやってほしい。 [] - [ここ壊れてます]
- 119 名前:デフォルトの名無しさん [2016/11/10(木) 01:52:28.80 ID:aHkFnxeg.net]
- >XAMLを批判してる奴ってほんとにXAMLを理解してんの?
理解できないなから文句を言ってるんだよ。機械が簡単に理解できるからって 人間にそれを押しつけるのは間違い。 XAMLってのは単なるテキスト文書じゃない。プログラム全体から複雑なUIを切り離して 表現するという目的がある。複雑なUIは手打ちで入力するようなものじゃない。 UI={動作、表現、パラメータ、、、、}+窓口 プログラム=>窓口 UIの窓口さんにいえば{、、、}なかはわからなくても大体処理できる。そういう関係 なわけよ。窓口が美人でテキパキしてないとダメだろ。 時々あるんだが、大企業の開発部に電話してるのに田舎のおばちゃんみたいなのが 窓口で 「はあ、田中さんは今日はおらんよ、どっかに出張するからって鞄を下げて出て行った よ」 みたいな感じな。 XAMLの美人の窓口さんはどこ? ねえ
- 120 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 02:08:02.40 ID:CCFq8Qep.net]
- >>111
批判って言うより、ほとんどいちゃもんだけどな。
- 121 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 02:16:50.13 ID:lTw5QLQW.net]
- 長文マンは無駄に下手な比喩ばっか使って文意がわかりづらいな
- 122 名前:デフォルトの名無しさん [2016/11/10(木) 02:20:15.15 ID:aHkFnxeg.net]
- じゃあ具体的に書いたろか
textBox1.Text = "Hello, World!" これでいいのに public class Data { public string TextHelloWorld { get { return "Hello, World!"; } } } example.xaml <TextBox Text="{Binding Path=TextHelloWorld}" /> これだもんな。W XAMLがデータを取りに行ってくれる。一見便利だが、いちいち細かい指示を出して 説明してやらんと分からんやつだから、教えるほうが手間。自分でHello!!て 書いたほうがなんぼかまし。 あれだ、パラダイムシフトだなんだって言ってるが、シフトダウンだよな。
- 123 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 02:26:27.64 ID:wdbpo9Rt.net]
- それXAML側でName="textBox1"と定義してやれば、this.textBox1.Text = "Hello, World!"で済むだろ
- 124 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 02:30:19.81 ID:YdauEkQ9.net]
- WPFとFormを同じXAMLから生成出来ればもっと使い道もあるんだけどな
|

|