X



WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part22
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2017/12/13(水) 23:35:47.18ID:muTUiD7C
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/
0082デフォルトの名無しさん
垢版 |
2017/12/29(金) 12:22:26.30ID:lbM9I2z0
作れないやつが、ほぼ言いがかりで作れるやつにマウンティングするとか笑えるねw
webがアニメしまくりなのに、もしかするとjavascript切るんだろうか?
0083デフォルトの名無しさん
垢版 |
2017/12/29(金) 13:39:19.10ID:aamMaNHt
よく知らないけど、iPhoneの電卓がバカなアニメーションのせいでまともに使えなかったことは知ってます
0084デフォルトの名無しさん
垢版 |
2017/12/29(金) 14:48:11.01ID:WAsOoLBK
操作性を損なわない程度のものならあっていいんじゃないかい。

画面に変化のあったところを気づかせるためや、マウスオーバー時になにかできることしめしたりや、ナビゲーション時に前のページと関連のある項目をわかりやすくするためとか。

すごくアプリに慣れた人にとってはいらないかもだけど、そうでない人にとって気づきやすくさせるために使えると思う。

エロ広告みたいなうざいやつだけではないから、適切に使えばいいだけの話。そして、WPFには組み込みのアニメーション機能があって、そういうのが無いプラットフォームよりも楽に作れるってだけじゃん。

なんで言い争ってるの?
0085デフォルトの名無しさん
垢版 |
2017/12/29(金) 16:23:15.23ID:EUKc8TpD
組み込みのアニメーションが憎くてしょうがない
WPFにメリットがあってはならない
0087デフォルトの名無しさん
垢版 |
2017/12/29(金) 18:52:00.48ID:ZR/YTuxZ
そんなに楽なのか
俺はトランジションが難しすぎてドハマりしてるけどな
アーティファクトを発掘したはいいが使い方がわからない感じ
0088デフォルトの名無しさん
垢版 |
2017/12/31(日) 13:53:48.10ID:RxjWIgpR
操作の遅延動座でしかないアニメーション装飾で喜ぶなんて小学生低学年までとマカーだけだろ。
0091デフォルトの名無しさん
垢版 |
2018/01/02(火) 16:20:31.95ID:7ebLCd4s
正月ということもあって勢いでスライドショーするソフト作ってみたが
アニメーションが重いというのはないね、軽快で快適
どちらかというとダウンロードの仕組みが入ると遅い
上手いこと先読みしたりキャッシュしとかないと無理あるね
0092デフォルトの名無しさん
垢版 |
2018/01/02(火) 17:08:51.36ID:8YoziARP
本気で言ってるなら頭の病気。
0094デフォルトの名無しさん
垢版 |
2018/01/03(水) 14:34:25.24ID:YeHuAKNh
WPFむずいわー
今日はTreeViewをやった
けどTreeViewってWinFormsでもむずいんだよな
むしろFormsのほうがむずいまである
はあ〜しんど
0096デフォルトの名無しさん
垢版 |
2018/01/04(木) 17:38:25.71ID:/K0pbaw4
ComboBoxも結構面倒だと思うよ、TreeViewより頻出だと思うし
文字に色つけたりアイコン画像入れたり
0097デフォルトの名無しさん
垢版 |
2018/01/05(金) 15:18:52.33ID:e8K0PkEg
このスレまだあったのか。しかも伸びてる。相変わらず普及しない、ゴミという話題ばかり。
0100デフォルトの名無しさん
垢版 |
2018/01/05(金) 17:55:31.44ID:LElVOghW
WPFはシステムであってフレームワークは自分で構築するか、既存のフレームワークを導入する必要がある
以前からWPFがむずかしいと言われる理由の一つがこの導入コスト学習コストの高さ
0102デフォルトの名無しさん
垢版 |
2018/01/05(金) 23:13:14.07ID:rd3AiD2r
VisualStudio本体もWPFで作られてるというよりWPFを描画と入力に使った独自フレームワークだからね
次のVSは本体にもElectronが入ってくるだろうけど
0104デフォルトの名無しさん
垢版 |
2018/01/06(土) 11:56:43.29ID:A/n+HHYo
VisualStudioのIDEってサードパーティー製のコントロールを使ってるって以前聞いたけど
本当なのか?
0106デフォルトの名無しさん
垢版 |
2018/01/07(日) 00:22:24.64ID:Njbpmjhm
MVVMの本質ってModel View ViewModelに分けることであって、
データバインド機能がなくてViewとViewModelを手動で結びつけててもMVVMです?

手動でやるとMVVM以外に結びつけるクラス(コード)が必要ですけど。
0108デフォルトの名無しさん
垢版 |
2018/01/07(日) 00:47:17.35ID:X58Odkk6
>>106
MVVMはバインディングを効果的に利用するためのパターンなので、本来はバインディングを使わないならMVVMとは呼ばない
手動でやるのはMVVMの基になったMVPとかPassive Viewっていうパターンがある
0109デフォルトの名無しさん
垢版 |
2018/01/07(日) 01:06:19.42ID:Njbpmjhm
>手動でやるのはMVVMの基になったMVPとかPassive Viewっていうパターンがある
WPF発祥の地ということ詳しい人がたくさんいるのはここだと思って
でここで質問したんですが、実際はWPFは関係なくてJavaScriptのWebアプリなんですよね。
で、実際、クラスを設計しようとして、モデルクラスつくって、次にビューモデルクラス作ってと
やってビューのフレームワークは実際React使うですんが、Reactはデータの流れは1方向で
ビューで発生したアクションは手動でビューモデルのメソッドを呼ぶように作ろうとしています。

で、責務的にはMVVMっぽくわけてるんですが、これMVVMって呼んでいいのかなとふと疑問に思ったもので・・
0110デフォルトの名無しさん
垢版 |
2018/01/07(日) 01:08:19.56ID:Njbpmjhm
MVPとかPassive Viewとか前にチラッと言葉だけは覚えたんですが、調べてみます。
0112デフォルトの名無しさん
垢版 |
2018/01/07(日) 01:14:52.39ID:MTMRs8S5
reactならfluxでしょ
少なくともビューとC/P/VMを双方向に同期させないのはデータフロー的にもMVVMとは根本的に異なるよ
0113デフォルトの名無しさん
垢版 |
2018/01/07(日) 01:19:11.90ID:Njbpmjhm
fluxというかreduxはややこして、今mobx使おうと思ってます。
>ビューとC/P/VMを双方向に同期させない
だからこれを手動で双方向に同期させようとしてるんです。
0114デフォルトの名無しさん
垢版 |
2018/01/07(日) 01:24:56.12ID:Njbpmjhm
>MVVMはバインディングを効果的に利用するためのパターンなので、本来はバインディングを使わないならMVVMとは呼ばない
つか、仮にそうだとすると、バインデイングの機能を単に誰が用意するかの話問題になっちゃういますよね??

自分で手動で用意するか、標準で用意されてるか誰か他の人がバインディングライブラリを作ってそれを利用するかの・・

それでMMVMと呼ぶか呼ばないかが決まっちゃう。
うーん。
0116デフォルトの名無しさん
垢版 |
2018/01/07(日) 01:43:46.29ID:Njbpmjhm
https://qiita.com/takahirom/items/597c48ece57b4623cdee
ちょっとPassive Viewについて見てみました。おっしゃる通り本質的にはMVVPとデータフローは
同じでビューと(ビューモデルまたはプレゼンター)間がデータバインディングされてるか
されてないかの違いっぽいですね。

そうなると自分のはMVPかな?
クラス名の末尾をViewModelではなくPresenterにしとけばいいかなw
0117デフォルトの名無しさん
垢版 |
2018/01/07(日) 01:44:49.37ID:Njbpmjhm
>おっしゃる通り本質的にはMVPとMVVMはデータフロー
に修正します。
誤字がひどくてすみません。
0119デフォルトの名無しさん
垢版 |
2018/01/10(水) 00:23:13.75ID:7PnHOZyv
今日はComboBoxをちょっとだけ勉強したで
ワイWinFormsではデータセットからポトペタしてたんやけど同じようにできるっぽいんかこれ?助かるわ。
せやけど表示のカスタマイズ方法が馴染みなさすぎてオッサンついていかれへんで
0121デフォルトの名無しさん
垢版 |
2018/01/17(水) 21:33:57.00ID:I1fM/7SY
データソースからポトペタしたデータグリッドのコンボボックスそのままやと使いもんにならんやんけ
これだけで1週間かかったわ
あったまっがパーン
0124デフォルトの名無しさん
垢版 |
2018/01/22(月) 03:47:03.95ID:xAzFKy/K
登場しからずっと話題は、普及はまだ? 馬鹿には使えない!! のループだったな。
0126デフォルトの名無しさん
垢版 |
2018/01/24(水) 20:03:07.49ID:D4W5cGwF
しかしWindows用のデスクトップアプリを作るとなったとき、現実的な選択肢はこれしかなくないか?
UWPは10用だし、マルチプラットフォームのあれこれはまだ発展途上で、
結局シングルソースじゃなかったり容量が馬鹿でかくなったりするし
0128デフォルトの名無しさん
垢版 |
2018/01/24(水) 21:34:26.26ID:D4W5cGwF
>>127
容量がおかしいのそれだよ
Electron製で50MB以下のパッケージ見たことない
インスコしたら200MB超えましたなんてのもザラ
ついでにメモリも大食い
0131デフォルトの名無しさん
垢版 |
2018/01/24(水) 23:39:03.95ID:Sh5xRyhH
>>130
ただ、Win10その他の制限が問題ない場合はUWPが良いよ
特に起動が10倍単位で早いってのがね
コンパイルは100倍単位で遅いけどね
0132デフォルトの名無しさん
垢版 |
2018/01/24(水) 23:58:25.60ID:BFkGLEDk
>その他の制限が問題ない場合はUWPが良いよ

そりゃ、マイナス条件がないならプラスしか残らんのは当たり前だわなw
同様に、WPFの制限が問題ないならWPFが良いし、WinFormsの制限が問題ないならWinFormsが良い。
0133デフォルトの名無しさん
垢版 |
2018/01/25(木) 00:14:23.53ID:AmkE5KAD
>>132
Fornsのアドバンテージは人足を集めやすいことで、wpfは特別な制約はなくて強いて言えばGridViewなどが遅いことぐらい
UWPは逆汗が難しいことやパフォーマンス。それとtoolkitが標準で用意されていること

それぞれ使い分け出来たら良いけど、人足集めるのが大変だわなwpfとuwpは
0135デフォルトの名無しさん
垢版 |
2018/01/25(木) 14:17:39.85ID:MoV9FXN0
wpfのネイティブコンパイルが出来れば全て解決なんだがなぁ
進んでるのかな
0136デフォルトの名無しさん
垢版 |
2018/01/25(木) 20:13:15.97ID:8k7FgHok
せっかくXAML覚えたのに来月からJavaScriptの仕事になってもうたわ
けどワイMS製品で育ったしいつかまた会うやろ。じゃあの・・・
0137デフォルトの名無しさん
垢版 |
2018/01/25(木) 20:22:48.19ID:bbltRTAq
コロコロと違う言語やプラットフォームに技術者をぶち込む企業はさっさと転職したほうがいい。
0140デフォルトの名無しさん
垢版 |
2018/01/25(木) 23:38:00.69ID:8MUKcewe
俺は45過ぎてからC++とGPGPU始めて、50近くになってTypeScriptとSPAやってるとこだわ。
0143デフォルトの名無しさん
垢版 |
2018/01/26(金) 10:05:17.61ID:ziKX7xRI
>>142
地頭とプログラミング適性次第
0144デフォルトの名無しさん
垢版 |
2018/01/26(金) 10:34:39.91ID:fiAB4bjj
c++の文法ルール自体はそんなに難しくない
自動でメモリ解放してくれるようにもなったし
c++は生まれ変わった

でもライブラリなどがレガシーの塊なので非常に地獄
0146デフォルトの名無しさん
垢版 |
2018/01/26(金) 19:02:43.59ID:m10/oqmt
C#はすっと頭に入ったけど、C++はなかなか入らないですね
特にMFCというのが昔から苦手で今日まで来てしまった
0149デフォルトの名無しさん
垢版 |
2018/02/03(土) 10:46:57.42ID:ZFgrbY8z
次々からフレームワークが出て習得するのが面倒だよな。PGはそんなに暇じゃないっての。
フレームワークを使い捨てにするMSはアホ。wtfだってまだ使ってんだよ。
というか.netの売りは言語自由だったはずなのにwpfではC++を排除してるのかよ。ほんと嘘つきだな、MSは。
0150デフォルトの名無しさん
垢版 |
2018/02/03(土) 12:23:54.85ID:4JyGp2En
.NETのウリは言語自由って初めて聞いたが
いくつかの言語から選べるってのはよく聞くけど
0154デフォルトの名無しさん
垢版 |
2018/02/12(月) 11:41:38.41ID:fQpoXnex
Windows10,VS2017でWPFでWindowChromeちゃんを使って、
Windowのスタイルをカスタマイズしようとしてるんだけど、
タイトルバー高さをSystemParameters.WindowCaptionHeightで取得すると
23が返ってくるんよ。で、これ実際にPhotoshopとかで測定すると、31ぐらいなんだけど、
これって、もしかして72dpiと96dpiの違いで、96/72=1.333...をこの23に掛けてるんかな?
例えば、電卓の右上の[X]ボタンはH:30,W:48なんだけど、
SystemParameters.WindowCaptionButtonWidth=36
SystemParameters.WindowCaptionButtonHeight=22
36 x 1.333...= 47.999999
22 x 1.333...= 29.333333

こういう資料って、公式のどっかに説明あるんでしょうか?
0155デフォルトの名無しさん
垢版 |
2018/02/12(月) 15:00:33.06ID:3jR6du7D
>>151
わたしもきぼんぬ
0157デフォルトの名無しさん
垢版 |
2018/02/17(土) 11:24:01.09ID:hzHa4Ili
>>156
どうもThemeの方にヒントがあるようね。
Firefoxのソースでも、Themeからひろってきてるみたい。
0158デフォルトの名無しさん
垢版 |
2018/03/13(火) 21:45:11.61ID:QSraSytV
デザイナ画面で、現在作業しているプロジェクトファイルのパスが取得したいのですが、方法ありますでしょうか?
AssemblyやGetCurrentDirectoryを使ってもXDesProcのパスが返ってきて取得できません
0162デフォルトの名無しさん
垢版 |
2018/04/09(月) 17:25:00.82ID:90D6Yu/l
datagridにおいて、以下のようなキーボード操作はXAMLだけで記述できますでしょうか?

・セルのtab移動を止める
・enterキーで次の行に移動するのを止める(矢印キーのみで移動)
0163デフォルトの名無しさん
垢版 |
2018/04/09(月) 18:08:40.11ID:2gnvm26g
DataGridは未完成糞品質のまま開発打ち切られて放置されたままのゴミだから使っちゃダメ
WinFormsのをホストして使うかサードのを買うかListViewでスクラッチするかWPFを捨てよう
0164デフォルトの名無しさん
垢版 |
2018/04/09(月) 18:25:22.70ID:lwmVdEfV
>>163
行数少なければ十分使えるから、数百行表示させないようにプログラムすればいいだけですね
0165デフォルトの名無しさん
垢版 |
2018/04/15(日) 08:53:11.02ID:W7Pttv5/
2ヶ月ちょいjs/javaやったけど
Eclipseはポトペタできへんから面倒くさすぎる
いやワイが知らんだけかもしらんけど
しかしIDE落ちまくるし同期とらんと時々嘘くさい表示しよるし何なんやこれ
隣の席のやつ(javaマン)はWPFやらされててワカランワカランいうてるし
ちゃんと履歴書読んどんのかここの会社逆やろw
0166デフォルトの名無しさん
垢版 |
2018/04/15(日) 09:48:51.28ID:GbdfDf+/
そう思うんなら便所に落書きするより上司に相談しろ
喜んで入れ替えてくれるだろ
その程度の交渉や調整もできないカスなら何やらせたってダメだし、会社もお前に何も期待しないよ
0169デフォルトの名無しさん
垢版 |
2018/04/15(日) 13:26:36.78ID:eVQUY7wr
嘘みたいな話だけどeclipse大好きっこているんだぞ

一個も共感できないeclipse自慢話してくるよ
0170デフォルトの名無しさん
垢版 |
2018/04/15(日) 13:38:15.45ID:5EOPJhuZ
eclipseはモダンemacs的な開発者のオープンプラットフォームとして、
今でいうVSCodeに近いポジションを占めてたから、そういう面ではわりと根強いファンはいた
今ではJavaはIntelliJに取られemacs的な用途はVSCodeに取られ完全にオワコン
0172デフォルトの名無しさん
垢版 |
2018/04/24(火) 15:05:21.91ID:bXlVc9iu
GridSplitter を挟んだUIを作成中です

<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
...

上記のように Columnの幅を1:3などの割合のまま、
Properties.Settings のメンバに Bind するにはどのようにしたらよいですか?

下記のように書いてみましたが、いくつか問題にぶち当たりました
<ColumnDefinition Width="{Binding Source={x:Static p:Settings.Default}, Path=ColumnSplitterSize, Mode=TwoWay}"/>

・Column の幅を変更して、Settings.Default.Save() しても Settings に反映されない(Settings の他の値の変更は確認済み)
・Settings の要素の型に GridLength を指定した場合、3* などを指定できない(数値かアスタリスクのみ)
・1:3 などの割合を指定したまま、サイズを保存、復元する方法があるのか不明

グリッド幅の保存は基本だと思うので簡易な方法があると思うのですが……
0174デフォルトの名無しさん
垢版 |
2018/04/28(土) 10:07:15.37ID:j2qq32KP
>>173
はい、GridLength 構造体です
Settings の要素の型を GridLength にしても反映されないので質問しました

何か基本的なことを見落としてるような気がします
0176デフォルトの名無しさん
垢版 |
2018/05/05(土) 08:55:29.93ID:GHjIUW8T
>>169
マルチプラットフォーム的なのが少なかったんで
選択肢がそこに居ちゃっていたってことじゃないんかな?
0177デフォルトの名無しさん
垢版 |
2018/05/05(土) 09:01:31.10ID:GHjIUW8T
>>172
1:3なのに、なんでAUTOが入ってるの?
0178デフォルトの名無しさん
垢版 |
2018/05/05(土) 09:04:56.56ID:nVs07IkD
>>177
GridSplitter
0179172
垢版 |
2018/05/05(土) 11:44:18.82ID:+6BF6Qlx
試行錯誤しつつ、あれから冷却期間を入れて試したところ 2番目の問題は設定できるようになりました

>>175
> GridLength GridUnitType.Starでぐぐる
「・Settings の要素の型に GridLength を指定した場合、3* などを指定できない」
ことへのコンストラクタを使ってコードを書くべきというアドバイスかと思います

本当に申し訳無いのですが当方の思い込みが含まれていました
実際に試した値は「1*」で、書き込むと「*」になるため、誤認していました

正しく書き直すと、
プロジェクトの「プロパティ」→「設定」→要素の「型」で
PresentationFramework の System.Windows.GridLength を指定した
ケースでの「値」列の内容について、XAMLで指定できる文字列「1*」を指定できず、
書き込むと「*」になるということです
Settings.Designer.cs での DefaultSettingValueAttribute の引数の文字列です

試しに「3*」を入れたところ、3:3(=1:1)に指定できましたので Settings で初期化はうまくできていましたので、
2番目の問題は解決しました
(「1*」は値として同じ意味の文字列「*」に自動で変換されるみたいです)
XAMLは下記のとおり、
<ColumnDefinition Width="{Binding Source={x:Static p:Settings.Default}, Path=ColumnSplitterLength}"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="3*"/>

ただ、Settings で指定は可能なのですが、Grid.Width プロパティは実際のサイズに連動しておらず、
Mode=TwoWay を追加しても、肝心の1番目、2番目が解決できませんでした
実際のサイズに連動するよう少しずつ調査する予定です
(ActualWidth:double を読み取って、GridLengthのコンストラクタを使って Settingsに保存する?)

>>178
はい、GridSplitter を挟んでGridの列を 1:3 にするXAMLの書き方になってます
0180172
垢版 |
2018/05/05(土) 11:48:02.94ID:+6BF6Qlx
あああ、typo です
「ただ、Settings で指定は可能なのですが、Grid.Width プロパティは実際のサイズに連動しておらず〜」
ColumnDefinition.Width プロパティの間違いです
■ このスレッドは過去ログ倉庫に格納されています

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