16/03/16 07:57:28.84 tj30pZlh.net
Windows Presentation Frameworkについて語るスレ。
前スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part19
スレリンク(tech板)
関連スレ
Windows 10 UWPアプリ開発
スレリンク(tech板)
コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
URLリンク(ideone.com)
2:デフォルトの名無しさん
16/03/16 15:31:34.45 rNMa/DoZ.net
2げっろ。
WPFばかり弄っていると面白いんだけれどなぁ。
FormsのをメンテしたりHTMLを弄っていたりして、
忘れかけてからWPFに戻ると、あれれれれー?
ってなる(´・ω・`)
3:デフォルトの名無しさん
16/03/21 08:35:11.60 LZK+quSR.net
眠い
4:デフォルトの名無しさん
16/03/21 09:30:09.41 HKtB5lHa.net
寝ろ
5:デフォルトの名無しさん
16/03/21 13:15:25.24 Oj1Hxqq+.net
これはきっと、wpfの開発環境が眠くなるほど退屈だということが言いたいのだと思う。
配置可能なコントロールを凸型、L字型とかにしたらどうか。
6:デフォルトの名無しさん
16/03/21 13:54:26.63 Ob/N9SLW.net
テトリスかよ!
ってツッコミでOK?
7:デフォルトの名無しさん
16/03/21 14:47:38.22 b4wXoPlv.net
クリックしようとすると逃げる系で
8:デフォルトの名無しさん
16/03/21 17:40:09.02 ZFYgg5Wq.net
バインドについてあれこれ調べててこのページを見つけたんだけど
URLリンク(qiita.com)
ReactivePropertyを使うとプロパティを定義するだけでPropertyChangedEventArgsやらをいちいち書く必要が無くなるってのは解ったんだけど
それならwpfにName属性つけて直接cs上からプロパティを書き換えるのと結局は同じになる気がするんだけど、何が利点なの?
今はコード上からフォームの値を反映させるだけで、フォーム上に入力された値をプロパティに反映させるという双方向での処理は考えてないけど
双方向のバインドをしないのであればメリットってあんま無かったりする?
上記ページの途中に出てくるこれ
public MainWindow(){
InitializeComponent();
var vm = new ViewModel();
DataContext = vm; // DataContextにViewModelをバインド
vm.Message.Value = "Hello"; // DataContextのプロパティーを更新すると画面に反映
}
DataContextを経由する必要って何・・・?
直接this.Message.Text="hello"ってやるんじゃダメなのと思ってしまう
9:デフォルトの名無しさん
16/03/21 18:05:24.43 b4wXoPlv.net
そもそもフォーム→モデルとしか値を送らないなら
PropertyChangedなんか不要ですよ
PropertyChangedの説明がしたいからわざわざモデル経由してんだろ
お前理解力に乏しすぎ
よく生きてこれたな
10:デフォルトの名無しさん
16/03/21 18:14:15.98 b4wXoPlv.net
悪かった言い過ぎた
11:デフォルトの名無しさん
16/03/21 18:36:47.42 ZFYgg5Wq.net
という事は、双方向に値を送る事が出来るコントロールって結構限られてるよね。テキストボックスのテキストとか、チェックボックスのチェック状態とか。
逆に、ラベルの背景色とか表示・非表示状態みたいにコントロール側からどうしようもないプロパティは積極的にバインドを使って値を更新する度にPropertyChangedを送る必要はあまり無いって事?
12:デフォルトの名無しさん
16/03/21 19:05:23.15 wwpOinJ6.net
そう思うならノーバインディング、ノーMVVMで書けばいいがな。
13:デフォルトの名無しさん
16/03/21 19:08:29.43 wGZ3MPGj.net
Formsみたいなイベントドリブンで書くモデルがWPFでも有名になれば、息を吹き返すと俺は信じてる
業務アプリの連中を如何に引きこむかが大事
14:デフォルトの名無しさん
16/03/21 20:53:27.31 6JHA5k3e.net
>>8
最後のやり方でなんら問題ない。
15:デフォルトの名無しさん
16/03/21 21:01:16.62 wwpOinJ6.net
>>13
いやMicrosoftのサンプル見たらコードビハインドだぞ。
16:デフォルトの名無しさん
16/03/21 22:45:57.52 v8ItZ5me.net
>>13
バインディング?MVVM?何それおいしいの?
ってな状態でWPFを使ってても、全く問題ないしね。
17:デフォルトの名無しさん
16/03/21 23:04:31.96 Ob/N9SLW.net
>>16
ただ、ListBoxはItemsSourceにぶち込めばいいとは言っても
バインディングが判らなければチンプンカンプンでした
使えないわけじゃないけど何が起こっているのか理解できず気持ち悪い
18:デフォルトの名無しさん
16/03/21 23:42:03.57 Qi7IeHBk.net
ListBoxでバインディング使わないならItems.Addでいいと思う
19:デフォルトの名無しさん
16/03/22 00:01:32.49 g51nH/57.net
バグの温床ではないか?
20:デフォルトの名無しさん
16/03/22 21:04:57.90 YRPl9VX5.net
そこまで嫌わなくても…
MVVMじゃなくてもDataContextにVM用意した方が開発しやすかないか?
21:デフォルトの名無しさん
16/03/22 21:43:22.16 e+TK8yQr.net
自動テストしない人には伝わらないよ
22:デフォルトの名無しさん
16/03/22 22:00:15.93 UU9O+pzp.net
MVVMが快適なことはここにいる人は分かっているけど
アレの複雑さでwpfが捨てられるとしたら悲しいってお話です
23:デフォルトの名無しさん
16/03/22 22:06:16.32 BNkHKMpg.net
快適なんですか?
24:デフォルトの名無しさん
16/03/22 22:37:10.69 vWbCsYUq.net
MVVM使わなくても快適だよ
25:デフォルトの名無しさん
16/03/22 23:11:03.61 UU9O+pzp.net
>>23
とりあえずソースがすっきりするから精神衛生上好ましい
26:デフォルトの名無しさん
16/03/22 23:51:54.18 FPulOekY.net
WPFが複雑だからMVVMという抽象化が必要なのであり、
MVVMがメリットなどと抜かすのは本末転倒である
27:デフォルトの名無しさん
16/03/22 23:59:04.73 XZnF6fHK.net
MVVMはどこで使っても便利ですがな
どこで使っても便利なものは存在がメリットに決まってるではないですか
28:デフォルトの名無しさん
16/03/23 00:08:45.00 aPO3Xwoc.net
Behaviorsが必要になるとややこしくて困る。
29:デフォルトの名無しさん
16/03/23 12:43:46.96 5650verW.net
javascriptのMVVMフレームワークは喜んで使うが
WPFは頼まれても金積まれても嫌だ
30:デフォルトの名無しさん
16/03/31 12:19:34.27 7IRyPeEw.net
TextBoxとComboBoxのフォントサイズを高さに合わせたいのですがどうしたらいいですか?
31:デフォルトの名無しさん
16/03/31 14:19:03.97 lScmALHQ.net
元の大きさが違うから
1.BorderでTextBox囲って、TexBoxのBorderを見えなくする
2.TextBoxのVerticalAriment=centerにする
3.Gridなどで調整
こんなところじゃね?
32:デフォルトの名無しさん
16/03/31 14:58:15.97 7IRyPeEw.net
GridにTextBoxを置いていますが、テキストボックスのサイズが変わってもフォントサイズは変わりません
ButtonならButton>ViewBox>Textblock>文字列で解決できたのですが・・・
33:デフォルトの名無しさん
16/03/31 15:41:21.43 rEcwjniS.net
自身のActualHeightをFontSizeにバインディングするとか。
Converterで値調整する必要はあると思うけど。
34:デフォルトの名無しさん
16/03/31 16:28:20.63 7IRyPeEw.net
Converter使っても名前空間に存在しませんってエラー出て出来ません・・・
オートコンプリートには自分の作ったクラスが出てくるんですが・・・
35:デフォルトの名無しさん
16/03/31 16:46:28.52 7IRyPeEw.net
何故か分からないけど直りました・・・
36:デフォルトの名無しさん
16/03/31 16:49:56.72 IEw+mgNm.net
VS2015はときどきおかしくなるよね
37:デフォルトの名無しさん
16/03/31 16:58:25.39 7IRyPeEw.net
VS2015の問題ですかね?
38:デフォルトの名無しさん
16/03/31 18:01:34.28 IEw+mgNm.net
あなたの場合がそうであるかは知らない(見てない)けれどオートコンプリート周りで不具合が発生することは経験している
そして立ち上げなおしたらなおってる
39:デフォルトの名無しさん
16/04/02 09:14:20.25 +H7iCAoB.net
.NET Framework 4.6.2 Preview のリリース
URLリンク(blogs.msdn.microsoft.com)
ソフト キーボードのサポートにより、Windows 10 で WPF のスタイラス/タッチ入力を無効化しなくても
WPF アプリケーションでタッチ キーボードが自動的に起動、破棄されるようになりました。
4.6.2 より前のバージョンでは、WPF アプリケーションでのタッチ キーボードの起動や破棄が
明示的にはサポートされておらず、WPF のスタイラス/タッチ入力を無効化する必要があります。
これは、Windows 8 以降のタッチ キーボードが
アプリケーション内のフォーカスをトラックする方法が変更されたことによるものです。
WPF アプリケーションはシステムの DPI を検知できるため、
アプリケーションがレンダリングされるモニターの DPI に応じて、
Windows によりアプリケーションの画面サイズが変更されます。
このため、鮮明さが低下したりテキストがぼやけたりすることがあります。
4.6.2 より前のバージョンでは、WPF アプリケーションでモニターごとに DPI を検知するには
高度なネイティブ コードが必要でした。
最近は高 DPI 環境やハイブリッド DPI 環境がエコシステムで普及してきたため、
これに対応して WPF アプリケーションで Per-Monitor DPI がサポートされるようになりました。
WPF アプリケーションで Per-Monitor DPI を有効にする方法については、
サンプルおよび開発者向けガイドを参照してください。
40:デフォルトの名無しさん
16/04/02 12:20:28.12 FAwdIKpT.net
そんなものよりいい加減にフォルダ選択ダイアログ実装しろよ
なんでここまで頑なに実装しないのか?
10年だぞ10年?
41:デフォルトの名無しさん
16/04/02 12:30:55.28 hp/cyjqX.net
こっちのほうが重要
デスクトップ アプリを UWP に変換 (Project Centennial)
既存の Windows デスクトップ アプリ (WPF、Windows Forms を含む) を、ユニバーサル Windows プラットフォーム (UWP) に変換する機能 (英語) が提供されました。
42:デフォルトの名無しさん
16/04/02 14:02:07.42 9Mhqjl0D.net
やっとPer-Monitor DPIが実装されたか
43:デフォルトの名無しさん
16/04/02 23:44:16.61 qKlqTMqs.net
>>40
前提が間違っている
WPFはWinFormsと併用するもの
44:デフォルトの名無しさん
16/04/02 23:48:43.21 zBsov1ne.net
>>43
実用上はそれもありだが、MessageBoxはちゃんと対応してるでしょ
それはそうとWindows7ApiCodepackのダイアログだけでも入れろと思いませんか?
45:デフォルトの名無しさん
16/04/03 18:28:17.23 eU0OsDcG.net
>>43
いつのまにそういう流れになったのか?
winfomsをぼろくそに言ってたのにな
ニートのくせに両親にじじいばばあ、老害とぼろくそに言いながらただ飯食ってるようなものじゃない?
46:デフォルトの名無しさん
16/04/04 01:52:12.18 3M3YC+8j.net
UWPでは画像ファイル名にxxx.scale-180.pngとかつけると
DPIに応じて自動で切り替えてくれますが、
WPFにはこれに相当する機能はありますか?
47:デフォルトの名無しさん
16/04/04 03:15:40.75 aLjGyuE/.net
ないよ
48:デフォルトの名無しさん
16/04/04 03:22:45.83 2eeZhl1u.net
厳しい現実の到来
49:デフォルトの名無しさん
16/04/04 03:48:38.42 3M3YC+8j.net
ありがとうございました。
50:デフォルトの名無しさん
16/04/04 18:09:05.43 3f5oJ1nB.net
WPFはおすすめですか?
51:デフォルトの名無しさん
16/04/04 18:09:22.84 b1Urfdwz.net
YES
52:デフォルトの名無しさん
16/04/04 19:14:02.52 lUR13ZZt.net
やめとけ
今からやるならASP.NET MVC
53:デフォルトの名無しさん
16/04/04 21:32:20.87 ONo6jj6s.net
用途が違うものを同列に語られてもな。
54:デフォルトの名無しさん
16/04/04 21:51:39.31 2eeZhl1u.net
悲しい世界
55:デフォルトの名無しさん
16/04/05 04:59:00.92 fV+iiYuy.net
用途は人月いくらで金を稼ぐことだな
56:デフォルトの名無しさん
16/04/05 09:32:54.47 0p1/0bFp.net
ああ~っと
WPFは仕事がないから用途は趣味ですもんね
57:デフォルトの名無しさん
16/04/06 22:02:07.99 6gPuUqWy.net
配布後にアップデートさせたい場合はってどうしてる?
アンインストールさせて、最新のexeを再インストールさせる?
58:デフォルトの名無しさん
16/04/06 22:30:48.04 J5zl/jID.net
解凍して全部上書きしてね(はーと)
59:デフォルトの名無しさん
16/04/07 10:05:13.25 QF7PeTIh.net
clickonceという仕組みがあるんやで
60:デフォルトの名無しさん
16/04/07 10:22:33.46 RIDbA16L.net
ClickOnceと聞く度に
「管理権限を無視してインストールできてしまうのは好ましくない」
って騒いだアホを思い出すので止めていただきたい
61:デフォルトの名無しさん
16/04/07 12:19:51.39 9xI4Whcy.net
それってセキュリティがお煩いんでしょ?
62:デフォルトの名無しさん
16/04/07 18:34:36.77 WuhhdB+c.net
IsEnabledプロパティをバインドしても、プロパティのgetが呼び出されません
変更イベントは発生させています
63:デフォルトの名無しさん
16/04/07 18:38:32.22 WuhhdB+c.net
自己解決しました
64:デフォルトの名無しさん
16/04/09 02:52:12.30 GhCX/kWB.net
TabControlでContentTemplateでListViewとかを設定すると
全部のタブページで1つのListviewを使いまわしてる感じになるんですが
これをTabItem度にする方法ってないでしょうか?
65:デフォルトの名無しさん
16/04/09 11:30:19.12 1qpNdq6N.net
TabItem毎にTemplateを設定してあげたらいい
66:デフォルトの名無しさん
16/04/09 11:44:08.14 mgVSaoeW.net
ContentTemplate弄るなら、直接ListViewは書かず現在ListViewが書いてあるところにContentPresenterを書いておき
ListBoxはContentに書くのが筋じゃないかな
67:デフォルトの名無しさん
16/04/11 19:11:05.05 te0JtNtM.net
マウスホイールをどっちに転がしてもスクロールが下に行ったり
移動値が変(数ページ分位飛ぶ)なんですが、どの辺に原因があるとこんな挙動になるんですかね?
68:デフォルトの名無しさん
16/04/11 20:06:23.42 dGOrpD9s.net
マウスが原因
69:デフォルトの名無しさん
16/04/11 20:15:06.69 d1aqF31N.net
マウスのホイールのロータリーエンコーダーが壊れているんだろうね
70:デフォルトの名無しさん
16/04/11 20:19:21.03 Il1nOA/K.net
イエローハットでホイール買えや
71:デフォルトの名無しさん
16/04/12 05:07:22.79 UFGwOhXr.net
他のコントロールだと問題無いようなのでマウスが原因では内容です。
ListviewのGridView使う時だけおかしいんですよね
他の表示方法ではおかしくなりませんでした。
おまけにウィンドウのサイズを変えるとスクロールバーのスクロール位置が変わったりするのが謎すぎる
72:デフォルトの名無しさん
16/04/12 07:05:40.10 wMDrKH2b.net
以前似たような症状になったことあるけどその時は
ListViewのScrollViewer.CanContentScrollをTrueにしたのが原因だった
73:デフォルトの名無しさん
16/04/15 03:12:53.97 VbbC8Uk5.net
x:Bindがない言われるんだがなんでや?
74:デフォルトの名無しさん
16/04/15 04:41:11.53 VbbC8Uk5.net
アプデしたら使えたわ
てかUwpだった
75:デフォルトの名無しさん
16/04/19 18:57:23.89 P7Tju0N+.net
ユーザーコントロールを作ったんですが、普通に実行出来てもデザイナで「TestBrush" が認識されないか、アクセスできません。」
とエラーが出てそのコントロールを置いたウィンドウが表示されません。
クラスライブラリにしてプロジェクトを分けてるんですが、なんか設定しないとダメなんでしょうか?
76:デフォルトの名無しさん
16/04/19 19:44:35.99 lPFKUnKE.net
>>75
エラーメッセージ通りだろとしか言えない