WPF(XAML, XBAP, .NET4.5)GUIプログラミング Part17

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
ユーザーインターフェースシステム、Windows Presentation Frameworkについて微に入り語るスレ。

Visual Studio 2013 & 2012 & 2010
http://www.microsoft.com/visualstudio/jpn/downloads
Microsoft .NET Framework 4 (Web インストーラー)
http://www.microsoft.com/downloads/details.aspx?familyid=9CFB2D51-5FF4-4491-B0E5-B386F32C0992&displaylang=ja
Microsoft .NET Framework 4 (スタンドアロンインストーラー)
http://www.microsoft.com/downloads/details.aspx?familyid=0A391ABD-25C1-4FC0-919F-B21F31AB88B7&displaylang=ja
Microsoft .NET Framework 4.5
http://msdn.microsoft.com/ja-jp/library/vstudio/5a4x27ek.aspx

前スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part16
http://toro.2ch.net/test/read.cgi/tech/1369912326/

関連スレ
Microsoft Silverlight その9
http://toro.2ch.net/test/read.cgi/tech/1321150267/

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
2デフォルトの名無しさん:2013/11/11(月) 19:36:31.77
3デフォルトの名無しさん:2013/11/11(月) 19:50:14.83
>>2はグロ注意な
4デフォルトの名無しさん:2013/11/11(月) 20:11:27.08

君のその報告こそどうでもいい事なんだが
5デフォルトの名無しさん:2013/11/11(月) 20:48:58.04
why?
6デフォルトの名無しさん:2013/11/11(月) 21:46:19.11
立てんなっていってんだろうがカス
7デフォルトの名無しさん:2013/11/11(月) 21:59:58.99
すっかりアンチが居着く様になったなあ
8デフォルトの名無しさん:2013/11/12(火) 01:34:36.30
DataTriggerって定数と一致する時のみなの?
もっと自由な比較がしたいんだけど
9デフォルトの名無しさん:2013/11/12(火) 01:44:11.31
IValueConverterとか使えば自由に比較できるよ
10デフォルトの名無しさん:2013/11/12(火) 02:14:44.95
>>7
程よいアンチはメジャー技術の証し
11デフォルトの名無しさん:2013/11/12(火) 09:59:23.64
超重いデータバインディング処理のGUI反映完了を知る手段ってありますか?
ListBoxカスタマイズしてサムネイル一覧表示してるんだけど
ObservableCollection<BitmapImage>に入れた後
処理が帰ってくるまでフリーズするんだよねぇ
12デフォルトの名無しさん:2013/11/12(火) 11:12:48.30
完了タイミングを知るより処理を軽くする方が正しい気がする。サムネイルなのに画像でかすぎとか更新イベントとびまくりとか何か要因あるんじゃない?
13デフォルトの名無しさん:2013/11/12(火) 11:50:33.28
>>10
初期は誰も居なかったのに、ずいぶんと人が増えたものだ
14デフォルトの名無しさん:2013/11/12(火) 11:55:59.89
>>12
個数が何百もあって、最初はconverter経由でサムネイル化もバインディングでしてたけど、あまりに重いからサムネイル化はスレッドでやってあとからBitmapImageだけバインディングしたけど、結局ListBoxへのItem追加(バインディング)が遅かった
ListBoxにサムネイル入れるのが間違ってるのかな、、、
15デフォルトの名無しさん:2013/11/12(火) 23:22:55.51
>>14
個数を減らした場合の結果はどう?意図せず UI の仮想化を無効にしてない?
http://msdn.microsoft.com/ja-jp/library/cc716879.aspx
16デフォルトの名無しさん:2013/11/12(火) 23:30:48.91
>>11
単に仮想化がかかってないだけの気がする。
ListBoxはデフォルトのままだと仮想化されてなかったような。
17デフォルトの名無しさん:2013/11/12(火) 23:55:40.82
ItemsPanelに何使ってるの?
StackPanelじゃないとVirtualize効かないぞ
WrapPanelとか使ってるならItemSize指定しないと死ねる
18デフォルトの名無しさん:2013/11/12(火) 23:57:12.91
正確にはVirtualizingStackPanel使わないと、だな
19デフォルトの名無しさん:2013/11/13(水) 00:06:06.85
何にせよちょっと情報が足らんな
できればListBoxの部分のXAMLだけ貼ってくれ
20デフォルトの名無しさん:2013/11/13(水) 09:47:03.13
ありがとう!勉強なったよー

<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel ItemWidth="120"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>

ItemsPanelはTemplateでWrapしてました
ノーマルで使う場合は仮想化が標準で利いていて問題がなかったもよう
見た目をWrapPanel風にしたいんだけどVirtualizingWrapPanelってないのか...
21デフォルトの名無しさん:2013/11/13(水) 09:55:56.40
自作か外人の作ったの使うか
22デフォルトの名無しさん:2013/11/13(水) 10:01:26.48
codeproject見つけました、めんどくさそ笑
素直にVirtualizingStackPanel使うしかなさそうですね
23デフォルトの名無しさん:2013/11/13(水) 16:05:32.68
>>16
いや、ListBoxは標準で仮想化ですよ。逆にそれが原因でトラブったから間違いありません
って事で、バインディングされているプロバティーのgetで読み込まれたタイミングでサムネ作ればなんとかなるかも
24デフォルトの名無しさん:2013/11/13(水) 16:51:59.67
4.0以降のDataGridで20行とか行数を固定にしてコントロールの縦幅に合わせて行の高さや
文字の大きさを調整するとか簡単に出来る方法無いかな?
25デフォルトの名無しさん:2013/11/13(水) 19:01:01.76
>>23
> って事で、バインディングされているプロバティーのgetで読み込まれたタイミングでサムネ作ればなんとかなるかも
仮想化が無効になってるんだから、意味ないと思うけどな。

素直にVirtualizingWrapPanel実装したほうがいいんじゃない?

最初は面倒だけど、これが実装できるようになると、
実現できることの幅がぐっと広まるよ。
26デフォルトの名無しさん:2013/11/13(水) 19:04:36.54
こんなもん実装しておけよって思ってしまう
不思議だなあ
27デフォルトの名無しさん:2013/11/13(水) 19:09:13.84
そのうち標準で実装されるかもね。

VirtualizingStackPanelですら
4.5でやっとまともになったって段階なんで
WPFの歩みは皆が思っているより相当遅い。

俺たちのWPFはこれからだ!
28デフォルトの名無しさん:2013/11/13(水) 19:22:44.36
6週ごとのリリースサイクルにしろよ
阿鼻叫喚だぜ
29デフォルトの名無しさん:2013/11/13(水) 19:30:23.60
> 俺たちのWPFはこれからだ!
打ち切り?w
30デフォルトの名無しさん:2013/11/13(水) 20:41:03.10
リスト系とかDataGridとかカラムの高さを変更しても中の文字とかサイズに追従してくれないけど
そういう場合ってどうやったらフィットさせられるのかな。ViewBoxイチイチ仕込むしかない?
31デフォルトの名無しさん:2013/11/13(水) 22:07:54.87
>>25
いや、ListBoxは標準でVirtualizingStackPanelが包括してあって、VirtualizingStackPanel.IsVirtualizing="false"とすると
はじめて仮想化が切られるようだ

BringIntoViewがまともに動かず苦労したが(仮想化が有効だからItemが生成されていないため)仮想化を切ったら普通に動いた
32デフォルトの名無しさん:2013/11/14(木) 21:06:06.79
DataGridにバインドしたDataTableのデータの内容によって、セルの背景色を変えたいんですが、どうすればできるのでしょうか?
33デフォルトの名無しさん:2013/11/14(木) 21:24:03.95
CellStyle作ってDataTrigger使えば行けるんじゃねえの
34デフォルトの名無しさん:2013/11/14(木) 22:31:03.00
Livetの人のページが見られなくなってるけど何なのこれ
35デフォルトの名無しさん:2013/11/15(金) 00:20:12.28
>>34
業務連絡はTwitterでやってください
36デフォルトの名無しさん:2013/11/15(金) 01:02:39.74
どんな業務よ
37デフォルトの名無しさん:2013/11/15(金) 09:15:09.39
フレームワークを使ったこと無いんだけどどれがオススメ?
38デフォルトの名無しさん:2013/11/15(金) 10:13:18.84
自作。割とマジで
39デフォルトの名無しさん:2013/11/15(金) 10:45:40.49
自分の好みに合わせて最終的に自作になるという話は分かるけどさ、それは他のを
触ってみて初めて到達できる境地だと思うんだよね。
まずは基本のPRISM使ってイラっとするところからじゃないかなw
俺も最初悩んで日本人作ってるしとLivetが良さそうと思ったんだけど資料が
なすぎで選定落ちしたw あれはMVVMやWPFわからん人には多分無理だと思う。
40デフォルトの名無しさん:2013/11/15(金) 13:19:01.57
ReactiveUI一択
41デフォルトの名無しさん:2013/11/15(金) 14:07:57.62
え、えむえふしー…
42デフォルトの名無しさん:2013/11/15(金) 16:53:56.83
ダメだ、UserControlが複雑に重なりあうとBindinggroupがまったく機能しなくなる
しゃーないから自分でClone実装して似たような事してるわ
43デフォルトの名無しさん:2013/11/15(金) 19:43:36.25
Xamlの読解性って最悪じゃないですかね?
HTML%2bCSSの方がよっぽどマシなんですが
44デフォルトの名無しさん:2013/11/15(金) 19:46:27.79
>>43
その%2bってなに?
機種依存文字?
45デフォルトの名無しさん:2013/11/15(金) 19:57:02.04
じゃあRIAのHTMLだけ見てレイアウトを想像できるのかと
46デフォルトの名無しさん:2013/11/16(土) 04:07:03.87
LooseXAMLが、HTMLに取って代わる時代とか来て欲しかったなあ
もう無理だろうけれども
47デフォルトの名無しさん:2013/11/16(土) 10:34:05.11
なあにXAMLは既にHTMLの代わりになってるじゃん
IEだけだけど
48デフォルトの名無しさん:2013/11/16(土) 10:36:54.57
所詮専用設計されたものじゃないので無理があるほうが逆に自然
49デフォルトの名無しさん:2013/11/16(土) 15:06:36.39
Bindingの方法が何通りもある理由ってなんなんでしょうか
下々がWPFを理解し辛い理由がこのBindingなんすよね
ひとつこれが正しいですってMSDNで解説してくれてれば迷わないんですが
ケースごとの使い分けとか解説してないですよね
だからググっても人によって行く通りもバラバラの解説で更に迷うみたいな
50デフォルトの名無しさん:2013/11/16(土) 15:16:08.24
何通りもあるってどういうこと?
拡張マークアップのことを何通りもあると表現しているのか?

できれば何通りかサンプルURLでも貼ってくれるといいな
51デフォルトの名無しさん:2013/11/16(土) 15:37:15.99
まあテンプレートバインディングなんかはそうだし、プロパティパスの書き方が
プロパティの型名を入れる書き方とそうでない書き方があったりどか、そういうのはあるね。

あとBindingに限らないけど、WPFってこういうの結構多い気が
http://togetter.com/li/63245

やっぱりWPFもXAMLも筋が悪いよな全体的に
52デフォルトの名無しさん:2013/11/16(土) 15:46:35.47
TypedTableBase<T>はIEnumerableが付いてるからリンク先みたいな状況は滅多に発生しない
53デフォルトの名無しさん:2013/11/16(土) 15:51:55.36
WPFややこしいとか思ってたがインターフェースビルダーの方が意味不だったわ(´・ω・`)
54デフォルトの名無しさん:2013/11/16(土) 15:57:44.81
しかもXcode4.7と5であまり互換性がないという
55デフォルトの名無しさん:2013/11/16(土) 16:00:48.95
Macの話は止めろ
どうせ使わん
56デフォルトの名無しさん:2013/11/16(土) 17:47:27.32
WPFは機能面や構造面を見ると十分採用圏内なんだけど
メンバーへのトランスファーを意識するとどうしたもんかと思ってしまう
57デフォルトの名無しさん:2013/11/16(土) 18:11:15.05
>>51
しかも、MS自身がこういうドキュメント化されてしない仕様を把握しきれてないね。

そのせいで、コントロールの組み合わせ次第でレイアウトが崩れたり、
VSで問題ないコードがBlendでエラーを引き起こしたりとか、
ボロボロだよ。
58デフォルトの名無しさん:2013/11/16(土) 19:52:14.97
問題点を整理した上でRazorを拡張して
Webアプリとネイティブが両方同じ方法で作れるようになったら
大逆転あるで
59デフォルトの名無しさん:2013/11/16(土) 19:54:47.90
そもそもなぜxamlとaspxを分けたんだろ・・・
60デフォルトの名無しさん:2013/11/16(土) 20:14:49.39
Silverlightのためだろ
そんくらい察しろ
61デフォルトの名無しさん:2013/11/16(土) 20:22:48.77
M$はAppleの真似やめてM$ Acountは無料にしろよ
WPやWin Storeアプリなんて誰が金払ってまで作るんだよw
売れたら30%手数料でいいだろ、M$ごとき落ち目がAppleと同じ目線で商売すんな

>>58
Xamlでネイティブ・WP・WS・WebのUIをマルチで作れるなら逆転あるわ
62デフォルトの名無しさん:2013/11/16(土) 20:44:37.66
おじいちゃんは黙ってデスクトップにしがみついてれば
いいだろう無理するな
63デフォルトの名無しさん:2013/11/16(土) 20:56:19.80
>>61
本当は、そのWebの部分をSilverlightでどうにかするハズだったんだよなあ

iPadの出て来たタイミングが、マジで癌だった
後3年くらい遅けりゃねえ
64デフォルトの名無しさん:2013/11/16(土) 21:05:42.45
WebはバイトコードDOMみたいな世界に中々いけないな
65デフォルトの名無しさん:2013/11/16(土) 23:37:39.59
拡張子が.xamlのWebページって一度も見掛けた事ないな
まあ有っても困るんだけど

LooseXAMLを流行らせようと思ったら、
IEが大きなシェア率を占めていた時代にやらなきゃ駄目だった
66デフォルトの名無しさん:2013/11/17(日) 00:53:57.37
おい、NaNってなんやねん!
Width,HeightはNaNでActualは0返しやがる、どうやったらサイズ取得できんねん!
ホンマWPFは地獄やで!
67デフォルトの名無しさん:2013/11/17(日) 03:54:46.28
WPFバグ多すぎ、しかもよくわからんバグがある
ColorのGとBがある条件下だと逆になるとかどういう設計なんだ
68デフォルトの名無しさん:2013/11/17(日) 04:25:47.78
There is no design, only WPF.
69デフォルトの名無しさん:2013/11/17(日) 11:13:05.47
>>63
いまならSilverlight on javascriptとかいけんじゃねーの。
コンパイラスイッチでILがjavascriptに変換される感じで。
まぁ実際作ったりはしたんだろな。でモサモサすぎてオクラになってる予感
70デフォルトの名無しさん:2013/11/17(日) 11:16:04.16
>>66
あー俺もストアの方だがRichEditBoxのDesiredHeight取りたいんだが取れたDesiredHeightも0でマジファックですわ(´・_・`)
71デフォルトの名無しさん:2013/11/17(日) 11:21:18.97
中間コードをJavaScript化しても、あまり意味無い気がする

SLで(xamlで)作ったGUIをWebブラウザ上で表示するには、SLプラグインが必要な訳で
SLプラグインが動く状況なら、SLに中間コードを実行させりゃ済む話だからなあ

LooseXAMLで良けりゃIEはSL不要だが、他のWebブラウザに対応する事を考えるとSL必須だし
72デフォルトの名無しさん:2013/11/17(日) 11:27:13.28
つか、Silverlightは元々JavaScript使える
SL1.0の頃はむしろ、JavaScriptしか使えなかった

マネージコードと比べて出来る事は非常に少ないが、
あのAPI群を拡張出来ない訳は無いんだよな
73デフォルトの名無しさん:2013/11/17(日) 12:05:06.79
RIAプラグインはSilverlightもFlashも、モバイル界隈から嫌われてるからな
こればかりはしゃーない

iOSは一貫して非対応、(サードパーティ製のFlash使用可能ブラウザとかはあるけど)
AndroidもFlash対応を謳ってたのが、非対応に方針転換
WindowsPhoneチームでさえ、プラグイン類の搭載に否定的

デスクトップ界隈では、まだしばらくRIAプラグインの需要はあると思うが
今後どうなってくんだかな
74デフォルトの名無しさん:2013/11/17(日) 15:56:10.34
>>70
ホンマなんやねんな!
Actual、Desired、NaNとかイミフや!!
WinFormsにBitmapEffectとAnimationClock実装されればWPFなんてつかわんわ!!
75デフォルトの名無しさん:2013/11/17(日) 15:57:32.30
残念
すでにメンテモードなWinFormsには
されないんです
76デフォルトの名無しさん:2013/11/17(日) 15:59:13.44
それとWPFウィンドウを透過したらWindow Form Hostまで透過処理されるバグさっさと直せ!
77デフォルトの名無しさん:2013/11/17(日) 16:54:32.06
Hostの上にコントロールを置けないのを直してほしいわ
78デフォルトの名無しさん:2013/11/17(日) 19:38:39.39
直そうと思ったけど、問題がありすぎてだめでした(・ω<)

詳しくはconnectを見てね
79デフォルトの名無しさん:2013/11/17(日) 19:41:01.93
URLくれ
酒の肴にする
80デフォルトの名無しさん:2013/11/17(日) 19:51:26.74
>>68
Ghostbustersか
いつの日かWPFも亡霊と呼ばれる日が来るだろう
81デフォルトの名無しさん:2013/11/17(日) 20:56:15.91
ストア・アプリもXAMLなんでしょ?
酷すぎてHTML5+JScriptの方が流行るかもしれないけど
82デフォルトの名無しさん:2013/11/17(日) 20:57:34.24
ストアアプリなんて「出さないとそれなりのダメージがある」人しか作ってないような
83デフォルトの名無しさん:2013/11/17(日) 22:19:47.29
vs2013で initcomponents での例外が出て参った
普通のビルドでは問題ないのにバッチリビルドで100%発生
どうもg.csのコンパイルがおかしい感じ
84デフォルトの名無しさん:2013/11/17(日) 22:24:19.97
ばっちりビルドと読んでしまったw
首釣ってくる
85デフォルトの名無しさん:2013/11/18(月) 00:35:37.45
>>83
文字列リソースをVSのデザイナの出力そのままでBindingしてない?
私はそれで糞ほど嵌ったから参考になれば。今はExtension書いて回避してる。
86デフォルトの名無しさん:2013/11/18(月) 03:37:54.68
>>77
上におけないどころかScrollViewerとかはみ出るとか実用度にかなり疑問を感じるよね
87デフォルトの名無しさん:2013/11/18(月) 06:47:44.95
>>84
俺もだw
88デフォルトの名無しさん:2013/11/18(月) 07:20:41.27
>>85
お、書いてる書いてます
確かに落ちる部分はresorceがらみのよう
bind方法が悪いのですか、ちょっといろいろためしてみよう
89デフォルトの名無しさん:2013/11/18(月) 07:39:44.90
>>71
いや、要はそのプラグインごとjavascript化して動けばいいと。
技術的にはいけると思うけど遅そう(´・_・`)
90デフォルトの名無しさん:2013/11/18(月) 07:44:06.01
>>74
必要サイズ計測用に作りたてのでやったら0だったけどダミーで貼り付けた奴だと取れた。なんざんしょ。
でも自分はフォームに戻ろうとは思わんなー
91デフォルトの名無しさん:2013/11/18(月) 08:07:22.10
>>89
HTML5のCanvasを使えば、出来なくは無い…のかねえ
でも、HTML5はDataGridがお蔵入りになるレベルだからな
92デフォルトの名無しさん:2013/11/18(月) 09:27:03.05
>>91
それは比べる対象違うダロ
93ガスライティングで検索を!:2013/11/18(月) 10:21:33.82
カルト宗教団体は、信者や敵対者に対して組織的な嫌がらせを行い
マインドコントロールしなければ組織を維持、拡張することができません

そのため、証拠を残さず、訴えられないように、ターゲットを集団で威圧、監視し、嫌がらせを行う「ガスライティング」という手法が必要なのです

カルト教団がどのように信者のマインドをコントロールしているのか知って下さい
[ガスライティング 集団ストーカー カルト]などで検索を!
...
94デフォルトの名無しさん:2013/11/18(月) 20:31:55.16
>>90
どこかのヘルプでWPFでは入れてるコンテナとか次第で勝手にサイズ調整するから云々というのを
読んだ記憶がある。GridやらDockPanelやらStackPanelやら複合で駆使している時点で良く分からん。
こういう内部的に○×してて外からアクセスできるプロパティからいじれないというのは多い気がする。
とはいえ、俺も今更Formsに戻る気はしない。
95デフォルトの名無しさん:2013/11/18(月) 21:01:17.21
0とかNaNになるのはタイミングが悪い
だいたい参照が早すぎる
ロジックとVisualは別々でうごいてる
96デフォルトの名無しさん:2013/11/18(月) 23:45:38.13
DataGridTemplateColumnにDataTableの列をバインドしたいんですが、
DataTemplateを外出しにした場合はどうやるのでしょうか?
97デフォルトの名無しさん:2013/11/18(月) 23:52:17.46
外だしってのはどっかのResourcesに入れたってこと?
まあ別にそれで何が変わる訳でもない
98デフォルトの名無しさん:2013/11/19(火) 00:10:25.85
DataTemplateはどこかのリソースに入れてます。
<DataGridTemplateColumn CellTemplate={StaticResources キー} Binding={Binding 列名}/>
のようにしようとしたんですが、Bindingを指定できないみたいで、質問しました。
どういう感じに指定したらいいのでしょうか?
99デフォルトの名無しさん:2013/11/19(火) 00:20:46.89
あーそれね。
どういう感じにも指定できないから。
DataTemplateの中に直接Bindingを書いてね。
書き終わったら↓に行って「使えねーなカス」って報告しといて。
http://connect.microsoft.com/
100333:2013/11/19(火) 00:44:57.14
VとVMのどっちに書けばいいんだ?って多くないっすか?
例えばComboBox ItemとかXamlに書いた方がいいのかVMで書いた方がいいのか
結論からいえばMVVMってVとMの粗結合が目的っすよね?
そのためのVMだからVとVMが密結合になるのってどうしようもないと思うんですが
101デフォルトの名無しさん:2013/11/19(火) 00:52:21.20
Presenterなんだから明らかにV要素です
102デフォルトの名無しさん:2013/11/19(火) 12:45:35.96
>>100
役目を理解、判断できてないだけ。
なんか自分の無知を棚に上げて批判するやつ多いよなぁ。

まぁ、でもさ。ルールに縛られるのが一番阿呆らしいよ?書きやすいように書くのが
正解だと思う。同じものができるならルールに縛られて冗長なコード書いて生産性
下げるより多少メンテナンス性落ちても生産性上がる方が現場向き。
美しいとかなんとかはアカデミックな連中に任せておけば良い。
最後はそのバランスだし人に正解を求めるものではない。
103デフォルトの名無しさん:2013/11/19(火) 12:55:13.14
×書きやすいように
○メンテしやすいように
104デフォルトの名無しさん:2013/11/19(火) 13:17:00.78
>>102
何当たり前のこと言ってるの?

と言いたい所だけど・・・MVVM関連はルール重視に偏りすぎてるので
こういう当たり前のことを再確認したくなるね。
105デフォルトの名無しさん:2013/11/19(火) 13:50:57.25
>>100
XAMLで書いたら固定になっちゃうから、
東西南北とか十二支、星座とか、
選択肢がほぼ固定なもの。Enumでも定義できるようなのは
XAMLで書いてもいいとは思う。そういう場合くらいしか使わないな。

選択肢の内容が毎日のように常時変化するなら、
VMのコレクションにバインドする方がいいね。
106デフォルトの名無しさん:2013/11/19(火) 14:08:52.91
>>104
その当たり前のことをわかってないレスに対して言ってるんだろうが。
107デフォルトの名無しさん:2013/11/19(火) 14:29:13.41
この項目にはこれらの値しか入らないってのがVMレベルまでの仕様なら
場合によってはXAMLに全部書いちゃってもいいと思うよ
さすがにDBに入れる値を制限するとかだとXAMLに書くのはゴミカス設計と言わざるを得ないが
108デフォルトの名無しさん:2013/11/19(火) 14:50:02.25
>>94
WPFのレイアウトは、設定できる範囲が多すぎるため
複雑なことも出来るんだが、どうすればどうなるってのが理解し難くてね

この前RowDefinitionのHeightをBindingしたんだが、うまく行かずに
同じものをコードビハインドでいじったらうまく行ったり
109デフォルトの名無しさん:2013/11/19(火) 19:20:24.66
MVVMと言えば、
http://www.atmarkit.co.jp/fdotnet/chushin/wpfsluipattern_02/wpfsluipattern_02_01.html

この記事のサンプルでViewの「次へ」ボタンのキャプションの文字列を(ステートに応じて変えるために)
VM側に持たせてるのはやっぱり変だと思うんだけどどう思う?
110デフォルトの名無しさん:2013/11/19(火) 19:23:28.00
変だと思うよ
111デフォルトの名無しさん:2013/11/19(火) 19:34:23.06
>>99
まじかよ・・・
ってことは、同じDataTemplateを再利用するなんてほぼ不可能じゃねえか
112デフォルトの名無しさん:2013/11/19(火) 19:48:12.70
まだ君は地獄の門の前に立っているに過ぎない
希望を捨てる覚悟はありますか?
113デフォルトの名無しさん:2013/11/20(水) 08:24:00.59
>>111
DataGridTemplateColumnにバインド設定することは、
XAMLだけでは多分無理。
コードビハインドでは一応可能だよ。
114デフォルトの名無しさん:2013/11/20(水) 11:46:32.03
>>113
どうやるか教えてください。
115デフォルトの名無しさん:2013/11/20(水) 12:13:56.12
116デフォルトの名無しさん:2013/11/20(水) 16:47:03.32
>>103
メンテナンス性って幻想だと思う。というか「ルールに縛られてないで」の意味が
わかっていないからそんな突っ込みするんだよな。

そもそもメンテナンスし続けて10年動かすプログラムをWPFで書いている奴が
どれだけいるのやら・・・。
117デフォルトの名無しさん:2013/11/20(水) 20:00:03.48
Modelさえ綺麗に隔離されてれば正直VCだのVVMだのはごりごりでいいよね
118デフォルトの名無しさん:2013/11/20(水) 20:30:29.83
>>117
出来ればVMはViewがなくても動いてくれるとユニットテストできて助かります。
119デフォルトの名無しさん:2013/11/21(木) 00:07:46.72
>>117
VとCって厳密に切り離せるの?

ほとんどの場合VがCを内包しちゃってるよね
Vに全く依存してないCってSmalltalkくらいでしか見たことが無い
120デフォルトの名無しさん:2013/11/21(木) 10:42:05.69
そもそもMVCってのがVに線を引くとか四角を塗り潰すとかしか機能がなかったころの残滓だからな
121デフォルトの名無しさん:2013/11/21(木) 12:36:23.86
お昼の質問
ListViewのソースにobservalcollectionをバインドしています
1秒ごとに要素を追加したいので
Model内でループして1秒間隔でコレクションに追加しています
所が描画はModelの処理が終わるまでされません

DoEvents相当の処理を間に入れてやると1秒ごとに表示されますが
WPF的にはどのように実装するのが正しいのでしょうか
122デフォルトの名無しさん:2013/11/21(木) 15:03:06.08
>>121
ループじゃなくてタイマー使えよ
123デフォルトの名無しさん:2013/11/21(木) 21:05:53.01
VとVCを完全に切り離すって相当しょっぱいUIとデザインなんでしょ?
だってVのイベントやロジックはVCに書くのにどうやってVとVC切り離すの?
124デフォルトの名無しさん:2013/11/21(木) 21:07:16.56
(うわぁ)
125デフォルトの名無しさん:2013/11/21(木) 21:42:05.01
(頑張ろう)
126デフォルトの名無しさん:2013/11/21(木) 21:45:05.68
(結婚しよ)
127デフォルトの名無しさん:2013/11/21(木) 22:47:24.15
VCって何の略?
ボイスチャット?
バーチャルコンソール?
ビタミンC?
128デフォルトの名無しさん:2013/11/21(木) 23:02:57.23
ベトコン
129デフォルトの名無しさん:2013/11/21(木) 23:08:12.19
べんちゃーきゃぴたる
130デフォルトの名無しさん:2013/11/21(木) 23:13:57.66
Visual Cが出てこないとか
131デフォルトの名無しさん:2013/11/21(木) 23:24:00.61
ありえんよな
132デフォルトの名無しさん:2013/11/22(金) 10:57:04.09
VS2013 C# WPFアプリ実行時InitializeComponent内でXamlParseException例外が発生してしまう件について調べてみた。困っている人いると思うのでメモついでに貼っておきます。だれかMSに通報してください。

発生する条件
・ソースコードがまったく同じでも発生することを確認
・リビルドしたときに発生する
・リソースをStaticResourceでバインドしていると発生する?

回避策
・いちど例外が発生する該当xamlファイルを修正(当たり障りの無い部分を消して)ビルドして、修正箇所をUndoして再ビルドすると回避できる

原因
問題なく動作するときと例外が発生する場合のobj構築に以下の差異発見
・***.FileListAbsolute.txt
***.csprojResolveAssemlyReference.chach
・***_MarkupCompile.lref
・GeneratedInternalTypeHelper.g.cs
上記の中を見ると、どうもリビルドで作成した場合に各部参照の整合が取れていない様子
このせいでexe等バイナリ系がすべて違う内容になり、結果として実行時エラーがでるよう
133デフォルトの名無しさん:2013/11/22(金) 12:18:41.04
xaml関連はそんなんが多すぎる。xamlで文句タレてきたら、最初から信用してないから
VS閉じて開き直したり、なんか一通りやってそれでも出るなら調査開始するw
134デフォルトの名無しさん:2013/11/22(金) 14:01:29.99
>>132
自分でConnectあげろよ
135デフォルトの名無しさん:2013/11/22(金) 14:55:17.62
>>133
俺も何か変なこと起きたらVS落として中間ファイル全部手で消してから全コンし直す。
メインは2012だけど、この環境でうまく解釈してくれないものも2013だと問題ないし
開発環境として着実に進化はしてるんだと思う。
136デフォルトの名無しさん:2013/11/25(月) 18:46:08.52
とてもプログラマー板とは思えない書き込みだらけのこの板、このスレッド。
何も得るものなどない。煽り、叩き、馴れ合いしか能のない住人達。
これが今の日本のIT産業の現状なのですね。
せめてこの板の住人が、リアル厨房だらけであったことに望みを託して、私は
この板を本日限り去ることを決心いたしました。皆さん、がんばって勉強して
立派な大人になってください。さようなら。
137デフォルトの名無しさん:2013/11/25(月) 18:49:02.74
コピペでも狙ってんの?
VIPの方がオススメ
138デフォルトの名無しさん:2013/11/29(金) 02:05:23.08
なんで自作カーソル扱えないんだろ
139デフォルトの名無しさん:2013/11/29(金) 04:57:45.42
UI描写が内部的にDirect X2Dとベクターで描写されてるだけでWPFそのものの表現力なんてゴミじゃん
作ろうと思えば作れるとその機能を既に持ってるでは話が違うだろうと
なーんもないんだよWPFは、これで使って欲しいって馬鹿じゃねーのと
140デフォルトの名無しさん:2013/11/29(金) 13:44:56.87
wpfは簡単に見た目を変えられるから、デザイン凝りたい時は十分使える
でもな完成度がイマイチなんだわ
141デフォルトの名無しさん:2013/11/29(金) 14:45:14.06
つーてももっと完成度高いフレームワークある?
142デフォルトの名無しさん:2013/11/29(金) 15:07:30.58
あったらPart17までスレが続くわけがねぇ
143デフォルトの名無しさん:2013/11/29(金) 16:41:20.22
Sonyのスマートフォンのスレなんてまだ発売されてないのに20スレまで行ってるぞw
144デフォルトの名無しさん:2013/11/29(金) 17:07:13.07
なんかこう、属性が違くねーか…wpfでどうwktkしろってんだw
145デフォルトの名無しさん:2013/11/29(金) 17:29:47.66
日本で売っても成功しないの判ってるから
無駄に戦わず見捨ててるのかもな
146デフォルトの名無しさん:2013/11/29(金) 19:33:56.43
Windows Phoneが頑張ればShilverlight for WP経由でWPFも賑わうのにな
147デフォルトの名無しさん:2013/11/29(金) 20:20:47.64
Modern UI for WPF使ってる人います?

Nuget経由でインストールするとVSにこれのプロジェクトテンプレートが追加されると思うんだけど、
このテンプレートで作ったプロジェクト、俺の環境では必要なdllへの参照設定がされてない状態で
作成されるんだけどこういうもの?
148デフォルトの名無しさん:2013/11/30(土) 15:47:50.23
DataGridのBindingで
<CheckBox IsChecked="{Binding Path=bool1, Mode=TwoWay}"/>

<DataGridCheckBoxColumn Binding="{Binding Path=bool2}"/>
ってどう違うんですか?
public class bool_container {
public bool bool1 { get; set; }
public bool bool2 { get; set; }
}

というようなクラスのboolを変更したいのですが、bool2のほうは更新されるのですが
bool1のほうは見た目のチェックは変わるのですがbool_container内の値は変わりません

diag:PresentationTraceSources.TraceLevel=Highも試してみましたがよくわかりませんでした
149デフォルトの名無しさん:2013/11/30(土) 17:49:25.04
今バインドでthis.DataContext %3d hogeかxxx%3d{Binding}しかわからなくて使ってないんだけど
個別にバインドしたいときってどうしたらいいんでしょうか
変数のように(Xaml)<button content%3d{Binding hoge} /> (C#)hoge %3d 1;
みたいな
150デフォルトの名無しさん:2013/11/30(土) 17:50:12.72
なぜかイコールが%3dに化ける・・・
151デフォルトの名無しさん:2013/11/30(土) 18:57:42.87
>>150
==157cm
普段の行い?
152デフォルトの名無しさん:2013/11/30(土) 23:35:12.32
>>149
ButtonにもDataContextがあるから、そこにオブジェクトを放り込めばいい
153デフォルトの名無しさん:2013/12/01(日) 06:02:46.30
個別にするならSourceに指定するのが基本だな
DataContextは同じものへのバインドを使いまわす時に
親のコントロールで一度だけ指定して済ませるためのもの
154デフォルトの名無しさん:2013/12/05(木) 16:18:15.44
マウス以外のデバイス制御を行っているのですが
SendInputとかWindows自体を操作するのではなく
マウスのルーティングイベントを意図的に発生させる方法はないでしょうか?

ImageにMouseLeftButtonDownを持たせて指定座標にImageがあればMouseLeftButtonDownを発生させたいです。

ご教授よろしくお願いします。
155154:2013/12/05(木) 18:56:31.90
http://msdn.microsoft.com/ja-jp/library/ms171548(v=vs.110).aspx

ここに書いてるようにすれば・・・と思ったけど
WPFでは出来ない?
156デフォルトの名無しさん:2013/12/05(木) 19:40:54.47
System.Windows.Forms.MouseEventArgs mea = new System.Windows.Forms.MouseEventArgs(System.Windows.Forms.MouseButtons.Left, 1, 120, 120, 0);
System.Windows.Forms.Control.OnMouseClick(mea);

OnMouseClickはアクセスできない保護レベルになっています・・・ってなんだよー!
157デフォルトの名無しさん:2013/12/05(木) 19:51:09.74
ちょっと何いってんのかわk(
158デフォルトの名無しさん:2013/12/05(木) 19:56:14.62
>>157
すみません。
WPFでマウスイベントをシミュレーションしたいのですがコードの書き方がわからず
調べてるうちに>>155にたどり着いたのですが、実際コードに起こしてみたのが>>156
なのですが、

エラー 5 'System.Windows.Forms.Control.OnMouseClick(System.Windows.Forms.MouseEventArgs)' はアクセスできない保護レベルになっています。

と出て結局出来ませんでした。

WPFではマウスイベントのシミュレーションはできないのでしょうか?
159デフォルトの名無しさん:2013/12/05(木) 20:43:16.15
WPFなのにSystem.Windows.Formsとはこれいかに?
160デフォルトの名無しさん:2013/12/05(木) 20:49:44.29
仕事なのか趣味のプログラムなのが気になる(´・_・`)
161デフォルトの名無しさん:2013/12/05(木) 20:50:51.09
>>154
ルーティングイベントを起こすなら UIElement.RaiseEvent を使う
162デフォルトの名無しさん:2013/12/05(木) 22:01:13.98
>>160
趣味なら他人が教えようとしても自力で調べるだろ。
163デフォルトの名無しさん:2013/12/05(木) 22:08:29.06
MVVMでビヘイビアやトリガーをXAMLに書く必要があるのが高すぎる敷居に思える
コードビハインドでまずFormsから移行させていつPrismに行くか…
164デフォルトの名無しさん:2013/12/05(木) 22:28:50.00
ビヘイビアとか面倒くさすぎるわ
ユーザーコントロールじゃダメなの?って思ってしまうわ
165デフォルトの名無しさん:2013/12/05(木) 22:57:21.83
掲示板を自分の感想を述べる場所だと信じている人がいるんですよね。
しかし、最近の研究で、そうではないことがわかってきたんです。
166デフォルトの名無しさん:2013/12/05(木) 23:07:08.82
日記帳とも違うはずなんだがな
167デフォルトの名無しさん:2013/12/05(木) 23:26:03.31
便所の落書きですよ

本気で流行らそうとしてないよね
VB6切ったみたいにWinForms切ればいいのに
168デフォルトの名無しさん:2013/12/05(木) 23:28:22.52
ふかのうです
169デフォルトの名無しさん:2013/12/05(木) 23:38:33.76
WinForms切ったらWindowsマジで終わるぞw
既にスマホ・タブのモバイルでは開発環境として人気も魅力ゼロだからな
WinForms捨てるってことは業務システム捨てるってことと同義だろ、WPFなんてグリッドすらまともに使えなくてサードのツールパックないと話にならねー
俺から言わせればさっさとWPF捨ててWinFormsを進化させろと
MVVMでユニットテストが楽(笑とかどうでもいいわ、その他の部分で効率がガタ落ちになる
170デフォルトの名無しさん:2013/12/05(木) 23:54:41.85
何でこのスレ来たの?
171デフォルトの名無しさん:2013/12/06(金) 00:06:35.07
あんまり言われないけどWPFの2DのグラフィックってGDI+より分かり難いしパフォーマンス悪いし、
いいとこないよねw

もうちょっと何とかならなかったのか
172デフォルトの名無しさん:2013/12/06(金) 00:11:21.92
具体的にConnectで教えてやれよ
俺はもうあきらめた
173デフォルトの名無しさん:2013/12/06(金) 04:47:50.15
>>169
現場PG「WPFの完成度が80パーセント?冗談じゃありません。現状でWPFの性能は100パーセント出せます。」
主任「グリッドすらまともに使えない。」
現場PG「あんなの飾りです。偉い人にはそれがわからんのですよ。」
主任「使い方はさっきの説明でわかるが、WPF私に使えるか?」
現場PG「主任の能力は未知数です、保証できる訳ありません。」
主任「はっきり言う。気にいらんな。」
現場PG「どうも。気休めかもしれませんが、主任ならうまくやれますよ。」
主任「ありがとう。信じよう。」
174デフォルトの名無しさん:2013/12/06(金) 15:11:28.37
>>169
モバイルはXamarinあるからイケる!!
175デフォルトの名無しさん:2013/12/06(金) 15:42:18.25
まぁ、がんばれ
176デフォルトの名無しさん:2013/12/06(金) 17:55:11.16
シェイプ4万個出しただけで劇おもぷんぷん丸なんだけど
177デフォルトの名無しさん:2013/12/06(金) 18:01:03.54
5千個ぐらい3Dポリゴン出しただけでがくがくしだすから当たり前だろ
178デフォルトの名無しさん:2013/12/06(金) 18:11:56.22
>>174
>>169
>モバイルはXamarinあるからイケる!!

Xamarinのサブスクリプションは高くて制約多すぎるから流行らんよw
残念
179デフォルトの名無しさん:2013/12/06(金) 18:20:28.81
たぶん使ったこともないような奴が行けるとか言ってると思うの、あれは
180デフォルトの名無しさん:2013/12/06(金) 18:49:28.74
>>178
会社だとあれぐらいの値段は余裕。
今ガチで使ってるけど色々トラブルはあるけど使えるというか、iPhoneと泥、窓向けに別々に作るとかもうありえん。
181デフォルトの名無しさん:2013/12/06(金) 18:53:14.76
窓向けは余計だろう
需要ないもん
182デフォルトの名無しさん:2013/12/06(金) 23:59:16.19
>>181
それを判断するのはお前じゃない(´・_・`)
183デフォルトの名無しさん:2013/12/07(土) 01:12:50.00
WPFやってるとクマができる
気のせい?
184デフォルトの名無しさん:2013/12/07(土) 11:01:51.17
気のせい
185デフォルトの名無しさん:2013/12/07(土) 15:41:47.43
クマってなんだ。馬鹿馬鹿しい制約を自分に課して寝不足にでもなってるんかw
186デフォルトの名無しさん:2013/12/07(土) 20:50:34.83
毎日8時間くらい寝てるけど、クマが消えないわ
SEの宿命なのかね?女の子は可哀想だ
187デフォルトの名無しさん:2013/12/07(土) 22:11:50.23
鮭取ってくるまで育てたらいい
188デフォルトの名無しさん:2013/12/07(土) 22:13:37.08
ホーリーランドごっこすれば気にならなくなるさ
189デフォルトの名無しさん:2013/12/08(日) 03:38:15.75
杭全
190デフォルトの名無しさん:2013/12/09(月) 22:50:46.60
久しぶりに自作アプリ立ち上げたら文字がにじむようになった

一体どのタイミングでおかしくなったんだろ?
191デフォルトの名無しさん:2013/12/10(火) 12:02:58.44
>>190
RotateTransformでも設定してるんじゃない?
192デフォルトの名無しさん:2013/12/11(水) 19:36:02.58
>>190
ディスプレイごとに拡大率変えたりしてたりしない?
Win8.1からのPer Monitor dpiの設定をしてると、WPFアプリでもDPIスケーリングがかかってボケボケになることあるよ。
193デフォルトの名無しさん:2013/12/14(土) 23:48:57.29
ProgressBarで動きが妙なんですが、原因がどうもわかりません。
xamlでは以下のように定義。

<ProgressBar x:Name="bar" Height="20" Minimum="0" Maximum="100"/>

サブスレッドなどは使わずにButtonクリックで単純にValueを更新させるんですが、

Dim max As Integer = 10000
For i As Integer = 0 To max
  Dim d = CDbl(i) / CDbl(max) * 100
  If bar.Value <> d Then
    Me.Dispatcher.Invoke(Sub()
                    bar.Value = d
                  End Sub, Windows.Threading.DispatcherPriority.Loaded)
  End If
Next

0〜8まではバーが動くんですが、そこから表示が更新されず、ループ終了と同時に100に更新されてしまいます。
Windows8 + VisualStudio2012の環境では普通に動作してたんですが。
試しに Windows7 + VisualStudio2010で動かしてみたら上記のようなことになってしまいちょっと困ってます。
194デフォルトの名無しさん:2013/12/15(日) 00:03:36.56
>>193
酷いコードだな...

何がしたいのかさっぱり分からないが、UIスレッドのループの中で表示プロパティを
連続して変化させても表示が追従するわけがない。
195デフォルトの名無しさん:2013/12/15(日) 00:09:14.79
95の時代から同じことやってるが未だに浸透してないんだよなこの手の話は
196デフォルトの名無しさん:2013/12/15(日) 00:47:03.48
>>194
Windows8では動作するんですが、あなたの常識では追従するわけないんですね
197デフォルトの名無しさん:2013/12/15(日) 02:15:37.44
逆切れかよ馬鹿だね。
だいたいUIスレッドでDispatcher.Invokeって意味分かって使ってるのか。
198デフォルトの名無しさん:2013/12/15(日) 02:34:06.84
ほんなわけあるめえ
大体バージョン違って同じ動作する保証なんて誰がしてるってんだ
花畑かよ
春爛漫だなって感じ
199デフォルトの名無しさん:2013/12/15(日) 02:39:16.23
UIスレッドと描画スレッドって別じゃなかったっけ
200デフォルトの名無しさん:2013/12/15(日) 02:43:02.52
この話で描画スレッドが介在する余地はどこにもない
UIスレッドでDispatcher.Invokeを呼び出してUIスレッドで値をセットしようとしてるんだから
201デフォルトの名無しさん:2013/12/15(日) 09:02:28.93
>>200
いやここで言ってるのはいわゆるUIスレッド建てるとそれに併せてシステム的な意味での描画スレッドが一対一で作られるよねって話だと思うが。
確かそうだったはずだがそこら変の挙動疎いのでだれかよろ。
202デフォルトの名無しさん:2013/12/15(日) 09:23:38.73
> UIスレッド建てるとそれに併せてシステム的な意味での描画スレッドが一対一で作られる
当然、それを知ったうえで、
> 描画スレッドが介在する余地はどこにもない
って言ってるんでしょ。

俺も同意見。
違うと思うなら、だれかよろじゃなくて、自分で反例を出しなよ。
203193:2013/12/15(日) 09:40:44.91
Windows.Threading.DispatcherPriority.Loaded を Windows.Threading.DispatcherPriority.Background にすれば動作します。
でもなぜBackgroundだと動くんだろ。だれかわかる人います?

Invokeは同期処理ですから、優先順位をRender(6)より低く設定してInvokeすれば表示更新が優先処理されると理解してたんですが。
204デフォルトの名無しさん:2013/12/15(日) 09:52:50.55
>>194-195
よう、老害!

メッセージループに戻るまで表示は更新されない。
95時代の常識で考えるとそう思うよな。

だが違うんだよ。俺も試して驚いたが。

>>193のように、この動作に頼るのはまずいが、
過去の常識に囚われてると、原因不明の画面ちらつきとかを引き起こしそうだ。
205193:2013/12/15(日) 10:04:13.57
>>204
すいません、このコードに頼るのはまずいと承知してるんですが、Dispacherの動きを理解したくてこんなことやってます。
ググると疑似DoEventsの実装サンプルみたいに紹介されてるんですよね。
206デフォルトの名無しさん:2013/12/15(日) 10:05:05.83
>>203
WPFにはUIスレッドでの処理が滞ってると、表示更新の優先度を下げる機構がある。

その、優先度が下がるタイミングが>>193のバーが8の時だったんだろう。

> Background にすれば動作します。でもなぜBackgroundだと動くんだろ。

優先度が下がった後の表示更新より、さらに低い優先度だからじゃないかな?
207デフォルトの名無しさん:2013/12/15(日) 10:06:53.72
Windows8では起きないって事は、
この優先度を下げる処理は廃止されたのかもね。

正直俺も余計なお世話だと思ってたし。
208デフォルトの名無しさん:2013/12/15(日) 10:12:06.19
WPF名物、もっさりスクロールの原因でもあった
209デフォルトの名無しさん:2013/12/15(日) 10:18:17.42
>>206-207
ありがとうございます。なるほど優先順位が途中で変更されるんですか。
ヘルプを読んでても全然そのへん読み取れなかった。もう少し自分でも調べてみます。
210デフォルトの名無しさん:2013/12/15(日) 10:26:38.34
>>202
なんでお前は敵対心丸出しなの?
おれはこんなのもなかったっけ?っていってるだけなのに。
お前が老害なのか知らないけどストレス溜まってるのか?
211デフォルトの名無しさん:2013/12/15(日) 11:06:47.27
>>197
この人のDispatcher.Invokeの意味ってのを聞いてみたいw
212デフォルトの名無しさん:2013/12/15(日) 12:52:36.91
ループのたびにプログレスバーを更新するのも考えものだね
1000回ループなら10回毎に更新とか普通に組む
213212:2013/12/15(日) 13:14:46.44
あ、悪い。いつもの自分のやり方と違っていたから勘違いしたわ
214デフォルトの名無しさん:2013/12/15(日) 17:08:38.03
>>193
メッセージングのお勉強が足りない
ブロックしてる間にUIいじってもだめよ
215デフォルトの名無しさん:2013/12/15(日) 18:49:08.62
>>193
なんでブビ厨がこのスレきてんの?
え?同じ.NETで同じWPFだから?
一緒じゃねーよksが!wwww
216デフォルトの名無しさん:2013/12/15(日) 19:24:14.35
>>193のレベルが高すぎてほとんどついてこれるやつが
いなかったようだ
恥ずかしいなw
217デフォルトの名無しさん:2013/12/15(日) 19:28:34.24
確かに
>Dim d = CDbl(i) / CDbl(max) * 100
とか笑いのレベルが高すぎてC#専には伝わらんだろうな
218デフォルトの名無しさん:2013/12/15(日) 19:36:44.06
本当の笑いどころは最初から言ってるようにUIスレッドのループの中でUIをいじってるところだけどね。

老害とか言ってる奴がいたけど、むしろ>>217みたいな「テクニック」は
大昔の8bitやPC-98のBASICで使われていたもので、老害を攻める相手を間違えてるとしか思えん。
219デフォルトの名無しさん:2013/12/15(日) 19:50:12.75
別にC#専じゃないけどね、VC/VC%2b%2b、JavaScript、Pythonも書くし
それでもブビは仕様でVBA書くときくらいだな、さっさと滅んで欲しいが
VBAが消えなくとも他の選択肢、具体的にはJavaScript/Pythonが使えればまともな技術者ならみんな喜ぶと思うよ?w
220デフォルトの名無しさん:2013/12/15(日) 20:53:39.08
(別にスレッドを立ち上げて、その中でいじってるんじゃないのこれ・・・)
221デフォルトの名無しさん:2013/12/15(日) 22:47:00.89
>>218
つか「Dim d = CDbl(i) / CDbl(max) * 100」のdはDoubleになるから
次の行の「If bar.Value <> d Then」が必ず真になって
10000回すべてinvokeが呼ばれているな
更新が追いつかない原因はココだろ
222デフォルトの名無しさん:2013/12/15(日) 23:01:02.87
PregressBarのValueってDoubleじゃなかったっけ?
223デフォルトの名無しさん:2013/12/15(日) 23:11:55.02
>>222
いや「If bar.Value <> d Then」は、前回のdと今回のdを比較
つまり 「d = CDbl(i) / CDbl(max) * 100」と「d = CDbl(i+1) / CDbl(max) * 100」の比較になるから
dがdoubleだから常に真
224デフォルトの名無しさん:2013/12/15(日) 23:18:47.74
ああ、そりゃそうか
本質的なところはキューに溜まり過ぎて処理がおっつかなくなってたってところでいいのかな
225デフォルトの名無しさん:2013/12/15(日) 23:49:44.58
いや少なくともそこが本質じゃないからw
UIスレッドでループを回してアニメーションをさせるって発想そのものが根本的に間違ってる。

プログラムで間引いて(ウェイトをかけて)タイミングを調整するとか、いつの時代のテクニックだよw
226デフォルトの名無しさん:2013/12/16(月) 00:33:53.70
wait ではなくね?w OnPropertyChanged が必ず走っちゃうよ みたいな話だろ
こういう判定はするべき。そもそも論は別にして
227デフォルトの名無しさん:2013/12/16(月) 01:01:48.24
そもそもナンセンスなコードだから意図する仕様もコードから完全には読み取れないけど、
0から100まで1/10000ステップで変化させるというのは、たぶんタイミング調整のつもりなんでしょう。

実に間抜けとしか言いようがないけど
228デフォルトの名無しさん:2013/12/16(月) 01:26:52.88
結局ループから抜けてないのに描画されるのはなぜよ?って話はどうなったん?
抜けてないつもりでもなんか抜けちゃってるの?
229デフォルトの名無しさん:2013/12/16(月) 01:33:41.66
WPFはUIスレッドとレンダリングスレッドが別だから
230デフォルトの名無しさん:2013/12/16(月) 03:01:05.69
ここってひょっとして馬鹿しかいないの?
231デフォルトの名無しさん:2013/12/16(月) 03:17:42.88
そうだよ
232デフォルトの名無しさん:2013/12/16(月) 04:09:47.35
そもそもUIのプログレスを更新したいのにTask、せめてBackground Wokerを使おうと思わない頭の悪さがVBerだな〜w
考えられないがそこまで辿り着けなかったとしてもアニメーションさせたいなら何故Timerを使わないのか
その昔VBのTimerが糞すぎてブビ厨はTimerを使わずにwhile(true)DoEvents();でループさせるコードを量産した
そして現在も今時小学生でも書かないような糞コード書く・・・
ブビ厨ってなんで学習しないの?仕事から帰って家でなにやってんの?プログラミングの学習しないの?せめてGoogleさんで逆引きしないの?
233デフォルトの名無しさん:2013/12/16(月) 04:39:19.89
>>229
んじゃやっぱり上で更新するわけないと言ってたのは老害決定でいいのか。

>>232
その老害認定された人?そのせいでふぁびょってるの?
234デフォルトの名無しさん:2013/12/16(月) 04:42:45.71
なぜそこまで辛辣な物言いをしようとするのかがわからない
上を見れば切りがないし下を見ても同じで、自分を絶対的な基準にして
少しばかり自分より後から学んでいる人を萎縮させたがる精神状態は
そもそも自分自身のコンプレックスによって
引き起こされているのでは無いだろうか
235デフォルトの名無しさん:2013/12/16(月) 05:40:27.96
別に分からなくていいだろよ
お前には関係ない

はい。この話は仕舞いな。
236デフォルトの名無しさん:2013/12/16(月) 06:05:55.83
なんか頑なにUIスレッド内では表示更新しちゃダメって言い続けてる人がいるなw
できるんだからダメもクソもないだろうにwww
237デフォルトの名無しさん:2013/12/16(月) 07:41:24.78
今回びっくりしたのは、windows8が割とちゃんとしているということ
こんなコードでも動いちゃうんだな(10000回も更新して)
238デフォルトの名無しさん:2013/12/16(月) 08:11:01.39
せっかくWPFなんだからアニメーション使おうぜ。
一々ループで小刻みに画面更新しなくても、このアニメやっといて、と指定するだけで後は放置だよ。
以前、TriggerでProgressBar変化させるAction作ったけどその時のコード参考に載せとくわ。
durationで設定した時間をかけて、ToまでProgressBarのValueを変化させるアニメーション。

DoubleAnimation da = new DoubleAnimation(To, duration, FillBehavior.HoldEnd);
Storyboard.SetTargetName(da, "実際のプログレスバーの名前をここに指定");
Storyboard.SetTargetProperty(da, new PropertyPath(ProgressBar.ValueProperty));
Storyboard sb = new Storyboard();
sb.Children.Add(da);
AssociatedObject.BeginStoryboard(sb);
239デフォルトの名無しさん:2013/12/16(月) 08:15:04.04
ちなみにこのコードだと、処理の進捗状態とかを示す
ProgressBar本来の使い方には向かない。
処理本体が重くても軽くても、非同期で
ProgressBarだけ指定した時間で変化しちゃうからね。
このコード使った時は、ProgressBarを全く違う用途に使う場面だった。
240デフォルトの名無しさん:2013/12/16(月) 09:11:58.13
>>236
そもそもBindingがUIスレッドで表示更新しているんだから、それが出来なかったらWPF自体成立しませんw
241デフォルトの名無しさん:2013/12/16(月) 09:29:23.49
久しぶりにC#でGUIプログラムを作ろうと思ったら
WPFなんてのが出てたんだな。

Windowsフォームは過去の遺物になっちゃったの?
今C#でGUIアプリを作るならWPFで正解?
242デフォルトの名無しさん:2013/12/16(月) 09:57:58.83
>>241
デザイン性求められてないならWinForm、
求められてるなら仕様変更を促してWinForm
243デフォルトの名無しさん:2013/12/16(月) 09:59:24.91
WinFromsのWin32API由来の制限がうざいと思うならWPF、
特に困ってないならWinFormsだな。

WinFormsでできることをするなら、
生産性やプログラム動作速度はWPFよりWinFormsの方が良い。

WinFormsは過去の遺物だが、WPFも放置気味なので
WPFに期待してるとがっかりするぞ。
244241:2013/12/16(月) 10:09:33.41
よくわからんけど2〜3年様子みれってことかな。
245デフォルトの名無しさん:2013/12/16(月) 10:18:21.48
WPFは覚えることが多いから、お気楽プログラミングには向いていないが
凝ったことやりたくなったら重宝するよ
246デフォルトの名無しさん:2013/12/16(月) 10:24:10.77
>>244
その認識で問題ない。

2〜3年後だったら、デスクトップ版WinRTも形になってるだろうしね。
デスクトップ版WinRTの状況次第では、WPFは完全にお払い箱になる。
247デフォルトの名無しさん:2013/12/16(月) 11:45:22.95
>>244
前スレにも出てたヤツ↓
http://www.infoq.com/jp/articles/Win8-LOB-Options
使う使わないは自己責任で
248デフォルトの名無しさん:2013/12/16(月) 18:57:53.29
Bindingとコントロールの合成の2点で採用する価値がある
MVVMは頑なにコードビハインドを否定してるのが意味不明
デザイナーなんて居ないことのが多いのだから学習曲線を急な勾配にする価値がない
249デフォルトの名無しさん:2013/12/16(月) 19:02:08.70
頭の固い変な人(あるいはバカの一つ覚え)
が否定してるだけでMSの大元のMVVMに関するコラムでは何も言ってねえけどな
お前も気にしなくていいぞ
250デフォルトの名無しさん:2013/12/16(月) 19:32:38.96
>>248
別にMVVMはデザイナーを分離するためじゃねえだろ
Viewん薄くするのは健全だと思うけどね
251デフォルトの名無しさん:2013/12/16(月) 19:33:54.78
ageて書くようなことか
252デフォルトの名無しさん:2013/12/16(月) 19:35:38.16
>>240
その批判はBindingが内部的に(長い)ループの中でプロパティを操作しているのでなければ成立しない。
馬鹿じゃないの。
253デフォルトの名無しさん:2013/12/16(月) 19:35:43.47
ビューン
254デフォルトの名無しさん:2013/12/16(月) 19:51:06.09
Viewを薄くするのはいいが、
それを実現するために、薄くした以上にViewModelが肥大化したら意味がない。

ViewとViewModel、どちらに書けばシンプルで短いコードになるか考え、
適切な方を選べばよい。

何も考えずに「コードビハインド無しで実装できた!」とか喜んでるのは・・・
目的と手段が入れ代わってると思うね。
255デフォルトの名無しさん:2013/12/16(月) 19:54:13.19
目的と手段が入れ替わると・・・楽しい!
256デフォルトの名無しさん:2013/12/16(月) 20:00:24.00
だよな!趣味ってそういうことだよな!
257デフォルトの名無しさん:2013/12/16(月) 20:53:10.69
>>254
ViewModel使う目的は関心ごとの分離とユニットテスタビリティだろうからそれ行けるならファットになるのもいいとは思うけど。適当に分離すればいいし。
けどコードビハインド避けてViewを薄くするためにファット化するとかだったら意味ないのは同意。好きにコードビハインド書け。
大事なのはテストされたVMの挙動を単純に表示に変えるぐらいの薄さになってればいい。
258デフォルトの名無しさん:2013/12/20(金) 21:27:32.98
.NET4.5のDataGridについてなんですが
検証処理するとき以下のようにValidatesOnDataErrors=Trueにして、チェックはIDataErrorInfoで行うようにしました

<DataGridTextColumn Binding="{Binding Data1,ValidatesOnDataErrors=True,NotifyOnValidationError=True}"/>

そうするとエラーが解消されてもValidation.Errorsにエラーが1個残ったままになるんですが
これ使い方間違ってますか?
259デフォルトの名無しさん:2013/12/20(金) 21:56:30.05
>>258
エラーを解消した後、IDataErrorInfo.this[columnName] が呼ばれてるかチェックしてみれば?
Binding 経由でプロパティを変更した場合は勝手に呼んでくれるけど、
それ以外から変更した場合は INotifyPropertyChanged も実装して、エラーが解消したプロパティを通知せんとダメよ。
260デフォルトの名無しさん:2013/12/20(金) 23:00:58.51
>>259
ありがとうございます。
エラー解消後に何も入力してなければIDataErrorInfoは呼ばれてません
Binding経由以外ではプロパティは弄ってないんです。どうも変な動きしてるんで他のコードは全部削除してみました
試しにValidation.AddErrorHandlerを使ってエラーのAdd/Removeを見てみたところ
Addが3回、Removeが2回みたいにRemoveされる回数が少ない、何を言ってるのかわからねーと思うが俺も何をされてるのかわからなかった状態です

後、妙な動きがもう一つ。
DataGridTextColumnのValidationRulesとかConverter例外とかでエラーが発生した場合は他のセルに移動できませんよね
これがIDataErrorInfoでエラーを起こした場合は他のセルに移動できてしまう、これは仕様なんだろうか、なんか統一性ない
261デフォルトの名無しさん:2013/12/21(土) 00:22:07.78
>>260
IDataErrorInfo が呼ばれてないのは、エラー要因のインスタンスと、エラー元のインスタンスが別とかじゃない?
Binding 経由で呼ばれるのは入力先のインスタンスだけだから。
INotifyPropertyChanged を実装して、エラー解消時に更新を通知してやれば消えるはず。やってみては?

あと、後半のは意図した仕様だよ。
例外やコンバートに失敗した場合だと、Binding 先のモデルへの set に失敗している→エラー対応はビュー側の責任
IDataErrorInfo の場合は set は成功している→エラー対応はモデル側の責任
262デフォルトの名無しさん:2013/12/21(土) 11:16:34.22
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100*" /> ←「1つ目」とします
<ColumnDefinition Width="100*" /> ←「2つ目」とします
<ColumnDefinition Width="200*" /> ←「3つ目」とします
</Grid.ColumnDefinitions>

としてGridを配置しており、
親のWindowの ResizeMode プロパティを CanResize にしています。
親WindowのMinWidthは400です。

このときにウィンドウを横に広げると
1:1:2 の比率で広がっていきますが、以下の動作にする方法が
ありましたらご教授願えますでしょうか。

・ウィンドウ(初期値の横幅400px)を横に広げていったとき、
  1つ目:120px
  2つ目:120px
まで広がった場合は、上記のpxで幅が固定され、
それ以上にウィンドウの横幅を広げた場合は
3つ目のみ広がっていく、ということをやりたいです。
よろしくお願いします。
263262:2013/12/21(土) 11:19:21.90
うわぁぁ、すみません。
ColumnDefinition に MaxWidth プロパティがありました。。。
264デフォルトの名無しさん:2013/12/21(土) 16:41:49.30
Global Hookしたキーコードを書き換えられないようで、SendInputも調べましたがどうも難し過ぎて手がでません
LL APIだと難し過ぎるんで素直にWPFコントロールを継承してイベントをoverrideしてるんですが、今度はbaseに渡すKeyEventArgsがReadOnlyとかなんなんですかこれ、嫌がらせですか・・・
なのでKeyEventArgsインスタンス生成時にKeyを渡せたので安心したら今度はbaseに渡すにはRoutedEventArgsがほにゃららとかマジ糞すぎて泣きそうです
KeyDownで押されたキーを渡さずに指定のキーを渡す方法を知っていましたら教えてください
265デフォルトの名無しさん:2013/12/21(土) 16:54:55.50
> SendInputも調べましたがどうも難し過ぎて手がでません
とか言ってないで基礎から勉強しなおせ。

SendInputは簡単な方だぞ。
もっともっと難しい方法ならあるが、それ以上簡単な方法なんて無いって。
266デフォルトの名無しさん:2013/12/21(土) 16:56:06.72
あっち書いてこっち書いて全部レス返し無しとかなに考えてんの
267デフォルトの名無しさん:2013/12/21(土) 16:56:57.54
場当たり的にやってるからしょうがないね
268デフォルトの名無しさん:2013/12/21(土) 16:57:28.80
そりゃあ糞人間だな
269デフォルトの名無しさん:2013/12/21(土) 18:48:00.66
解決しました
実装書ける人が一人もいませんでしたね
さようなら糞PGさんたち^^
270デフォルトの名無しさん:2013/12/21(土) 18:52:20.83
今は、これが、精一杯
271デフォルトの名無しさん:2013/12/21(土) 19:27:52.48
期待する方が間違ってる
272デフォルトの名無しさん:2013/12/22(日) 18:11:22.89
適切な学習方法がわからん
2年触ってるけど学習効率が極端に悪い
273デフォルトの名無しさん:2013/12/22(日) 18:13:05.83
バインドの種類が多すぎて使い分けがわからん
XAMLに色々手を入れすぎて失敗してる気がする
274デフォルトの名無しさん:2013/12/22(日) 18:14:01.65
普通のバインドとマルチバインドの2種だろ
275デフォルトの名無しさん:2013/12/22(日) 19:13:45.83
XMLってのがそもそも筋が悪いんだよな
Jsonと違って定義が厳密すぎるんだよ
HTMLもそうだがマークアップなんてゴミだよ
しかもStyleやTemplateやResourceがJsやCSSと違ってめちゃめちゃ面倒くさくてどうしようもない
どうせならJs+HTML+CSSでStoreだけじゃなくデスクトップもウェブも統一したらええねん
276デフォルトの名無しさん:2013/12/22(日) 19:15:40.23
ValidationRulesもマークアップ拡張に書けるようにしてくれれば、後は特に不満もない
277デフォルトの名無しさん:2013/12/22(日) 19:17:16.97
定義が厳密なのはエディターとの親和性を考慮したんだと思うが
Blendが全く普及しなかったからね・・・
278デフォルトの名無しさん:2013/12/22(日) 19:38:46.82
>>277
使いこなせてないが、MSの人が使ってるの見て使えればかなり生産性高いのは分かった。
279デフォルトの名無しさん:2013/12/22(日) 19:40:59.41
HTML+CSSはHTMLのフロードキュメントをCSSで魔改造しているだけだからレイアウトエンジンとして筋が悪い
280デフォルトの名無しさん:2013/12/22(日) 19:44:45.42
そもそもBlendって単語が久しぶりに出た気がする
一つ前は>>57か・・・
281デフォルトの名無しさん:2013/12/23(月) 00:58:17.09
流れぶった切って悪いんだが、ちょっと相談に乗ってくれ

DataTemplate使った画面遷移してるんだが、画面遷移を繰り返すと、
繰り返す度にViewが生成される関係でViewに紐づいたTriggerActionが
暴発するんだ

どうやら、
1:View1とView2が交互に入れ替わるとき、View1orView2内にItemsControlで
View3が表示される
2:View3にはActionTriggerが書かれている
って言う条件下で発生するっぽいんだが、解決方法がわからん

誰か分かる奴居たら頼む

最少再現コードというか、再現プロジェクトは↓
www1.axfc.net/u/3122746?key=wpf
282デフォルトの名無しさん:2013/12/23(月) 06:42:43.74
気持ち悪いノリだな。
283デフォルトの名無しさん:2013/12/23(月) 10:45:54.77
よくこんなノリで書き込むよな。
誰も解決に協力しないだろこんなんじゃ。

(別にそれでもかまわねーぜ!であるなら、そもそも書き込むなよと思うし)
284デフォルトの名無しさん:2013/12/23(月) 11:25:22.90
>>281
InteractionRequestTrigger より ViewModel のほうが生存期間が長いから、
ViewModel の InteractionRequest に古い InteractionRequestTrigger からの参照が残ったままになってる。
(古い参照が削除されないまま、新しい View が作成される度に、イベントへの参照が追加されてる)。

解決には ItemView.Unloaded で DataContext = null しておけば良い。
285デフォルトの名無しさん:2013/12/23(月) 12:31:48.55
>>284
ホントありがとう

>>282
>>283
すまんな。このスレの空気読み切れてなかったわ。
286デフォルトの名無しさん:2013/12/23(月) 12:32:26.31
いやそもそも喧嘩腰な方が悪いから
287デフォルトの名無しさん:2013/12/23(月) 14:21:46.69
喧嘩腰…?
288デフォルトの名無しさん:2013/12/23(月) 18:54:14.52
このスレで一番喧嘩腰のレスは>>2
289デフォルトの名無しさん:2013/12/24(火) 17:09:41.78
リソースディクショナリって入れ子出来ない?

コントロール1つ配置してControlTemplate と Style の2つの辞書つくって
ControlTemplate辞書からStyle辞書のリソース見るようにして
コントロールにControlTemplate反映させたんだけど
Styleの内容が反映されないんだよね。

ControlTemplate辞書内に<ResourceDictionary x:key="hoge" Source="style.xaml">
なんて記載してみてもだめ。
ControlTemplate と Style を1つの辞書に書くと問題ない。

Blendにコード生成させたのに「解決できません(キリッ」てなるwww
290デフォルトの名無しさん:2013/12/24(火) 17:13:39.50
ResourceDictionary の入れ子は不可。ResourceDictionary.MergedDictionaries 使ってマージする。
291デフォルトの名無しさん:2013/12/24(火) 17:45:09.40
要は結果的に辞書は1つじゃなきゃアカンてことな。外部参照はマージしなきゃ見えない。
292デフォルトの名無しさん:2013/12/24(火) 18:19:02.18
>>290
入れ子不可、理解しました。

でもマージにして複数に分けてみたけど
「解決できません」が復活。

もちょっと触ってみます。
293デフォルトの名無しさん:2013/12/24(火) 18:44:08.04
>>292
<Window.Resources>内で辞書定義してたけど
App.xamlの<Application.Resources>内で定義するようにしたら
エラー・警告もなくできました。

<Window.Resources>に置いていても
Blendの「プロパティ->ローカルリソース」からは
辞書内のリーソスが見えてたので認識してるもんだと思ってました。

勉強代に20時間くらい払ってしまった。

>>290-291 ありがとうございました。
294デフォルトの名無しさん:2013/12/25(水) 01:36:01.33
>>293
プロジェクト直下に"Themes"フォルダ作ってその中に"Generic.xaml"っていう名前のリソースディクショナリを置いて、その中でマージするっていう手もあるぞ。

1アプリ=1プロジェクトならApp.xamlでもいいけど、もしスタイル適用対象のコントロールを別アセンブリ(DLL)に置くなら、
そのApp.xamlでマージできないし、"App.xaml"っていう名前のリソースディクショナリを置いても反応しないので、
そのときはこっちの方法しかない。

注意すべきはフォルダ名、ファイル名が固定だということ。
別の名前にしても反応しないから注意。

もしVSがPro以上なら「カスタムコントロール」プロジェクトを新規作成してみて。
プロジェクト直下に/Themes/Generic.xamlっていうリソースディレクトリがデフォで配置されてるから。
295デフォルトの名無しさん:2013/12/26(木) 00:05:01.38
ResourceDictionaryって何に使うの?
DataContextだけじゃダメなのか
なんかWPFの壁=Xamlなんだよね
ついついC#で全部書いちゃう
カスタムコントロールもx:nameにしないとエラーとかイミフだし
XamlもっとわかりやすくしてよM$
296デフォルトの名無しさん:2013/12/26(木) 00:19:47.02
XAMLはWPFの壁というよりは基本中の基本
297デフォルトの名無しさん:2013/12/26(木) 00:31:59.06
>>295
ResourceDictionaryを使うとローカライズするとき楽になる
Window複数使っててスタイル共通にしようと思ったらResourceDictionary使うしかないし
DataContextにスタイルやControlTemplateとか持てないでしょ、いや持てるけどやらないでしょ
・・・普通に使ってるよ
298デフォルトの名無しさん:2013/12/26(木) 00:47:24.11
コードビハインドからCommand.CanExecuteを見に行ってもいいよね?
極力シンプルにおいしいとこだけ使うようにしないとチームから批判くらいそう
299デフォルトの名無しさん:2013/12/26(木) 00:52:35.63
それならVMでコマンド用意する意味ない気がするけどね。
コマンドじゃなくて直接モデルのプロパティを見ればいいわけで。
300デフォルトの名無しさん:2013/12/26(木) 03:04:25.42
>>295
「DataContextだけでスタイル設定まで済ます」っていうのは、
Webでいうところの「HTMLの各タグにいちいちStyles属性でスタイル設定する」だと思うんだ。
データの内容に依存しないスタイルならWebでいうところのCSS、
つまりリソースディクショナリのStyleTemplateに設定したほうがいいよね。
もちろんリソースディクショナリを使わずに、View内の各コントロールのStyleTemplateを設定してもいいけど。
・・・どちらにしてもxamlは必要だけどね。

>>298
OKだと思うよ。
そのCommandをバインドしていないButtonの使用可否制御とかに使えるね。
俺ならCanExecuteの元メソッドの返り値をbool型プロパティにしてバインドするけど。
ただCommand.Execute()を生で叩くときは必ずCommand.CanExecute()で検証しないとね。
301デフォルトの名無しさん:2013/12/26(木) 07:45:38.18
普通にVMのメソッドを呼べばいい話だな
OOPの作法的にはそれを呼び出そうとする側で実行できるかチェックするのもやめて
チェックはそのメソッド内でやったほうがいい
302デフォルトの名無しさん:2013/12/26(木) 12:42:55.37
というか無造作に必ずCommand.CanExecute()で検証とか言うアホの存在が
レースコンディションで落ちるアプリを生む元なんだろうな
if (cmd.CanExecute()) cmd.Execute();の条件判断と実行の間でコンテキストスイッチが発生して
状況変わることなんていくらでもあるだろうに
303デフォルトの名無しさん:2013/12/26(木) 12:53:08.38
というかその間に別スレッドから状態変更が起きる可能性があり、かつその際に落ちる可能性のあるようなプログラム書いてんじゃねーよ
304デフォルトの名無しさん:2013/12/26(木) 13:08:01.03
それって別にCanExecuteに限った話じゃないし、
実行可否の判断ができないってことじゃねーか。どんな糞な作りしてんだよw
305デフォルトの名無しさん:2013/12/26(木) 13:36:44.09
だからCanExecuteはそもそもUI上のグレーアウト表示とかの判断にだけ使うもの
Execute呼んでいいかどうかの判断に使ってはいけない
306デフォルトの名無しさん:2013/12/26(木) 14:17:00.64
リソースディクショナリの話があったので
拾い物グラデーション辞書でも作るかと思ってググったら
geekswithblogs.net/Silverlight2/archive/2008/10/21/more-xaml-gradients.aspx
ここくらいしか見つけられんかった。

ExpressionBlendだとphotoshopのgrdファイル読み込むプラグインあるらしい。
307デフォルトの名無しさん:2013/12/26(木) 19:29:03.94
コードビハインドで確認しようがXAMLで確認しようがUIスレッド上で動くだけだろ
安全性についての明確な違いなんてあるの?
308デフォルトの名無しさん:2013/12/26(木) 21:51:50.83
>>307
だからそもそもCanExecuteで安全性チェックしちゃダメだって話なんだが(´・ω・`)
309デフォルトの名無しさん:2013/12/26(木) 22:03:37.46
>>302
「ICommandの設計思想が糞」まで読んだ。

ってか、CanExecuteでの検証OK→Executeの実行の間では、
Execute実行の安全性は確保されるのが前提だろうに。

(おそらく)CommandManagerのほうもそれで動いてるんだろうし。
310デフォルトの名無しさん:2013/12/26(木) 22:15:14.07
>>309
マルチスレッドのプログラムやったことあるのか?
311デフォルトの名無しさん:2013/12/26(木) 22:17:36.66
専用に何らかのフレームワークでも準備しない限りそんなの無理だろ
312デフォルトの名無しさん:2013/12/26(木) 22:19:40.73
もともとICommandなんてざっくりしてるのにそんなもん要求スンナ
WPFはどのタイミングでCanExecuteチェックしてるかも知らないんだろ
313デフォルトの名無しさん:2013/12/26(木) 22:21:16.76
何の話をしてるのかよく分からんが、とりあえず>>309の話は正しいよ。
最後の行は何言ってるのか分からんが。

というか、Executeは基本、UIスレッドからであればいつ呼ばれても大丈夫(実際に処理を実行するかは
別として)なように実装しないとまずいんじゃないの?
314デフォルトの名無しさん:2013/12/26(木) 22:24:54.70
CanExecuteはGUI様に簡易で用意されてる物
実際の実行可否は日帳に応じてExecute内でチェックするもの
315デフォルトの名無しさん:2013/12/26(木) 22:26:12.27
タイプボロボロ

CanExecuteはGUI用に簡易で用意されてる物
実際の実行可否は必要に応じてExecute内でチェックするもの
316デフォルトの名無しさん:2013/12/26(木) 22:27:38.08
非同期処理がガンガン書き換えるようなプロパティをバインドすんなが正解だろ
コードビハインドでCanExcecute云々と全く関係ない話
317デフォルトの名無しさん:2013/12/26(木) 22:28:12.75
>>310
マルチスレッドの各スレッドで同じExecuteを呼ぶのがそもそも間違ってると思う。
そのマルチスレッドそのものをラップしたExecuteを用意して、そのためのCanExecute、Commandを用意すべきでは?
318デフォルトの名無しさん:2013/12/26(木) 22:29:33.83
俺の移ったのかタイプがボロボロw

CanExecuteなんてどれを参照してるかわからないのにどれをロックするんだ?
だからマルチスレッドプログラムをやったことないんだろと言った
319デフォルトの名無しさん:2013/12/26(木) 22:30:56.98
CanExecuteなんて1秒間も何度も呼ばれてるのにExecute実行まで何をロックするんだ?
答えてみ?
320デフォルトの名無しさん:2013/12/26(木) 22:31:03.93
STAThread属性なUIスレッドは逐次処理だっての
321デフォルトの名無しさん:2013/12/26(木) 22:35:16.30
Icommand自体はWPFのバインドとは何のかかわりもない

CanExecuteが何を元に判定しているかなんてWPFは知らない

しょうがないから適当なタイミングでWPFがCanExecute呼んで画面に反映してるだけるだけ
何度呼ばれているかカウントして表示してみたらいい
知らん奴は驚く
322デフォルトの名無しさん:2013/12/26(木) 22:37:29.51
的外れな内容でコーディングするよりコマンド使わないほうがいい
323デフォルトの名無しさん:2013/12/26(木) 22:39:23.85
こいつUIスレッドが複数あるとでも思ってるのか
324デフォルトの名無しさん:2013/12/26(木) 22:42:00.80
いつになったらUIスレッドと無関係だと理解するんだ?

CanExecuteで判断する内容はMに依存していたとして
コマンドからはMの更新を知ることができない

だからWPFはInotify使えないで地味にCanExecuteを適当に実行してる
325デフォルトの名無しさん:2013/12/26(木) 22:43:59.93
ワーカースレッドが裏でプロパティ書き換えない限り不都合なんてないだろ
326デフォルトの名無しさん:2013/12/26(木) 23:16:42.43
ワーカースレッドでCanExecuteが変更されるなら、
CanExecuteChangedもワーカースレッドで呼び出されなければならない。

だが、UIスレッド以外からCanExecuteChangedを呼んで良い、という仕様は文章化されていない。

よって、この動作は不正。
CanExecuteの変更をUIスレッドにマーシャリングしてやる必要がある。

何が言いたいかっていうと、マルチスレッドkが〜とか言ってる奴が
一番マルチスレッドを理解していないって事だ。
327デフォルトの名無しさん:2013/12/26(木) 23:24:55.85
低レベル過ぎて泣ける
相手にして損した

ugayaでもかずきでも好きな奴に相手してもらえ
鼻で笑われるだけ
328デフォルトの名無しさん:2013/12/26(木) 23:27:20.07
> コマンドからはMの更新を知ることができない
知ることはできない、じゃねーよ。
お前が更新を通知する実装をさぼってるだけだろ。

可能なら通知を実装する、
通知がどうしても不可能なら、
CanExecuteは常にtrueにしておき、
Executeでは何も実行しないこともありうる、って仕様にすべき。
329デフォルトの名無しさん:2013/12/26(木) 23:28:31.35
かずきはともかく、ugayaとかスレッドがわかってるつもりで
全然わかってない奴の代表格じゃねーか。
330デフォルトの名無しさん:2013/12/26(木) 23:47:15.40
>>328
つか、ControlTemplateでしっかりグレーにするのが面倒になって、ついそういう仕様にしたりする
331デフォルトの名無しさん:2013/12/26(木) 23:53:26.46
見た目の事?

だったら、無効状態だと透明度を0.4位にするってのが簡単なのでよく使ってる。
332デフォルトの名無しさん:2013/12/27(金) 00:00:08.19
最近はどうでもよくなってUIのロックしなくなった
333デフォルトの名無しさん:2013/12/27(金) 00:00:45.35
>>331
おお、そんなてぬ×素晴らしい方法があるとは
使わさせてもらいます
334デフォルトの名無しさん:2013/12/27(金) 00:01:29.02
てぬ×って何!?
335デフォルトの名無しさん:2013/12/27(金) 00:02:12.97
手抜き
336デフォルトの名無しさん:2013/12/27(金) 00:11:32.61
無効にするんじゃなくて、○○という理由で処理を実行できません、ってメッセージを出す方が親切だよね
337デフォルトの名無しさん:2013/12/27(金) 00:57:31.84
>>336
手抜きに独された意見かもしれないけど
ユーザーは半透明は使えないって学習してくれる
見て無効かわかるし見えないよりは親切だと思う
338デフォルトの名無しさん:2013/12/27(金) 01:00:35.85
てぬx誕生の瞬間を見た。
339デフォルトの名無しさん:2013/12/27(金) 04:39:41.44
手で抜いてもらうことか
340デフォルトの名無しさん:2013/12/27(金) 04:44:15.78
流行らないし流行らせない
341デフォルトの名無しさん:2013/12/28(土) 07:23:34.04
XAML/WPF悪く無いとは思うんだけどねぇ…
なんかスタイルが気に入らんのだなぁ…
かといってWinFormsのバインディングも糞だし…

結局どっちがいいの?
342デフォルトの名無しさん:2013/12/28(土) 09:24:24.36
急にLivetつかったWindowがエラー出るようになったんだけど原因分かりませんか。
メインWindowは正常に表示されるが、他のWindowを表示しようとすると例外が発生します。(デザイン時は問題ない)

メッセージ:
型 'LivetCallMethodAction' のインスタンスを型 'TriggerActionCollection' のコレクションに追加することはできません。型 'T' の項目のみが許可されます。

スタックトレース:
場所 System.Windows.FreezableCollection`1.Cast(Object value)
場所 System.Windows.FreezableCollection`1.System.Collections.IList.Add(Object value)
場所 System.Xaml.Schema.XamlTypeInvoker.AddToCollection(Object instance, Object item)
場所 MS.Internal.Xaml.Runtime.ClrObjectRuntime.Add(Object collection, XamlType collectionType, Object value, XamlType valueXamlType)
343342:2013/12/28(土) 12:17:57.80
理由はよく分からないけど原因のコードは分かった
Livetを参照しているdllをAssembly.LoadFrom()で読んでると
Livetを利用している他のWindowを表示すると例外が発生する
何これ
344デフォルトの名無しさん:2013/12/28(土) 12:34:20.19
複数のLivetが混ざってるんじゃないの
DLL1とDLL2の両方で別々にLivetのソースを含めたりしてないか?
もしそうならLivetを除去してLivetだけ別のDLLとしてコンパイルしてそれを参照する
っていうかLivetなんか使うな
345デフォルトの名無しさん:2013/12/28(土) 13:05:34.61
そもそも尾上のLivetが絶賛される出来ならM$がヘッドハントするだろ
ソーシャルゲーなんて作ってる会社にいるってことはまぁそういうことだろ
346342:2013/12/28(土) 13:07:41.04
>>344
あー。
そうみたいです。
loadするdllは別フォルダにあって、そこにもlivet.dllがあったのが問題でした。
つかっちゃだめですか。
お騒がせしました。
347デフォルトの名無しさん:2013/12/28(土) 13:08:41.69
linuxを作ったライナスは今どこの会社にいるんだっけ?
348デフォルトの名無しさん:2013/12/28(土) 13:11:07.52
敷居の高さからかそもそも話題が少ない中で
広報活動してくれた子らが注目を集めちゃっただけ
349デフォルトの名無しさん:2013/12/28(土) 14:17:11.22
なんか過去ログ見ると1年以上前から尾上に粘着してるのが何人かいるみたいだけど、
こういう奴って自分が他人からどう見えるのか想像できないのかね。

馬鹿じゃなかろうかと思うんだが。
350デフォルトの名無しさん:2013/12/28(土) 14:25:36.99
想像できないからやってるんだろうと想像できない人もレベルとしては大差あらへんよ
351デフォルトの名無しさん:2013/12/28(土) 14:29:41.48
想像できないからやってるんだろうと想像できないのではなく、
皮肉を言っているんだよ。通じなかったかな?

皮肉を理解するには高度な知的水準が必要だというし、仕方ないか。
352デフォルトの名無しさん:2013/12/28(土) 14:34:09.91
Livetみたいなのって分かってる人が下の何も分かってない連中に使わせるもんで、
分からなかったら分かってる人にすぐ聞ける環境でないと意味ないんだよな
外野がソースだけ持ってきて>>344みたいに問題解決しながら使えるんなら
そもそも別に必要ない
353デフォルトの名無しさん:2013/12/28(土) 14:34:11.19
お前349と別人だろ
似てない
釣りならもっと上手くやろうや
354デフォルトの名無しさん:2013/12/28(土) 16:01:15.78
少なくともGoogleやM$でバリバリ開発してる人はこのスレにこないことは確かだな
355デフォルトの名無しさん:2013/12/28(土) 20:34:08.83
MSはともかくとして、
GoogleってそもそもWPF使ってる製品あんの?
356デフォルトの名無しさん:2013/12/30(月) 09:35:41.22
xamlでのレイアウトについて質問です。
今、<StackPanel></StackPanel>の中に、
<Grid></Grid>を4つ配置しています。

各Gridは Hright = Auto、 VerticalAlignment = Stretch
としているのですが、
一番下(4つ目)のGridの高さをStackPanelの下いっぱいまで
の高さにしたいです。
AA崩れるかもしれませんが、以下のようにしたいです。

|StackPanel-------------┐
| ┌Grid1 -------------┐|
| └------------------┘|
| ┌Grid2 -------------┐|
| └------------------┘|
| ┌Grid3 -------------┐|
| └------------------┘|
| ┌Grid4 -------------┐|
| | | |
| | | |
| | | |
| | | |
| | | |
| └------------------┘|
└--------------------┘

また、Grid1〜3はVisibilityをCollapsedにする
ことも考えており、その場合でもGrid4はStackPanelの
高さいっぱいまで伸びて欲しいです。
どう記述すれば良いでしょうか?よろしくお願いします。
357デフォルトの名無しさん:2013/12/30(月) 09:37:36.75
DockPanelかGridでやれ
358デフォルトの名無しさん:2013/12/30(月) 10:39:15.45
>>356
なんでStackPanelでやんのよ
359デフォルトの名無しさん:2013/12/30(月) 11:00:08.94
試したけどこんな感じで行けると思う
dock
 stack top
  grid
  grid
 grid bottom
360デフォルトの名無しさん:2013/12/30(月) 11:37:15.96
>>359
stack要らないと思うよ
361デフォルトの名無しさん:2013/12/30(月) 11:44:00.17
あとBottomもいらん
362デフォルトの名無しさん:2013/12/30(月) 11:46:26.29
追加削除変更が楽だから使ってんだと思って残した
数量固定なら言われてるとおりイラン
363356:2013/12/30(月) 11:51:30.07
>>357-361
ありがとうございます。
例えばGrid2をCollapseにしたときに
Grid1のすぐ下にGrid3が来るように
(Grid2以降の位置が上にずれる)
する方法を調べたらStackPanelを使う方法が
見つかったので、それで実装しようと
頑張っていました。

今は出先なので、帰宅してから
DockPanelで調べ直してみます。
ありがとうございました。
364356:2013/12/30(月) 11:52:27.03
>>362
意図を汲み取っていただきありがとうございます。
提示していただいたやり方でやってみます。
365デフォルトの名無しさん:2013/12/30(月) 12:00:33.81
考えてみたら一般的な使い方だと上手くいかない
撤回する
366デフォルトの名無しさん:2013/12/30(月) 15:24:59.60
そういやRowDefinitionのHeightをVMから弄ったらうまく動かなかったんだが
同じコードをコードビハインドから動かしたら正常動作した
アレは何だったんだろうな?
367356:2013/12/30(月) 17:22:43.03
DockPanelとGridのみで出来ました。
ありがとうございます。
368デフォルトの名無しさん:2014/01/03(金) 21:28:41.04
Resoures.resxで文字列リソース
TEXT_A = "項目"
TEXT_B = ":"

というリソースを定義しているのですが、
TEXT_C を定義するときに
TEXT_AとTEXT_Bを参照することは可能でしょうか?

やりたいこととしては、
xamlで
<Label Content="{Binding Source={StaticResource resources}, Path=TEXT_C" />
と書きたいです。

C#のコードでTEXT_A + TEXT_B を設定することも出来ますが、
xamlで一発で書けたら良いと思っています。
よろしくお願いします。
369デフォルトの名無しさん:2014/01/03(金) 21:36:27.70
Binding.StringFormatでいいんじゃね
370デフォルトの名無しさん:2014/01/03(金) 21:38:55.33
単純に2つTextBlockを並べたらいい
Labelが使いたいんならLabel-StackPanel(Horizontal)-TextBlock×2
371368:2014/01/03(金) 21:50:05.95
>>369-370
ありがとうございます。
まだまだ偏った考えしかできていなかったようです。
非常に勉強になりました。

(今回は>>370さんの方法で書きました)
372デフォルトの名無しさん:2014/01/04(土) 02:59:15.59
そんなことで良かったんかいw
リソースに設定するくらいだから複数個所から使いまわすのかと思った
373デフォルトの名無しさん:2014/01/04(土) 07:53:45.69
TEXT_AとBは複数箇所で使い回しているのですが
その流れでCもリソース化しようとしていました。
374デフォルトの名無しさん:2014/01/06(月) 05:41:01.64
そもそも文字列をリソースにしてそこにバインドする必要あるの?
VMに文字列型のプロパティ持たせてそこにバインドする方がよほど簡単だと思うけど
375デフォルトの名無しさん:2014/01/06(月) 21:42:08.37
いい加減Xaml捨ててHTML5にするか別のInterface Builder作って欲しいなー
XMLってのが筋悪いんだよな、何故XHTMLが人気でないでHTML5が人気出たかって簡潔で扱い易いからだよ
SGMLをスーパーセットに派生してもXMLやXHTMLはDTDが厳格すぎんだよね、ぶっちゃけ非常に扱い辛い
Xamlも扱いが非常に面倒くさい、未だにWinFormsの人気が衰えないのは化石PGが○○とか関係ないよ
376デフォルトの名無しさん:2014/01/07(火) 00:09:56.64
というよりも投資する価値に懐疑的というか。
MSもSurfaceだったり電話だったりでプラットフォーム広げるのに頑張ってはいるんだが…
377デフォルトの名無しさん:2014/01/07(火) 00:16:25.43
ぶっちゃけwinformである程度のことができるからな
新しいものに移行する必要がまったくないんだわ
OS側でサポートしなくならない限り亡くならないよ
378デフォルトの名無しさん:2014/01/07(火) 00:30:24.52
wpfでも、winformでできることをやるなら大して面倒でもないしややこしくもない
挫折しそうな人は、グリッドやパネルのレイアウトだけ勉強して、イベントドリブンで組めばいいのにな
379デフォルトの名無しさん:2014/01/07(火) 01:06:50.63
MVVMもイベントドリブンです
380デフォルトの名無しさん:2014/01/07(火) 19:28:33.63
データドリブンじゃなかったの?
381デフォルトの名無しさん:2014/01/07(火) 23:17:08.16
ユーザーの入力はコマンドだから実質イベントだし
モデルからMVVMへの通知もイベントで受けるんだから
一般的にイベントドリブン型と呼ばれる所以の部分はMVVMだからって特に変わりはないよ
MSが宣伝文句としてたまに使ってるデータドリブンってのはデータが中心のアプリという程度の意味で
イベントドリブンと対立するものじゃない
382デフォルトの名無しさん:2014/01/08(水) 04:29:06.95
そもそもイベントドリブンって対話的プログラムって意味だろ
だったら現代のプログラムでイベントドリブンじゃないモノなんて存在しないだろ
383デフォルトの名無しさん:2014/01/08(水) 04:35:19.53
そのHTML5にしてもデザインやレイアウトはCSSに完全に依存
ドメインロジックやアニメーション等の動的な要素はDOMやJavaScriptに完全に依存
実際にマークアップは要素や属性の定義だけの最小限だしね
その点XAMLは可読性の著しく低いマークアップでずらずら定義されるから筋悪いってのは同意
XMLとJSON比較してもJSONが人気なのは簡単で書き易いからだろうし
384デフォルトの名無しさん:2014/01/08(水) 04:40:33.44
378かが言いたいのは、VMとか用意せずにVだけで
<Button Click="○○"> みたいな感じで
Vのコードビハインドで直接処理書いちゃうみたいなので
全部済ませちまえってことだろ
それだとWPF使う意味あまりないけどw
385デフォルトの名無しさん:2014/01/08(水) 05:01:00.08
意味ないっていうか絶対にフィージビリティは低いよね
386デフォルトの名無しさん:2014/01/08(水) 10:10:11.11
>>383
そこまでXAMLのアニメーションとか筋悪いかね。
コードビハインド一切不許可だとどうかとかは思うけど適度に織り交ぜていいならロジックも結構宣言的にかけていいと思うんだがなぁ
といっても綺麗にかけるようになるまでの敷居がはるかに高いのは否定しないけど。自分も未だによく分からん(´・ω・`) 
387デフォルトの名無しさん:2014/01/08(水) 11:35:38.97
MVVMの有用性をWPFの利点として挙げるとして、
そもそもMVVMを実現する為にPrismやLivet等のフレームワークがほぼ必須な時点でおかしな話。
388デフォルトの名無しさん:2014/01/08(水) 11:59:21.47
誰も有用性なんか言ってなくね…?w
便宜上V、VMとかいう単語は出てるけど、ただのデータソースとxaml だと思えばいい。
良いとこは使えばいい的な。
389デフォルトの名無しさん:2014/01/08(水) 12:35:49.98
最近WPFの勉強を始めたんだけど、
例えば数万件のPointデータを元に絵を描画する場合でも
データバインディングを使ったほうがいいの?

まだデータバインディングってのがよく分かってなくて、
XAMLで記述するってのがすごい違和感あるんだけど。
390デフォルトの名無しさん:2014/01/08(水) 12:50:04.69
office の差し込み印刷みたいなもんだと思えばいいw
マーキングしてある部分に値が自動的に突っ込まれる。基本はそんだけ。
まぁ処理もバインドできるけどな。値の整形とかも。

つーか、一通り勉強した方がいい。依存関係プロパティとは!?レベルから
391デフォルトの名無しさん:2014/01/08(水) 13:13:14.01
>>389
残念ならが、数万件のデータを扱えるほどWPFの性能は良くない。

最低でも、バックグラウンドでレンダリングし、レンダリング済みの画像を
Bindingするデータとする必要がある。

リアルタイムで更新したいと思ったら、Bindingを使用しない生のWPFでも不十分で
DirectXと連携する必要がある。
392デフォルトの名無しさん:2014/01/08(水) 16:22:21.73
昔なんかの記事でWPFアプリケーションは高DPIに完全に対応してるから拡大鏡で見るとフォントが最適なスケールでレンダリングされるとかあってへーと思った記憶があるんだけど
今Windows8.1で試してみたらレンダリング済みのフォントを拡大したようにしか見えないんだけどどういうこと?
393デフォルトの名無しさん:2014/01/08(水) 17:25:06.16
TextOptions, RenderOptions, UseLayoutRounding
あたりをいじった上で最適に見えないなら
Windowsのアンチエイリアスがしょぼいってことだろうな
394デフォルトの名無しさん:2014/01/08(水) 19:56:27.58
なんか8から8.1にしたら(恐らく誤動作で)ボケて表示されちゃうアプリが増えた気がする。
395デフォルトの名無しさん:2014/01/08(水) 20:46:31.96
8.1だとなぜだかボケる
396デフォルトの名無しさん:2014/01/08(水) 20:51:25.87
textboxがよくぼける
397デフォルトの名無しさん:2014/01/08(水) 21:15:02.14
・ 拡大鏡で綺麗にレンダリングされない(>>392)
・ Windows8.1でぼける (>>394)
・ TextBoxがぼける(>>396)
は全て別の原因によるものだよ

>>393>>396と少しだけかかわりがあるが、
>>392>>394には全く関係がない
398デフォルトの名無しさん:2014/01/08(水) 22:43:58.62
htmlがアプリケーションのプレゼンテーション言語として優れてるとは到底思えない
399デフォルトの名無しさん:2014/01/08(水) 22:53:29.38
HTMLが劣ってるんじゃない
処理系がクソなんだ
400デフォルトの名無しさん:2014/01/08(水) 23:30:18.70
>>398
別の用途のものをゴニョゴニョ拡張していまにいたってるしね。
401デフォルトの名無しさん:2014/01/09(木) 09:05:51.49
Internetとデスクトップの統合!( ・`ω・´)キリッ
402デフォルトの名無しさん:2014/01/09(木) 11:10:08.27
HTMLは良い
CSS差し替えだけでレイアウトが大幅に変わる

XAMLはそうもいかない
403デフォルトの名無しさん:2014/01/09(木) 11:31:54.43
WPFはPresentationって名前が示す通りビューのフレームワークだからそこで大きなレイアウト変更を吸収する必要性がない
まあリソース使えばなんとでもなるけど
404デフォルトの名無しさん:2014/01/09(木) 12:59:36.47
>>403
意味分からん。
>>402
自分も要素の定義とレイアウト、見た目は分離してた方が良かったんじゃと思う。より分離できるし。
まぁロジック的な要素もあるから難しいかなー
405デフォルトの名無しさん:2014/01/09(木) 13:16:48.66
HTML+CSSって言うけどレイアウト計算の絡むところは全部JavaScriptにやらせるんでしょ?
406デフォルトの名無しさん:2014/01/09(木) 13:21:53.63
WPFの勉強が嫌になってきた。
WinFormとC#で書けばやれることを何でわざわざXAMLで書かないといけないんだ?
407デフォルトの名無しさん:2014/01/09(木) 13:28:16.97
WinFormで出来ないことをやるための練習
408デフォルトの名無しさん:2014/01/09(木) 13:30:57.79
>>406
まぁMSはこれから全部XAMLになるだろうしねぇ
409デフォルトの名無しさん:2014/01/09(木) 13:43:38.15
WPFで作ってるけどXAMLは数行しか書いてない
410デフォルトの名無しさん:2014/01/09(木) 13:47:04.84
WinFormのListViewがバインディングできてればWPFというかXAML系に手を出さなかったかもしれん
411デフォルトの名無しさん:2014/01/09(木) 14:20:14.47
Formに出戻りしてListView仮想モードにしてDrawItemイベント時に
ドット区切りのバインディング取ってくるようにしたわ
昔はCollectionをDataTableに変換してた
412デフォルトの名無しさん:2014/01/09(木) 20:45:05.57
>>408
MS自身がWPF使うときってWPFの原型を留めてないくらいにがっつり独自フレームワーク使うからなあ
というよりWPF自体どっちかというとそういう大袈裟な使い方をするように設計されていて、
GUIのしょぼい業務アプリの類はさっさとHTMLに移行してほしいんだろうな
413デフォルトの名無しさん:2014/01/09(木) 23:51:35.32
低レベルな部分の仕組みは結構イケてるんだよね。
高レベルな部分の作りこみは全然ダメだけど。

高レベルな部分を丁寧な独自実装で置き換えると、
悪い評判だらけのWPFとは思えないような、軽快かつ見栄えの良いアプリも作れる。

手間がかかりすぎるので、使える場面は限られるけど・・・。
414デフォルトの名無しさん:2014/01/10(金) 00:00:24.32
VisualStudioはWPF製だけど、WPFの悪い部分がしっかり改善されてるんだよな。

メニューの挙動のおかしな点もないし、
TreeViewのデザインもかっこいいし。
GridViewもWPF標準の物の違ってまとも。

WPF標準のコントロールもこれくらい品質が良ければ良かったんだが。
415デフォルトの名無しさん:2014/01/10(金) 00:15:38.93
>>401
そういえば、エクスプローラのUIをブラウザと統合して糞使いにくくなったのはどうにかならんかなぁ。
XPまではまだ旧来のUIで使えていたが、7になってどうにもならなくなった。
416デフォルトの名無しさん:2014/01/10(金) 00:19:26.23
いや今のエクスプローラはIEコンポなんか使ってないだろ
ボタンをリンクっぽく描画してたりするだけで普通のWinネイティブなアプリだよ
417デフォルトの名無しさん:2014/01/10(金) 00:44:15.71
>>415
今そんな使いにくいところあったっけ?
普通のエクスプローラとしてしか使ってへんわ
418デフォルトの名無しさん:2014/01/10(金) 00:52:47.28
IE5までの話だねw
しかもWin9x限定w
どこの浦島太郎だよって
419デフォルトの名無しさん:2014/01/10(金) 01:19:00.81
>>417
エクスプローラのウィンドウとフォルダの対応関係が切られて、位置やサイズなどを
覚えてくれなくなったのがかなり不便。
Windows3.1あたりのファイルマネージャに先祖返りしたのかも知れんが。
420デフォルトの名無しさん:2014/01/10(金) 02:33:35.57
>>419
どういう風に覚えてたのか忘れちゃった。すまそ(´・ω・`)
前ほどイミフな自動カラム選択とかフォルダによってビューが変わるってのなくなった?
前より使いやすい気がしてる。
421デフォルトの名無しさん:2014/01/10(金) 04:04:18.77
右側でフォルダ展開すると、左のツリーのアクティブフォルダが
必ず下側の固定位置にいちいちスクロールするのが気に入らん…
下領域空いててスクロールの必要が無いにも関わらずだ。7からなんだが
422デフォルトの名無しさん:2014/01/10(金) 08:35:16.69
>>420
画像フォルダとか音楽フォルダとか勝手にフォルダの種類を判断するやつかな?
あれ、よく判断を間違えるし設定を変更しても忘れてくれるし、確かに意味不明だな。
423デフォルトの名無しさん:2014/01/10(金) 15:58:25.77
サブフォルダーを開いても、ツリービューが追従しなくなったのはどんな理由なんだろうな
使いにくいんですが
424デフォルトの名無しさん:2014/01/10(金) 16:00:53.67
それは設定で変えられる
フォルダオプションのナビゲーションウィンドウ>自動的に現在のフォルダまで展開
デフォルトを変更した理由は分からん
ライブラリみたいな仮想フォルダとの兼ね合いかね
425デフォルトの名無しさん:2014/01/10(金) 20:34:24.47
仮想フォルダよりNASとの兼ね合いかなとも思う
426デフォルトの名無しさん:2014/01/10(金) 20:49:44.10
そんなの関係ないでしょ。
恐らくMSなりにライトユーザーに媚びたつもりなんだろうと思うよ。

たぶん調査の結果、ほとんどのユーザーはフォルダツリーをツリーとしてではなく、
ドライブや仮想フォルダへのショートカットとして使っている、みたいなことになったんでしょ。

で、フォルダを階層を展開しちゃうとその「ショートカット」がクリックしづらくなる、みたいな。

田ミ + E でエクスプローラを表示した時にフォルダツリーにフォーカスが当たってないのもそういう流れだと思う。
使いづらくてしょうがないけど。
427デフォルトの名無しさん:2014/01/11(土) 02:50:05.98
>>422
レジストリで無効にすると勝手に違う種類に変わったりしなくて快適だよ。
428デフォルトの名無しさん:2014/01/11(土) 14:31:47.69
>>418
Win9x限定じゃねーぞ

Win2kもXPもエンジンはIE
XPからはカスタマイズができなくなったというだけ(folder.httは使える)

Vistaから完全独自になって
7からはリストビューすらコモンコントロールじゃなくなった
429デフォルトの名無しさん:2014/01/11(土) 23:08:55.26
C#スレに質問したのですが、
良く考えたらWPFの話なので、こちらで質問させて下さい。

ボタンコントロールが2つと
A.jpg,B.jpg,C.jpgという画像があるとして、
ボタン1にデフォルトでA.jpgを表示し、
ボタン1がクリックされている間はB.jpgを表示し、
ボタン2が押された時に、コードで
ボタンの画像をC.jpgに切り替えたいのですが、
どのように実現するのか、皆目見当が付きません。

言語はC#でもVB.NETでも構いません。

詳しい方、何卒よろしくお願いします。
430デフォルトの名無しさん:2014/01/11(土) 23:14:05.60
xamlでtriggerを使う
431デフォルトの名無しさん:2014/01/11(土) 23:50:22.83
ザッツオール
432デフォルトの名無しさん:2014/01/12(日) 17:21:21.02
トグルボタンってなかったっけ…
433デフォルトの名無しさん:2014/01/12(日) 21:19:57.46
>xamlでtriggerを使う
ご回答ありがとうございます!
triggerというワードで調べて、下記のようなコードで
通常1.png クリック時に2.pngまではできたのですが、
これを分離コード側で3.pngにする方法が解りません。
詳しい方、何卒お教え下さい。

<Button Margin="26,57,0,0" Name="button1" Height="36" VerticalAlignment="Top" HorizontalAlignment="Left" Width="117">
<Button.Template>
<ControlTemplate TargetType="Button">
<Border Name="border" BorderThickness="0" BorderBrush="Transparent">
<Border.Background>
<ImageBrush ImageSource="1.png" />
</Border.Background>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="border" Property="Background" >
<Setter.Value>
<ImageBrush ImageSource="2.png" />
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Button.Template>
</Button>
434デフォルトの名無しさん:2014/01/12(日) 22:06:29.14
ImageBrushに名前を付けたら、分離コードでいじり放題
435デフォルトの名無しさん:2014/01/12(日) 23:00:45.47
>ImageBrushに名前を付けたら、分離コードでいじり放題
ご回答ありがとうございます!
ただ、試してみても、画像が3.pngに切り替わらずダメでした。

下記のようなコードを書いたのですが。。。

BitmapImage image = new BitmapImage();
image.BeginInit();
image.UriSource = new Uri("3.png");
image.EndInit();
button1.Background = new ImageBrush(image);

WPFは、Windowsフォームアプリ感覚でやると、
なかなか難しいなと思いました。。。
436デフォルトの名無しさん:2014/01/12(日) 23:32:51.55
>>435
その書き方ならborderのBackgroundを{TemplateBinding Background}にして、
ButtonのBackgroundに1.pngのImageBrushを指定すればいけるような気がするけどどうだろう?

ちなみにそのやり方だとマウスオーバー時に色がかわる、とかフォーカス時に点線が表示される、とか、
元々ある機能がなくなってると思うんだけど、それは構わないの?
437デフォルトの名無しさん:2014/01/13(月) 05:15:05.21
>WPFは、Windowsフォームアプリ感覚でやると、

これがそもそも難しくしてる原因だ
438デフォルトの名無しさん:2014/01/13(月) 14:11:53.35
いやいや、やろうと思えば基本的にほとんどWindows Formsと同じ感覚でも書けるでしょ。
レイアウトとグラフィック以外は。

アニメーションはFormにないし
439デフォルトの名無しさん:2014/01/13(月) 18:51:14.44
MVVM試行錯誤しながらやってるんだけど、これうまく作るとビューの見た目やコマンドを実行する場所をいろいろと好き勝手にできて良いね。
フレームワーク使わずBindableBaseだけショボイの作ってやってるけど。
ItemClickをコマンドにどう結びつけたらいいんだとかわからんところも多々あるけど、適度にコードビハインド織り交ぜても十分フォームより色々疎結合できて良い。
440デフォルトの名無しさん:2014/01/13(月) 20:32:32.83
大きなアプリ作るならコンバーターやコマンドは避けたほうがいい
441デフォルトの名無しさん:2014/01/13(月) 20:34:56.21
TreeViewのContextMenuのIsOpenをBindingすると、必ず起動一発目の右クリックでメニュー出すと直ぐ消えるってのはなんだろうね
対策あったら教えて下さい
442デフォルトの名無しさん:2014/01/13(月) 21:08:11.18
>>440
それはどのへんで?
443デフォルトの名無しさん:2014/01/13(月) 21:14:57.92
MVVMのコマンドは拡張性がないからなあ
大きなアプリだとコマンドパターンでコマンドのクラス自体に処理を書いた方がいい
444デフォルトの名無しさん:2014/01/13(月) 22:14:08.74
Converterは必要があれば積極的に利用した方がいい。
プリミティブな1データを多様に表現、活用する事ができる。アプリの大小は関係ない。
ただMultiConverterのConvertBackは使いにくい。
445デフォルトの名無しさん:2014/01/13(月) 23:13:59.40
>>443
例えばprismでも使えばいいじゃん
446デフォルトの名無しさん:2014/01/13(月) 23:29:55.84
>>445
Prismはそのへん考慮してないよ
Webと変わらんような業務アプリのサンプルだからね
447デフォルトの名無しさん:2014/01/14(火) 02:33:12.59
コマンドは使いにくいなーとは思うけど、コンバーターは結構便利に使ってる
448デフォルトの名無しさん:2014/01/14(火) 03:22:34.62
コマンドよりビヘイビア書かないとバインド出来ないプロバティーが嫌だ
449デフォルトの名無しさん:2014/01/14(火) 04:05:04.81
ビヘイビアが未だによくわからん。使い所とか。
450デフォルトの名無しさん:2014/01/14(火) 10:52:12.79
別々の条件から同じことしたい時はトリガーとアクションに分けて、
常に同じ組み合わせならビヘイビアって感じでいいと思う
451デフォルトの名無しさん:2014/01/14(火) 10:59:23.43
ガン・・・、エクセルでたとえてくれ
452デフォルトの名無しさん:2014/01/14(火) 11:29:25.39
>>450
この辺ストアだとまた違うからな…今全部できるようになったんだっけ?
揃えてくれよママン…
453デフォルトの名無しさん:2014/01/14(火) 21:37:46.94
>xamlでtriggerを使う

で詰まっていた者ですが、おかげさまで
実装方法が解りました。

WPFは、使いこなせたら、
確かにフォームアプリより便利そうですね。

勉強になりました。
454デフォルトの名無しさん:2014/01/15(水) 13:57:25.53
ストアアプリを開発しています。

Bindingで、

 "文字列A" + 項目Aの設定値 + "文字列B"

  (※文字列は、ローカライズ対応)

をTextBlockに表示したいと考えています。
調べてみてもどの様にしたらよいものか困っています。
助けていただければ幸いです。
455デフォルトの名無しさん:2014/01/15(水) 13:59:51.17
456デフォルトの名無しさん:2014/01/15(水) 14:45:11.69
>>455 以外にも Run を使った方法もあるよ
<TextBlock><Run Text={Binding 文字列A} /><Run Text={Binding 項目Aの設定値} /><Run Text={Binding 文字列B} /></TextBlock>
457デフォルトの名無しさん:2014/01/15(水) 14:52:02.24
そういえば.NET 3.0の頃はRun::Textが依存関係プロパティじゃなかったなぁ 狂気の沙汰
458デフォルトの名無しさん:2014/01/15(水) 15:32:39.66
Blockの中にRunがあるんだからそれにバインドする方が変
特別なことをしないならStringFormatがまともな手段だけど別のフレームワークで
無くなったり意味不明
459デフォルトの名無しさん:2014/01/15(水) 15:39:58.05
変かな?
数値部分だけ色変えたいとかさ
460454:2014/01/15(水) 17:05:53.82
ありがとうございます。
>>456の方法で行けそうなんですが、ローカライズの文字列では表示されません。
デフォルトで与えた文字であれば、表示されます。
もう少し格闘してみます。

>>368-371 の方法も考えましたが、ローカライズで文字列の長さが変わった時に
調整がメンドウなので…。
(うまい方法があるのかもしれませんが、稚拙なものでスミマセン。)
461デフォルトの名無しさん:2014/01/15(水) 19:54:47.63
>>460
ローカライズってどういう風にやってるの?
Bindingでやろうとしてるってことは動的に変更される文字列を表示しようとしてる?
ロケールによってBinding先を切り替えるとか?

ちなみにストアアプリは専用スレあるよ?
462デフォルトの名無しさん:2014/01/15(水) 22:47:12.42
どういう風にってResourcesを言語別に用意以外に
方法あったっけ?
463デフォルトの名無しさん:2014/01/15(水) 23:04:03.19
>>462
普通のやり方ならuidで指定するからBindingなんかしないし、
ローカライズされた文字列が表示されないなんてことにはならないでしょ?
464デフォルトの名無しさん:2014/01/15(水) 23:34:13.53
そうか?
俺は普通に以下のように書いてるけどな。
<Label Content="{Binding Source={StaticResource resources}, Path=hogehoge}" />

表示されないってのは分からんけど。
465デフォルトの名無しさん:2014/01/16(木) 00:26:58.66
WPFでDataGridにバインドさせて使うときって列の定義とかはどうしてる?
466デフォルトの名無しさん:2014/01/16(木) 01:10:36.73
普通にXAMLで
というかデータグリッドはWinFormsのを使ってる
WPFでやるんならデータグリッド貼って終わりなんて安易なクソUIやめてListViewで作れよ
467デフォルトの名無しさん:2014/01/16(木) 03:55:51.77
>>464
hoge厨らしい書き方だな
電子ゴミ作って楽しいか?
468デフォルトの名無しさん:2014/01/16(木) 08:43:52.17
>>467
おはよう
469デフォルトの名無しさん:2014/01/16(木) 08:55:00.32
腰痛めて病院いったらウォーターベッドみたいなんに寝かされた。
振動で腰を直すやつな。
振動の強さが「強」「中」「弱」の三種類あって、
最初に「弱」で始まったんだけど全然振動が伝わってこない。

看護婦さんに「あの、全然感じないんですけど」って言ったら
「じゃあ「中」にしときますね。何かあったらナースコール使って呼んでください。」
って言われて「中」に切り替えて看護婦さんどっか行った。
しばらく待ったけど全然振動しなくって ナースコールで看護婦さん呼んだら
「じゃあ、「強」にします。」 って言われて「強」に切り替えた。

それでも全然動かなくておかしいなあとか思いつつふっと横を見たら
隣に寝てたよぼよぼの爺さんがガタガタガタガタ猛烈に振動してた
470デフォルトの名無しさん:2014/01/16(木) 13:40:54.62
WinFormsのコンポーネントをScrollViewerとかに埋め込んだ時クリッピングされないで
はみ出ちゃう問題マジで何とかならないのかなぁ・・・。
市販のコンポーネントなんてWinFormsばかりだからマジで困るぜ。
471デフォルトの名無しさん:2014/01/16(木) 14:32:42.96
無理だろうね。コンポーネントの方がWPFに対応するのを期待しよう。
472デフォルトの名無しさん:2014/01/16(木) 14:37:19.84
グレープシティやインフラジスティックスのWPFコンポーネント使えばいいんじゃね?
473デフォルトの名無しさん:2014/01/16(木) 15:09:13.57
>>471
だよねぇ・・・。最初からこのコンポーネント使う事決まっていれば色々考えようもあったんだけどね。
まぁ、そもそもWPF選んだ時にこの不具合知らなかったんだけどorz

>>472
大人の事情で決まった会社の固有の製品なのでそういう代替え品ではダメなんだよ・・・
474デフォルトの名無しさん:2014/01/16(木) 15:30:25.65
>>473
大人の事情で決まった製品って大抵ろくなのないからなぁ
事情説明して何とかするよう努力するべし
475デフォルトの名無しさん:2014/01/16(木) 17:13:41.53
どうしてもそのコンポーネントを使わなきゃいけないのなら、
HWNDによるクリッピングを利用することは不可能ではないけどね。

独自パネルA (WPF) > 独自パネルB (WinForms) > コントロールC (大人の事情)

って構造にして、
BをScrollViewerの可視範囲内に配置し、
Cをクリッピングなしの範囲に配置することで
BのHWNDによるっクリッピングを有効にすることはできる。

スクロールする度に再レイアウトすることになるので、性能はお察しだけど。
476デフォルトの名無しさん:2014/01/16(木) 17:27:06.59
大人の事情ってどんな内容かな

勤め先がFとかNとかN(2回目)とかHだとか
477デフォルトの名無しさん:2014/01/16(木) 18:03:06.01
>>476
俺はFだけど、大人の事情がない会社なんてあんのか?
478デフォルトの名無しさん:2014/01/16(木) 18:23:48.62
大人の事情がない会社はない
ただしコンポーネントの選択に関しては、大人の事情など断固拒否しますよ
(経済的事情を除く)
479デフォルトの名無しさん:2014/01/16(木) 19:28:36.49
>>466
XAMLで列を定義ってなんか疎結合って感じがしなくなる
480デフォルトの名無しさん:2014/01/16(木) 21:09:13.14
>>479
意味不明
ビューが表示対象のデータ項目に依存しなくて一体何を表示するというのか
481デフォルトの名無しさん:2014/01/16(木) 21:38:51.21
>>477
Fか…
Fはjavaなどの社内フレームワークが何種類もあると噂に聞く…
482デフォルトの名無しさん:2014/01/16(木) 22:12:54.26
>>479
XAMLよりVMに書いたほうがいいと思う
グリッドで入力する場合は検証も行わないといけないしね
483デフォルトの名無しさん:2014/01/17(金) 01:44:48.28
>>475
あーあー、WinFormsを挟む発想は無かったわ。面白そうね。今度試してみよう。
結局見た目とイベントをバイパスするproxyみたいな物作ってしのいだわ。
思ったよりちゃんと動いているけど、あまり動き無い物だから出来る話だぁね・・・。
今更WinFormsなんぞ使いたくないし頑張りますヨ〜
484デフォルトの名無しさん:2014/01/23(木) 14:31:47.24
ここに質問する無いようなのかわからないけどWPFのプログラムでMEF使う時に
Importってどのタイミングで行われるか書かれている資料ってあるかな?
今はとりあえずLoadedのタイミング以降でImportしたオブジェクトにアクセスしてて
特に問題は無いけど何かモヤモヤするんだよなぁ・・・。
485デフォルトの名無しさん:2014/01/23(木) 15:39:16.50
WPFは関係ないし、MEFのドキュメントで自分が使ってるImport方法の説明を読めとしか。
486デフォルトの名無しさん:2014/01/23(木) 19:45:53.70
DIならAutofacでも使ったほうがいいよ
MEF使いづらい
487デフォルトの名無しさん:2014/01/23(木) 20:21:32.72
なんだとこのファック野郎
488デフォルトの名無しさん:2014/01/23(木) 22:02:28.47
もうMvvmCross使えよ(´・_・`)
489デフォルトの名無しさん:2014/01/23(木) 22:13:35.77
どうもこういうクロスプラットホームの奴って今までも色々あったけど
流行った試しないし眉唾なんだけどそんなに良いの?
そもそも共通プラットホームにしたい様なもの開発してないケドWPF的に
作りやすいとかあるなら考えてみても良いかなぁ。
490デフォルトの名無しさん:2014/01/23(木) 22:18:53.50
いや全然クロスプラットフォームじゃないぞ
Windows(x86)のVista以降でしか動かん
491デフォルトの名無しさん:2014/01/23(木) 22:32:38.14
それXamarinの話ではなくて?
まー、サポート切れるとはいえXPはまだ捨てられないしねぇ・・・。
俺的にはいらないけど商品開発の場合は捨てる選択肢まだ無理だわ。
492デフォルトの名無しさん:2014/01/23(木) 22:59:53.03
>>489
今見てる限りだとだいぶ現実的なアプローチだと思う。
物によるけど多分8ー9割のコードは共通化可能。
けど作りやすいか言われるとどうかなー。DIの仕組みとかあるけどこういう風に作れとか制限出てくるし。WPFだけでいいなら普通に作った方がいいかも。

>>490
今更XPか(´・_・`)

>>491
Xamarin専用じゃないよ。XamarinがiOSや泥でC#を使える下地を作ってくれたのでそれを利用してる感じ。MVVMでの開発をどのプラットフォームでもできるようにする基盤。
案件によってはまだXPに縛られるんかね…
493デフォルトの名無しさん:2014/01/23(木) 23:02:09.10
>>490
win、wp、その他linux,mac,ios,android(xamarin)ってことじゃね?
最初の2つ以外はxaml無関係だけど。
向き不向きは詳しい人に任せる。
494デフォルトの名無しさん:2014/01/23(木) 23:03:35.29
>>492
80-90って、えらいUI少ないね。それで済むものには向いてるかもね。
495デフォルトの名無しさん:2014/01/23(木) 23:20:41.65
>>494
UIもVMまで共通化したらそれぐらいにならん?
まぁものによると思うけど。
496デフォルトの名無しさん:2014/01/24(金) 02:10:13.53
実際VM共通化なんぞ出来るんか?結局Viewだけ差し替えるとか幻想でしょ・・・
497デフォルトの名無しさん:2014/01/24(金) 02:28:14.65
VMはV依存度は高いもんなぁ。このV用の特別なナニカってのは必ず出るだろうし、
無理に共通化しても見通し悪くなりそうだ
498デフォルトの名無しさん:2014/01/24(金) 04:03:08.59
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwww
499デフォルトの名無しさん:2014/01/24(金) 19:28:10.04
>>497
どちらかというと、Vに求められる機能が多い(ことが多い)ので、VMが重くなる感じかな。結論は変わらないけど。
500デフォルトの名無しさん:2014/01/24(金) 20:51:31.72
DrawingContext.DrawTextって垂直方向の配置を指定できないんだね。
っていうかWPFってどうでもいいようなギミックは満載だけど基本設計が本当ウンコだな。
501デフォルトの名無しさん:2014/01/24(金) 21:29:39.71
拡張メソッド作ったら一行で終わるレベルの不満が基本設計ですか
502デフォルトの名無しさん:2014/01/24(金) 21:36:00.43
WinFormsから入った奴は最初DrawingContext使おうとするよね
滅多に使わない低レベルAPIだぞあれ
503デフォルトの名無しさん:2014/01/24(金) 21:40:03.31
むしろVB6じゃあるまいし、UI要素並べて全ての問題に対応できるわけがないでしょ。
504デフォルトの名無しさん:2014/01/24(金) 21:43:48.37
いやDrawingContextってむしろUI要素並べるだけのラッパー的なAPIなんだが
505デフォルトの名無しさん:2014/01/24(金) 21:43:49.12
ついでに言えば、FormattedTextなんて文字列と書式を合体させたオブジェクトを
引数に取るから、同じ書式を使いまわすなんて基本的なことも出来ない。

こんな仕様を考えた奴は馬鹿としか思えない。
506デフォルトの名無しさん:2014/01/24(金) 21:44:11.25
WPFだからって無理しなくてもSystem.Drawing参照してもいいんだよ?
507デフォルトの名無しさん:2014/01/24(金) 21:47:58.32
>>505
DrawingContextはWPFのもっと高レベルなところと同じく「保持モード」のAPIだ
変更したい時だけ使う
Drawing並べるのと同じなんだけどちょっと書くの面倒だからSystem.Drawing.Graphicsっぽくラップしてあるだけ
508デフォルトの名無しさん:2014/01/24(金) 21:52:05.03
>>507
そんな風な擁護をする奴が絶対にいると思ったけど、
プログラマにとって重要なことは目的をより直截的に実現する手段が用意されているかどうか、
それだけ。

保持モードだからそういう仕様になっているという事情は理解はできるが、
それが優れているとは思えない。
509デフォルトの名無しさん:2014/01/24(金) 21:56:11.27
だからDrawingContextは低レベルAPIであって
目的をより直截的に実現するためのものではないという話でしょ
510デフォルトの名無しさん:2014/01/24(金) 22:00:42.88
WPFは誰かがライブラリを作ってくれるのを口開けて待ってるだけの人間には使いこなせない
511デフォルトの名無しさん:2014/01/24(金) 22:04:35.02
> プログラマにとって重要なことは目的をより直截的に実現する手段が用意されているかどうか、
> それだけ。

ワラタw ちゃんと勉強する事も自分の頭で考える事も大事だよ。
使い方わからんからとすぐウワーってなる奴はプログラマには向いてないだろ。
ありあわせの組み合わせるだけの人は単なるオペレータ。
512デフォルトの名無しさん:2014/01/24(金) 22:07:29.96
>>509
だから、UI要素をXAMLやコードで並べるだけじゃ実現できないから低レベルのAPIを
使ってるわけだが、その低レベルAPIがあまりにも柔軟性に欠けるといってるんだけど。

例えば画面上の任意の位置に、矩形内の水平・垂直のAlignmentを指定して数百個文字列を
描画したい、パフォーマンスが重要、ってケースでDrawingContext.DrawText以外の選択肢が他にある?
513デフォルトの名無しさん:2014/01/24(金) 22:08:40.50
>>511
わからんなんていってないけど。
馬鹿だろお前。
514デフォルトの名無しさん:2014/01/24(金) 22:15:37.17
>>512
何が分からんのか分からん
普通に矩形要素の中にDrawTextでいいだろ
515デフォルトの名無しさん:2014/01/24(金) 22:44:27.83
グリッドならTextBlockの数百個程度は当たり前
516デフォルトの名無しさん:2014/01/25(土) 02:13:33.17
まあパフォーマンスを直截的に求めてDrawingContextって時点でWPFあるあるなんですけどね
517デフォルトの名無しさん:2014/01/25(土) 19:50:54.87
っつーかどうせ似たようなロジックばかりで作ったライブラリ使いまわすんだから粗結合とかどうでもいいよ
それより如何に簡単で書き易くパフォーマンスが良いかのほうが命題じゃないか?
WPFってパフォーマンス悪い・面倒・やりたい事がすぐできない
518デフォルトの名無しさん:2014/01/25(土) 20:06:38.26
WPFは手間かけて基礎から組み上げるもんだ
楽に作りたいならWeb行け
519デフォルトの名無しさん:2014/01/25(土) 20:17:43.98
出来ることが増えるのは良いことだし、その為に新しいフレームワークを覚え泣けれならないのは
当然のコストではあるが、問題はWPFに関してはコストに見合うゲインがあるとは
思われていないことと、GDI/GDI+より明らかに劣っていたり、出来なくなっていることが多すぎること。
520デフォルトの名無しさん:2014/01/25(土) 20:34:18.60
そうだね
そんなゴミはさっさと見切り付けてサヨナラしようね
521デフォルトの名無しさん:2014/01/25(土) 20:35:00.83
戦力の逐次投入はダメな戦術の代表だけど、WPFについて言えばその戦力の逐次投入にすらなってない。
522デフォルトの名無しさん:2014/01/25(土) 20:37:39.40
今のITはリーンスタートアップだとか>>521とは真逆のことが言われてるぞ
523デフォルトの名無しさん:2014/01/25(土) 20:43:55.97
>>522
それはぶっちゃけ我々作る側に都合がいい論理(言い訳とも言う)であって
アウトプットを使う側の視点の議論ではない。
524デフォルトの名無しさん:2014/01/25(土) 20:46:31.60
WPFってむしろ一括投入による失敗の典型例だろ
ASP.NET MVCとか最近のMSは逐次フィードバック反映を重視しだしてうまく行ってるぞ
525デフォルトの名無しさん:2014/01/25(土) 20:53:05.67
>>524
最初の段階である程度使い物になる完成度のものを投入した上で逐次改良を継続するのはいいが、
使い物にならないものを一旦公開して、足りないところは徐々に補っていくからみんな使ってって言っても
そうは問屋がおろさない。

逐次投入がダメ戦術ってのはそういう意味。
繰り返しになるけど、WPFはその逐次投入にすらなってない。
526デフォルトの名無しさん:2014/01/25(土) 21:38:17.20
使えない言ってる奴が使えないやつなだけじゃねーの
527デフォルトの名無しさん:2014/01/25(土) 21:46:14.88
また挫折しました。もう無理です。
528デフォルトの名無しさん:2014/01/25(土) 21:54:32.09
まあふぉーよりははるかにいろんなもの疎結合できていいけどな。
できないことが増えた言うけど逆にできることが増えた部分は無視すんのか。
529デフォルトの名無しさん:2014/01/25(土) 21:55:04.38
ふぉー>フォーム
530デフォルトの名無しさん:2014/01/25(土) 21:56:35.91
ム無しーですね
531デフォルトの名無しさん:2014/01/25(土) 22:07:37.71
>>526
違うと思うよ。

特定の人の悪口を言うのは気が進まないけど、某尾上氏みたいな人が
「王様が裸に見えるのはお前が馬鹿だからだ」みたいな発言が出来るのは
実は王様が裸であればこそ。

>>528
できないことが増えたとは言ってないけどね。
旧製品の置き換えをうたってる後続品に旧製品より劣る部分があれば、
そりゃ置き換えは進むはずがないよという話。
532デフォルトの名無しさん:2014/01/25(土) 22:36:17.06
そもそもサードパーティ製のコントロールが必要な時点でWinFormsもWPFも完成度って点では大差ないよ
カスタマイズしたいならWin32API必須ですがなにか?だからな
.NETはCocoaと比較してGUIがゴミ過ぎるんだよ、JavaFX8も忌まわしきXML拡張のFXMLだし、JDK8もしょんぼりなんだよな、匿名メソッドじゃなく匿名クラスとか存在価値がイミフ過ぎるわ
XPの買い替え需要でWinじゃなくMacに流れてるらしいし、マジでこのままデスクトップでもMacが幅をきかせ始めたら俺はObjective-C使えるから嬉しいけどなw
WPFで出来ることが増えたって、大して増えてねーじゃん、WinFormsと比較してそのちょっと増えたことがコストに見合わないんだよ
533デフォルトの名無しさん:2014/01/25(土) 23:30:40.29
旧製品より優れたところにメリットがあれば、旧製品に劣る所があっても置き換わる可能性はある
まず優れた所を探せ
そしてそれがメリットかどうかを考えろ
534デフォルトの名無しさん:2014/01/26(日) 00:14:27.71
命令口調の奴って何なんだろうね。意味が分からん。
っていうかどういう育ちしてるんだろこういうの。
535デフォルトの名無しさん:2014/01/26(日) 00:22:52.61
10年前ぐらいに開発始まったものに文句言ってるんじゃないw
536デフォルトの名無しさん:2014/01/26(日) 00:26:44.05
>>532
MacはiOSに比べてUIまともなのか?
iOSはUI開発糞だろあれ
537デフォルトの名無しさん:2014/01/26(日) 00:31:22.18
Macで開発って悪夢だな
538デフォルトの名無しさん:2014/01/26(日) 00:33:35.13
Qtでいいよもう
539デフォルトの名無しさん:2014/01/26(日) 02:21:44.23
Qtはいいよね サポートOSも多いし
540デフォルトの名無しさん:2014/01/26(日) 21:37:56.52
qtも5でかなり変わったし、ライブラリでかくなったしなあ。
541デフォルトの名無しさん:2014/01/27(月) 10:13:20.47
qtは柔軟で作りやすいのん?
542デフォルトの名無しさん:2014/01/27(月) 14:11:45.06
びばのんのんのん
543デフォルトの名無しさん:2014/01/27(月) 21:30:45.70
Qtは高レベルなコンポーネントの完成度が非常に高いけど
使い方はWPFの感覚からすると結構泥臭い
544デフォルトの名無しさん:2014/01/28(火) 02:55:44.84
3Dソフトみたいな案件でも採用されてるし柔軟性はあるんじゃね
この辺Qtらしい
http://www.thefoundry.co.uk/products/nuke-product-family/
http://www.thefoundry.co.uk/products/mari/
http://www.autodesk.co.jp/products/autodesk-maya/overview
545デフォルトの名無しさん:2014/01/28(火) 05:48:02.33
.net死んでまうん?
546デフォルトの名無しさん:2014/01/28(火) 08:08:16.10
3Dというか映画界隈はLinux版ありきなこと多いからな
Linux、Win、MacならQtはガッチリだろう
547デフォルトの名無しさん:2014/01/28(火) 08:19:10.48
LinuxのQtはすげえ品質低いぞ
おまけ程度に考えた方がいい
548デフォルトの名無しさん:2014/01/28(火) 09:54:17.75
>>544ぐらいできたら十分じゃない?
それとも上に上がってるのはQtとは名ばかりだったりする?
549デフォルトの名無しさん:2014/01/28(火) 12:17:15.45
QtてKDEのベースなんだけど。
それが品質ぼろぼろならどーすんだw
550デフォルトの名無しさん:2014/01/28(火) 22:03:02.93
>>547
Qt製の2ch Viewerが落ちまくったの良い思い出。今も不安定なままなんだろうか
551デフォルトの名無しさん:2014/01/28(火) 23:58:54.65
3DソフトってQt使えるの多いんだな。
検索したらどのソフトもユーザーが当たり前のようにQt呼び出してるわ。
こんな業界あるんだな。
552デフォルトの名無しさん:2014/01/29(水) 01:12:35.86
メーカー系の中小企業は割とQtを使ってたよ
553デフォルトの名無しさん:2014/01/29(水) 01:13:45.67
M#の登場で.NET死亡
ttp://www.msharp.co.uk/Home.html
554デフォルトの名無しさん:2014/01/29(水) 02:01:57.32
.NET上で動くものなのに.NETが死ぬとはこれいかに?そしてスレチだ。
ここはWPFのスレなんだがもしかして何だかわからず書いちゃった?
え?マジレスしたらいけないって?
555デフォルトの名無しさん:2014/01/29(水) 02:18:04.97
>>550
QtはGTK+よりはまともな印象があるなぁ。3Dはもともとunixな環境が強かった世界だし
あまりOSに依存した開発はしたくないとかあるんだろうね。Qtはもともとプロプラな物だし
昔はつぶしの効かないMFCとか使うぐらいならQtを選ぶのもわかる気がするわ。

しかしまぁ、この手のクロスプラットホームのものってどれも古臭い(良く言えば枯れている)
感じはあるよなぁ。あー、懐かしいとさえ思える泥臭さがある。wxWidgetとかもそんな感じ
だった記憶が。まー、新しければ良いという物ではないけど進化しない世界だなとは思う。
556デフォルトの名無しさん:2014/01/29(水) 09:52:38.81
GTKは糞
557デフォルトの名無しさん:2014/01/29(水) 10:06:26.57
>>553
Dart や Typescript 以上のものは感じなかった
558デフォルトの名無しさん:2014/01/30(木) 16:14:51.72
動画プレイヤーの全画面時みたいに、画面端にカーソルが来ると操作パネルがポップアップするようなの
なかったっけ?
559デフォルトの名無しさん:2014/01/30(木) 19:52:22.76
質問。
GridのセルなんかにImageを
<Image>
  <Image.Source>
    <DrawingImage>
      <DrawingImage.Drawing>
        <DrawingGroup/>
      </DrawingImage.Drawing>
    </DrawingImage>
  </Image.Source>
</Image>

みたいな感じで入れてると、DrawingGroupのDrawingContextに何か書くまでは
ImageのActualHeightもActualWidthもゼロを返すんだけど(まあ当然なんだろうけど)
その前のまっさらな状態でサイズを取得するにはどうしたらいい?

ImageをGridとかに入れ子にしてそいつのサイズを代わりに取得するしかないんだろうか?
560デフォルトの名無しさん:2014/01/31(金) 01:47:14.42
データグリッドのテンプレートカラムにスタックパネルを置いておき、
そのchildrenとしてテキストボックスのコレクションをバインドするにはどうしたら良いでしょうか?
561デフォルトの名無しさん:2014/01/31(金) 07:08:03.98
ItemsControl
562デフォルトの名無しさん:2014/02/03(月) 23:14:30.71
ツリービューのスクロールバーって、
色の変更は出来るのでしょうか?

ググる限り情報は見当たらなかったので、
ひょっとして出来ないの?と思いまして。
563デフォルトの名無しさん:2014/02/04(火) 02:28:35.81
できる。できるが・・・非常にめんどくさい。
564デフォルトの名無しさん:2014/02/04(火) 11:23:02.06
ScrollBarのStyle弄るとか、ControlTemplate書くとか
サクッと変更できるやん。
565デフォルトの名無しさん:2014/02/05(水) 16:58:52.03
MainWindowにあるボタンを押すとContentControlの内容が別のUserControlに切り替わる、というプログラムで
そのUserControlの中にも同じようにボタンを配置して切り替えられるようにしたいのですが、どのようにすればいいんでしょうか

「WPFで画面遷移風のアプリケーション」でググって出てくるブログ記事を参考にしています
566デフォルトの名無しさん:2014/02/05(水) 18:18:37.02
風の← 不要

宣伝乙!
567デフォルトの名無しさん:2014/02/05(水) 18:43:27.78
>>565
日本の情報は糞
MSのPrismに画面遷移の良いサンプルがある
568デフォルトの名無しさん:2014/02/05(水) 21:18:49.03
URL plz.
569デフォルトの名無しさん:2014/02/05(水) 23:15:37.20
>>567
小さいプログラムだからインフラ使うのもなと思って避けてたけどやっぱ使った方がいいのかな

ttp://msdn.microsoft.com/en-us/library/gg430861(v=pandp.40).aspx
この辺りでしょうか?勉強してみます
570デフォルトの名無しさん:2014/02/06(木) 03:21:59.23
>>569
小さいプログラムなら、まずは WPF にあるコマンドを使ってみれば?

UserControl で発行した RoutedCommand はツリーを親要素へと上っていくので、
それを MainWindow の CommandBinding で捕まえて、切り替え処理をすればいい。
http://msdn.microsoft.com/ja-jp/library/ms752308.aspx
571デフォルトの名無しさん:2014/02/06(木) 22:44:34.26
現在、.NET Framework 4.51環境です。
.NET Frameworkでのプログラミングは一切行っておりません。

EpsonDirectで購入したPCにChart Controlが入っていたので
削除を試みましたがエラーでできませんでした。

もしかして 3.5 + Chart Contolの環境を4.51に更新した場合、
Chart Controlが残ったままになるのでしょうか?
3.5のときにアンインストールすべきだったのでしょうか?
572デフォルトの名無しさん:2014/02/07(金) 00:35:38.54
スレ違い
573デフォルトの名無しさん:2014/02/07(金) 01:54:17.15
そうか。.NET4.5とスレタイに入ってるんだな。4.5に限定する理由ってあるん?
バージョンに依存した内容はほとんど無いよな。流石に3.0ベースはナイけど
574デフォルトの名無しさん:2014/02/07(金) 02:58:11.29
>>573
ヒント:Chartクラスが属する名前空間

少なくともバージョン縛りは関係ないと思うぞ。<スレ違いの理由
575デフォルトの名無しさん:2014/02/07(金) 09:01:42.66
そういう意味じゃねぇよ。入ってなきゃ勘違いもなかったろうという意味だ
576デフォルトの名無しさん:2014/02/07(金) 09:27:57.75
>>570
RoutedCommandを使って試行錯誤の末、期待通りの実装ができました
Windowを継承したクラスにまとめたらだいぶスッキリしました
ありがとうございました!
577デフォルトの名無しさん:2014/02/07(金) 18:22:28.67
Expression Blend 4 と Blend for VisualStudioは、何が違うの?
ImageとかのプロパティのProjectionが見当たらない
578デフォルトの名無しさん:2014/02/08(土) 22:48:50.82
SilverlightでNavigationFrameworkを用いてページ遷移をする場合、
遷移先のTo.xamlのコンストラクタに引数を渡す方法はないでしょうか?
NavigationService.Navigate(Object)メソッドが使えればPageを継承した
インスタンスを直接渡せるのですが、
あいにくsilverlightでは削られてしまっているようです・・・
わかりにくくてすみませんが、よろしくお願いします。
579デフォルトの名無しさん:2014/02/08(土) 22:53:32.95
こんな蛇足な方法が一番上に来ているところを見るにないみたいですね
http://stackoverflow.com/questions/4555985/how-can-i-pass-query-string-variables-with-navigationservice-navigate
580デフォルトの名無しさん:2014/02/08(土) 22:55:25.75
シングルトンでグローバル変数的に持っとけばいいよ
シングルトンだとテストがしづらいからPrismはシングルトンの代わりにDI使ってた
581デフォルトの名無しさん:2014/02/08(土) 23:16:37.27
こんな感じのヘルパーメソッドを使えばいいんじゃないの
void Navigate(NavigationService ns, Uri uri, Object context) {
 NavigatedEventHandler h = (s, e) => {
  ns.Navigated -= h; ((IMyPage)e.Content).OnNavigated(context);
 };
 ns.Navigated += h;
 if (!ns.Navigate(uri)) ns.Navigated -= h;
}
582デフォルトの名無しさん:2014/02/10(月) 14:22:57.30
ugaya40のサイトっていつ無くなったんだ?
583デフォルトの名無しさん:2014/02/10(月) 14:26:49.72
金払ってないだけでしょ
584デフォルトの名無しさん:2014/02/10(月) 18:23:43.09
404になる度に思うが、ちゃんと管理しとけよと。
585デフォルトの名無しさん:2014/02/10(月) 19:41:07.08
なんか2ヶ月に1度ぐらいのペースで見られなくなってるねw

金払ってないって今時カードか引き落としだと思うんだけど、
口座に1000円単位の金もなくなっちゃうほどカツカツの生活なのかなw
余計なお世話だけどさ
586デフォルトの名無しさん:2014/02/10(月) 19:42:57.20
引っかかるくせに鯖落ちで検索汚染してるわんくまクラスのウザさ
587デフォルトの名無しさん:2014/02/10(月) 19:52:54.67
あれも酷いねw
もう5年ぐらいずっとあの調子だ。
MSのwebサーバーは使えないって嫌がらせでもやってるつもりなのかね
588デフォルトの名無しさん:2014/02/10(月) 20:24:10.76
真面目な話、風物詩とかネタにして良いもんじゃないだろ。
小銭稼いでんだから、まとめて払っとけよ。
589デフォルトの名無しさん:2014/02/13(木) 01:31:29.31
WPFのWindowでマウスドラッグでウィンドウサイズ変える時に縦横比を固定する事って可能?
中身のコンテンツの比率を固定するのは簡単に出来るけど隙間が空いてしまうのが格好悪いなぁと。
590デフォルトの名無しさん:2014/02/13(木) 11:57:57.48
>>589
サイズ変更された時にWidthとHeightいじるとか(チラつくけど)
綺麗にやろうとするとWin32のWM_SIZINGメッセージとか。
MeasureOverrideやArrangeOverrideでどうにかなると思ったけど、Windowだとダメっぽいな。
591デフォルトの名無しさん:2014/02/13(木) 21:22:50.91
>>589
マウスポインタにウィンドウの隅が追従しないUIの方が絶対不恰好だと思うけど...
俺ならそんなアプリド素人が作ってるとみなすよ
592デフォルトの名無しさん:2014/02/13(木) 21:41:13.99
ボーダーとカーソルが一致するように縦横比固定することは可能だし実際にあるんだけど…
593デフォルトの名無しさん:2014/02/13(木) 22:19:09.62
ではお伺いしますが、そういうアプリでマウスを完全に水平方向に左に移動させる
動作をしたらどうなるの?

少なくとも次の4パターンが考えられるが、

(1) マウスポインタは動かない
(2) マウスポインタは左に動くがウィンドウの枠は動かない
(3) マウスポインタは左に動くが、ウィンドウの枠は楯横比を保って拡大
(4) ウィンドウの枠は楯横比を保って拡大。マウスポインタはウィンドウ枠の対角線にそって動く

どれも直感的とは言いがたいね。
594デフォルトの名無しさん:2014/02/13(木) 22:32:16.96
操作方法が既知として扱われている以上、目で見れば分かる多少の動作の違いに直感的もクソもねえよ
595デフォルトの名無しさん:2014/02/13(木) 22:43:30.19
>>590
やはりそれしかないか。ってことでWM_SIZINGハンドリングしてサクと作ってみた。
まぁ、出来たんだがWindowChromeで見た目変えてるのってリサイズ時に素のウィンドウの
描画が一瞬見えるのな・・・。今回の固定比率とはまた別の話だけど。

>>591
言いたい事は分かる。
けど、今回は背景画像が固定になっていて比率変えると間延びして恥ずかしい事になるんだ。
かといって隙間入れるともっと恥ずかしい。デザインした奴に死ねと言いたい気分だけど
色々事情があって差し替え出来ないので苦渋の選択なんだよ。
ホント他に良いアイディアあったら教えて欲しい位だわ。クールな玄人の意見教えてよ。
596デフォルトの名無しさん:2014/02/13(木) 23:40:32.46
ウインドウが横に広ければ背景画像の上下または下を切る
ウインドウが縦に広ければ背景画像の左右または右を切る
というのはたまにやるけどこれも画像によるな
597デフォルトの名無しさん:2014/02/14(金) 00:28:42.06
>>595
隙間が入ると恥ずかしいって感覚はよく理解できないな。

メディアプレーヤー系のアプリなんかみんなそうだし、それがかっこ悪いとも
もっといい方法があるとも思わない。
598デフォルトの名無しさん:2014/02/14(金) 01:50:18.78
デザイン分業が叫ばれるWPF界隈でマーにデザインを聞いてどうする
デザイナーに聞け
599デフォルトの名無しさん:2014/02/14(金) 04:04:57.22
>>597
えー?感覚違うんだな。

http://imgur.com/hDPOpOn

適当なサンプルだけどこういうのの隙間見て気持ち悪くない?
実際のは色々な要素がハードコーディングになっていてボタン群やら文字やらの
全体にエフェクトがシームレスにかかっているのでバラして調整も出来ないんだわ。

まー、WPFと全然関係ない話になったのでこの辺にしておくけど・・・。
600デフォルトの名無しさん:2014/02/14(金) 04:42:09.55
>>599
例えば動画プレーヤーでそんな風になるやつあるけど別に変だとは思わないな。
ウインドウの中で縦横比が保たれていればいいんじゃないの。

背景色変えてみたらちょっと印象変わるんじゃない?
http://imgur.com/fEe4k2I
601デフォルトの名無しさん:2014/02/14(金) 05:36:01.25
動画プレイヤー動画プレイヤーって・・・うまく説明出来ないけど動画とか絵とかのコンテンツ表示の為の領域と
ユーザーが操作するアプリがこういう風に動くのでは全然デザインに対する意味も違うと思うんだけど・・・。
まぁ、感覚の違いがあるのは良く分かったよ。
602デフォルトの名無しさん:2014/02/14(金) 10:32:06.95
明らかに隙間があった方がおかしいでしょ
比率固定で動くウィンドウを持つアプリケーションなんて結構あるし
デザイン的にズレるなら尚更適切な比で表示した方がいいような
603デフォルトの名無しさん:2014/02/14(金) 12:43:19.97
UI議論スレじゃねーんだけどよその辺理解できてまちゅかゴミども
604デフォルトの名無しさん:2014/02/14(金) 20:40:28.02
>>602
Win9xの時代にはそういうのあった(俺も印刷プレビュー画面をその方式で作ったことがあった)けど、
今はまず見ないでしょ。

さすがに今となってはセンスが悪いUIと言わざるを得ない。

まあ隙間が開くとかっこ悪いって感覚はやっぱりよく分からないけど、どうしてもってことなら、
クライアント領域のW/HがコンテンツのW/Hより小さい場合はHを、大きい場合はWを合わせて
他はスクロールバーで対応するのかね。

スクロールバーの幅を考慮に入れる必要があるからかなり面倒になると思うけど。
605デフォルトの名無しさん:2014/02/14(金) 20:59:08.47
>>595
そういうのは設定で決めさせるのさ
ウインドウはNoResizeでok
606デフォルトの名無しさん:2014/02/15(土) 18:58:29.27
質問しようと思ったのですが、整理してるうちに一応解決したので貼ります

−−−−−−−−−−−−−−−−−−−−−−−−−−ここから質問

DataGridで選択中のDataGridCellからRowIndexを割り出す方法を教えてください
条件としては

・仮想化されている
ItemContainerGenerator.ItemFromContainerなどは画面外のCellにnullを返すため使用不可
仮想化はmust要件にされたので切れません

・カラムによるソートが有効になっている
バインド元のデータと表示中のデータ順が同期していないので、元のリストを検索しても意味がない
この表示中のデータに触れれば一番楽だと思うのですが

−−−−−−−−−−−−−−−−−−−−−−−−−−ここまで書いた

後者の方法はあまり掘り下げてなかったので、試したら以下のように取れそうでした

var view = (CollectionView)CollectionViewSource.GetDefaultView(dataGrid.Items);
var list = v.OfType<Itemの型>().ToList();
int rowIndex = list.IndexOf(item);

あとは落とし穴がないことを祈るばかり
607デフォルトの名無しさん:2014/02/15(土) 19:08:11.51
アイテムが重複を許すならバグるってすぐ分かったけど、
解消する方法が思いつかない。
CellからItemを得ても何個目に出現するものかは分からないものね。
608デフォルトの名無しさん:2014/02/15(土) 19:24:48.22
>>606
それ意味的に正しいのはOfTypeじゃなくてCastだろ
要素数が狂ってバグの元だぞ
なぜかWebの解説なんかではOfTypeがよく出てくる気がするが、ほとんどのケースではCastが適切
609デフォルトの名無しさん:2014/02/15(土) 19:32:34.40
>>607
アイテムにラッパーを被せればいいよ
ItemContainerGenerator.IndexFromContainerもItemContainerが重複していないから正しくインデックスを返せているわけで
610デフォルトの名無しさん:2014/02/16(日) 19:02:47.54
よくわからないけど、indexをどっかに埋め込むのはだめなの?
611デフォルトの名無しさん:2014/02/18(火) 19:43:55.00
TabItemを動的に作成するのにViewModelをViewに適用って方法でやってます。
その場合TabItemってどうやって取得するんですか?
ItemsとかSelectionChanged.AddedITem見に行ってもViewModelが入っているので困っています・・・。
612デフォルトの名無しさん:2014/02/18(火) 19:48:22.03
ちょっと上に書いてあるItemContainerGenerator.ItemFromContainer
613デフォルトの名無しさん:2014/02/18(火) 21:08:19.61
>>612
ありがとうございます。
TabControl.ContainerFromItemのほうでViewModelからTabItemがとれました。

最終的にTabItem.Contentの中をVisualTreeHelperで検索したかったのですが
TabITem.ContentがViewModelでだめでした。
再度質問で申し訳ないですが
どうやったらVisualTreeHelperが使えるようになるんですか。
614デフォルトの名無しさん:2014/02/18(火) 21:15:52.33
TabItemの子孫が欲しいならそのままTabItem渡せばいいだろ
615デフォルトの名無しさん:2014/02/18(火) 21:25:03.10
>>614
あーすみません。
わかりました。
最初に呼ばれるSelectionChangedのなかだとまだUIが作られてないんですね・・・。
616デフォルトの名無しさん:2014/02/18(火) 21:55:40.66
あるある
617デフォルトの名無しさん:2014/02/18(火) 22:15:41.63
コントロールの縦横スクロールバー出現時の
右下の空白の色を変えたいのですが
どこの設定をいじれば変わるでしょうか?

http://aug.2chan.net/zip/3/src/1392729274100.png

外国のサイトまで探したのですが、
情報が無く困っています。

使用しているコントロールは、
TreeViewとListBoxです。
618デフォルトの名無しさん:2014/02/19(水) 00:58:27.92
そういうのはBlendでテンプレート弄る
619デフォルトの名無しさん:2014/02/19(水) 01:12:55.97
TabControlでTemplateを設定すると、TabItemの中身のListboxをホイールでスクロールさせられなくてはまってます・・。
(スクロールの代わりにTabが切り替わる)
よい妥協策はないでしょうか・・・。

<ControlTemplate TargetType="TabControl">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TabPanel Grid.Row="0" IsItemsHost="true"/>
<Border Grid.Row="1">
<ContentPresenter ContentSource="SelectedContent"/>
</Border>
</Grid>
</ControlTemplate>
620デフォルトの名無しさん:2014/02/25(火) 14:11:59.84
WPFの話になるのか分からないけど、ずっとWin8で開発していて
デザインもきっちり収めて悦に入ってたんだけどWin7で動かしてみたら
テキストのレンダリングが違うみたいで字がはみ出たり散々な状況。

何かOS依存しないで同様に配置出来るうまい方法は無いもんかねぇ。
621デフォルトの名無しさん:2014/02/26(水) 01:51:46.33
そんなあーたにWinForm
622デフォルトの名無しさん:2014/02/27(木) 15:25:23.25
もう画像にしちゃうって手も…
623デフォルトの名無しさん:2014/03/02(日) 08:01:45.99
code.msdn.microsoft.com/windowsdesktop/MVVM-d8261534

このページのサンプルで、対象フレームワークを4.5以上にあげると
実行した時、小数点が入力できません。
4以下にすると入力できるようになるのですが、なぜでしょうか?
624デフォルトの名無しさん:2014/03/02(日) 16:15:36.25
>>623
例えば12の後に小数点を打つとバインドされたプロパティ(double型)の値は12.0になってる。
で表示するときに「.0」部分は無視されて(書式設定してないから?)12と表示される。
だから小数点が打てない状態になっているみたい。
(123と入力した後に12と3の間に小数点を打てば12.3になる。)

フレームワークのバージョンで挙動が違う原因は俺にはわからない。
625デフォルトの名無しさん:2014/03/02(日) 22:44:31.89
一言で言えばバグ
626デフォルトの名無しさん:2014/03/06(木) 11:23:45.29
単位変換みたいなValueConverter全く実装されてないけど使わせる気あるのこのフレームワーク
627デフォルトの名無しさん:2014/03/06(木) 12:32:58.15
そんなもん自力で書けよ
628デフォルトの名無しさん:2014/03/06(木) 13:40:14.28
んな細々したライブラリが充実するほどにはユーザーがおらん

MVVMと非同期ツールキットくらいしかまともなサードパーティライブラリないしな
629デフォルトの名無しさん:2014/03/06(木) 15:12:41.36
>>628
MVVMCrossぐらいできてたらもう十分だろ( ̄(工) ̄)
630デフォルトの名無しさん:2014/03/06(木) 15:33:12.22
何個似たようなMVVMのフレームワーク作る気なんだろうな
馬鹿じゃないの
少しはその労力他に割けよ生産性のない奴らめ
631デフォルトの名無しさん:2014/03/06(木) 22:56:33.47
>>630
同じ奴が作ってるならそうだろうな(。-_-。)
632デフォルトの名無しさん:2014/03/07(金) 02:18:25.97
>>589
だいぶ古い投稿だけど返信

ウインドウをCanvasで埋めて、それとbindingを連携すれば
いいんじゃない?
633デフォルトの名無しさん:2014/03/07(金) 18:01:45.83
次のバージョンはDirectX11ベースになってくれると嬉しい
634デフォルトの名無しさん:2014/03/07(金) 18:07:16.93
635デフォルトの名無しさん:2014/03/07(金) 18:10:53.89
>>634
日本語でおk
636デフォルトの名無しさん:2014/03/08(土) 11:10:45.46
WPFの用途だとDX11ベースになっても見た目は何も変わらない
落ちにくいんだろうけどそもそも落ちない
637デフォルトの名無しさん:2014/03/08(土) 11:26:38.57
DX11はDX9系に比べれば描画性能けっこう良いから、パフォーマンスは安定するぞ
638デフォルトの名無しさん:2014/03/08(土) 11:32:49.28
MSが書いてるコラムを見てもボトルネックは描画よりバインディングの方ですしおすし
639デフォルトの名無しさん:2014/03/08(土) 11:42:03.59
パフォーマンス向上しそうなシェーダー処理が絡んでるのEffectとかその辺だろ?
2Dのフィルやマッピングでパフォーマンス改善されんの?
640デフォルトの名無しさん:2014/03/08(土) 12:43:19.04
シェーダ以前の通常描画でもそれなりにパフォーマンス違う。
といっても2倍未満くらいだが。

バインディングは、まあ…
641デフォルトの名無しさん:2014/03/08(土) 19:22:51.63
いい加減WPFにこだわるのやめてUnityみたいなマルチプラットフォームIDEを作れよMS
何のための.NET Frameworkなんだ?
WPFがWindows以外で動けばデベロッパー増えるだろうに
642デフォルトの名無しさん:2014/03/08(土) 20:00:42.82
>>626
それよりデフォルトのカルチャがen-USなのがウザイ
ローカルを使わせようとすると

xmlns:g="clr-namespace:System.Globalization;assembly=mscorlib"

Text="{Binding LastWriteTime,StringFormat=d,ConverterCulture={x:Static g:CultureInfo.CurrentCulture}}"/>
643デフォルトの名無しさん:2014/03/08(土) 20:05:31.77
いちいちBindingにカルチャ指定してるのか…
644デフォルトの名無しさん:2014/03/08(土) 20:12:03.86
>>641
希望的観測過ぎて笑える。一体Windows以外のどのプラットホームのユーザーが使うと思うの?
645デフォルトの名無しさん:2014/03/08(土) 20:19:03.16
大量のコントロールある画面の描画速度どうにかしてあげられないかな?
rectangleとline動的に使いまくったらとても遅い
646デフォルトの名無しさん:2014/03/08(土) 20:22:19.51
Silverlightがまさにそれだろ
クロスプラットフォームなクライアントはSilverlightやFlexやJavaFXが全滅してHTML最強で決着した
MS自身が.NET FrameworkをオープンソースにしてVSもマルチプラットフォームにすれば
間違いなくJava潰してASP.NETで天下取れるだろうけど、結局それだとMSの利益にならないからね
647デフォルトの名無しさん:2014/03/08(土) 20:36:16.49
Silverlightはチーム解散したよ、知ってると思うけど
切り捨て早いw

まあぶっちゃけWPF推奨するよりWinFormsをより良いものにしていったほうが
みんなが幸せになれるよね

とにかくMSは使えないGUIライブラリを作り過ぎ
MFC, ATL/WTL あたりは完全に捨てて本当に使えるものを
一つだけ作るべき
648デフォルトの名無しさん:2014/03/08(土) 20:38:43.46
いまさらFormsでバインドもどきとか本当にありえない
649デフォルトの名無しさん:2014/03/08(土) 20:43:50.15
そもそもバインドはいらない
650デフォルトの名無しさん:2014/03/08(土) 20:44:26.28
>>648
まあ今は駄目でも良いものにしていくんだよ

ぶっちゃけどんなに出来が悪くてもWin32APIとWinFormsは
無しにはできないんだから、これらにリソースを集中すべき
リソース分散させた挙句にクソGUIライブラリ量産って
意味が分からなすぎるw
651デフォルトの名無しさん:2014/03/08(土) 20:45:57.35
昔からではあるが最近MSの迷走が特に酷いからな
652デフォルトの名無しさん:2014/03/08(土) 20:55:49.96
機能詰め込みすぎを認めてサブセットにした方がいいんでねえのとは
653デフォルトの名無しさん:2014/03/08(土) 22:03:50.33
それでもXAML以外はもうあり得んわー(´・ω・`)
654デフォルトの名無しさん:2014/03/09(日) 04:44:06.28
入門したいのですが
エッセンシャルWPFって本は今買っても有用でしょうか?
655デフォルトの名無しさん:2014/03/09(日) 11:46:23.02
DataGridに文字出す時に行の高さに合わせて文字を調整したいんだけど
そういう場合ってViewBox位しか手が無いよね?
ViewBoxでやると内容を横方向のサイズへ合わせる形には出来るんだけど
縦方向に合わせて調整して文字サイズを全行で一定にみたいなのが難しい・・・。
とりあえずは入れるデータの文字数を調整すればなんとかなるけどもっと
スマートな方法あるのかなぁ・・・。
656デフォルトの名無しさん:2014/03/09(日) 13:17:38.84
>>654
今はMVVMとかも盛り込んでるようなのにした方がいいと思うけど…和書であるかは知らん
657デフォルトの名無しさん:2014/03/09(日) 13:29:07.17
書いても売れないんで
ストアができて多少普及するかと思ったけどそんなこともないね
658デフォルトの名無しさん:2014/03/09(日) 13:31:58.14
書いても売れない以前に書ける人いないんでしょうな
実際に実務で使っている人は本を書いている暇なんぞないだろうし
659デフォルトの名無しさん:2014/03/09(日) 13:34:41.91
MVPが書けば
偉そうなこと言ってるしエバンジェリストくらいの立場に居るでしょ
業務の一環としてやればいい

まさか土方じゃあるまい
660デフォルトの名無しさん:2014/03/09(日) 14:00:32.18
とーちゃんは日本一の
661デフォルトの名無しさん:2014/03/09(日) 14:27:05.06
現在プログラム板のID制導入の投票を実施中です
よろしくお願いします

プログラム板 強制ID制導入に関する投票スレ
http://kohada.2ch.net/test/read.cgi/vote/1394290844/
662デフォルトの名無しさん:2014/03/09(日) 16:52:06.73
やっとID強制になるのか
色々黒い噂というか推測はあるけど、こっちの意見が通る分新運営のほうが何十倍もマシだわ
663デフォルトの名無しさん:2014/03/09(日) 17:32:50.19
どこぞのスレとかどうなるのかね
どこぞってかAPIスレだが
664デフォルトの名無しさん:2014/03/09(日) 17:37:04.84
もしや、導入と同時に過去レス分も表示されたりすんの…?
このスレは過疎ってるからともかく、おもしろいことになりそうだなw
665デフォルトの名無しさん:2014/03/09(日) 22:21:28.38
WPFでコントロールにイベントハンドラを設定した場合、ユーザーの操作だけでなく
プログラムから操作した場合もイベントハンドラが起動してしまうんだけど
(ListBoxの項目選択とか)
プログラムから操作した場合はイベントを起こさないようにすることは可能?
今はプログラムで操作する前にフラグを立てて
イベントハンドラ内でスキップ判定してるけど、スマートでない気がしてます
666デフォルトの名無しさん:2014/03/09(日) 22:35:27.04
同じ状態変化を区別しようってのがナンセンス
667デフォルトの名無しさん:2014/03/09(日) 23:13:02.27
>>651
そりゃあCEOがあれだから。
新しい人になったけど、どーなるかね。
668デフォルトの名無しさん:2014/03/10(月) 00:10:31.74
>>666
なるほど一理あります
でもコントロールが入力装置と出力装置を兼ねている以上
双方向からの状態変化が来るのは避けられないんだよな…困った
669デフォルトの名無しさん:2014/03/10(月) 00:27:19.39
>>666の言うとおりで、状態の変化を起こしたのがユーザーかコードかを
区別しなきゃならないってのは多分変な思い込み。
670デフォルトの名無しさん:2014/03/10(月) 02:30:26.52
>>644
Windowsのデベロッパーは皆MacやLinuxでVS使って開発したいって思ってると思うぜ
そもそもXamarinのウリがC#よりVS+.NETでの開発なんだから・・・
671デフォルトの名無しさん:2014/03/10(月) 03:23:24.36
>>670
一昔前にはPHP.netなんてものもあったな。
あれ、どうなったんだっけ?
672デフォルトの名無しさん:2014/03/10(月) 04:49:20.93
>>670
根本的に勘違いしてないか?
MacやLinuxで開発したくないから(ネイティブ環境で開発出来る人が少ないから)
Windowsで動く開発環境(VS)で他のプラットホームでも動くアプリ作ろうってのが
今のXamarinだろうに・・・。
皆とか言ってるけど開発環境をLinuxにしたいWindowsユーザーなんか想像もつかないわw
673デフォルトの名無しさん:2014/03/10(月) 20:14:51.27
>>665
イベントハンドラの先頭にフラグで処理制御

if(flag)
return

コードの変更前にflag=true
変更終わったらfalse
674デフォルトの名無しさん:2014/03/10(月) 20:24:30.67
一日遅れで質問に書いてある対処法を書く人ってかっこいい
675デフォルトの名無しさん:2014/03/10(月) 21:15:25.43
>>672
いまiOS向けの開発してるけど、VSからだとデバッグとか時間かかりすぎて実ように絶えない(。-_-。)
676デフォルトの名無しさん:2014/03/11(火) 00:48:59.23
>>675
Xcodeもobj-cもろくに使えない無能なのが悪い。諦めて無駄な時間費やしてデバッグしてなさい。
677デフォルトの名無しさん:2014/03/11(火) 01:25:58.94
>>676
XamarinStudio使えば解消されるんだが。
あんなめんどくさいクソ言語使って俺できる男キリッとか池沼ですかw
678デフォルトの名無しさん:2014/03/11(火) 03:33:42.71
>>677
自分が理解出来ないから糞言語か。自分が無能ですと自己紹介して楽しいんかね。
679デフォルトの名無しさん:2014/03/11(火) 06:47:29.92
>>678
お前も他のいい言語があるのを少し知った方がいいぞ。
今の時点でObjectiveCがすぐれてるとこってなんなの?記述もめんどくさいしMac/iOS以外で使われてないことが言語としての優位性を持ってないことの証明にならん?
680デフォルトの名無しさん:2014/03/11(火) 07:03:03.37
Xcodeはドキュメントフォーマットすらロクに出来ないのにIDE名乗って恥ずかしくないの
681デフォルトの名無しさん:2014/03/11(火) 07:34:23.14
そんなの飾りです
ドザーには分からんのですよ
682デフォルトの名無しさん:2014/03/11(火) 08:45:51.47
>>679
つか、そういうのって適材適所だろ。言語的な良さなんか糞の役にもたたん。
結局それ用に設計されてるんだしちょっと凝ったことやろうとするとネイティブな環境の方が
痒いところに手が届くんだし。WPFに全然関係無いしいい加減スレチやで。
683デフォルトの名無しさん:2014/03/11(火) 10:51:30.24
>>682
すれち言うなら>>641あたりから言えや
684デフォルトの名無しさん:2014/03/11(火) 11:25:21.44
少なくともobjcはみんな避けたがってるのは事実
685デフォルトの名無しさん:2014/03/11(火) 11:46:04.50
しかしiOSのAutoLayoutは慣れれば簡単に使えるようになるのか?
XAMLに慣れた身だとどうにもわからなくて、結局前作ったレイアウトシステム弄ってXAMLライクに設定できるようなの作ってしまったが不必要なもの作ったのかどうか確信が持てない。
686デフォルトの名無しさん:2014/03/11(火) 15:01:45.36
そもそもiOSというかiPhoneやiPadは解像度がある程度固定されてるのしか存在しないというなが最大のメリット(だった)だから簡単だった
687デフォルトの名無しさん:2014/03/12(水) 08:18:49.76 ID:OXUOGNNe
そう思ってた時期が僕にもありました(aary
688デフォルトの名無しさん:2014/03/12(水) 12:00:42.17 ID:lM6It6rw
IDがついに導入されたんだな

記念カキコ
689デフォルトの名無しさん:2014/03/12(水) 12:49:51.37 ID:3ENgQR/9
あらほんとだ。

VSのXAML対応はもう少し頑張って欲しいな。現状エラー起きると特定が大変。
printfデバッグ的なことすらできないしなんとかならんものかなぁ。
正常な記述してもデザイナーがエラーはくのとかも困る。
パーツ共通化してリソースでマージしてとかすぐエラーはくしな。
まぁそういうのはコントロールにしろって考え方なのかもしれんが。
690デフォルトの名無しさん:2014/03/12(水) 17:42:49.77 ID:S81t4a/W

ID気づかなかった
いいねぇ
691デフォルトの名無しさん:2014/03/13(木) 17:42:17.30 ID:iT1RVwOl
ロジックではなくUIの読み込みが遅いのでアニメーションで誤魔化したいんだけど
遷移前にアニメーション開始、ロードしたUserControlのLoadedのタイミングで終了
ってやると何も表示されないで終わる・・・。タイミングの取り方も問題だろうけど
UIスレッドが一本なのでロード中固まってしまうという話な気がするので・・・対策が
思いつかないわ・・・。何か良いアイディア無い?
692デフォルトの名無しさん:2014/03/13(木) 18:12:35.85 ID:kiH7w+gK
UIの読み込みが遅いって何?
693デフォルトの名無しさん:2014/03/13(木) 18:45:20.53 ID:QAr7puSZ
ロジック(VM?)じゃなくて、読込が遅くなるほど重量級のUserControlって一体…
694デフォルトの名無しさん:2014/03/13(木) 18:48:10.55 ID:iT1RVwOl
客先に指定された買い入れのWinFormsのコントロール
複数あるのも原因だけど張り付けただけでも全部読むと秒単位固まるんだよね・・・
あまりに糞過ぎて捨てたいんだけどそうもいかんという。PRISMの問題でもあるんかなぁ
695デフォルトの名無しさん:2014/03/13(木) 18:59:44.80 ID:ZTADfK4m
> UIスレッドが一本なのでロード中固まってしまうという話
既に答えが出てるじゃないか。
UIスレッドが1本なのが問題なら、2本にすればいい。

多少、泥臭くて面倒だが、誤魔化す為のアニメーションなら現実的なレベルだろう。
696デフォルトの名無しさん:2014/03/13(木) 19:19:15.64 ID:EdKYJdmY
RibbonWindow使ったら外枠がおかしくなる現象はどうすれば治りますか?
697デフォルトの名無しさん:2014/03/13(木) 19:26:16.05 ID:dycS71DR
>>695
UIスレッド2本とかねーよw
698デフォルトの名無しさん:2014/03/13(木) 21:07:13.29 ID:iT1RVwOl
>>695
>>697
うん、俺も出来ないと思ってたんだけど二本に出来るんか?しかも一つのウィンドウの中とかで。
699デフォルトの名無しさん:2014/03/13(木) 23:56:20.01 ID:ZTADfK4m
>>698
当然、1つのウィンドウの中で2つのUIスレッドは使えない。

別ウィンドウなら別のUIスレッドが使えるので、
別ウィンドウを元のウィンドウのすぐ手前に配置して、1つのウィンドウのように見せる。
700デフォルトの名無しさん:2014/03/14(金) 00:45:20.87 ID:bbGk2WDX
>>699
誰得だよそれ…(´Д` )
701デフォルトの名無しさん:2014/03/14(金) 04:27:21.25 ID:HgH3MD9i
なにを言ってるんだろう…とまぁ俺の無知なんだろうなと静観してたが、
そういう意味かよ…スプラッシュウィンドウ的な単語を使えば誰でも分かったと思うんだがw
702デフォルトの名無しさん:2014/03/14(金) 06:40:40.34 ID:SfVBkUP1
遷移前に一回裏でnewしておけば早くなるパティーンもあるけど
703デフォルトの名無しさん:2014/03/14(金) 12:52:11.84 ID:oQoAR40W
>>696
あれ出来悪いからソース付きの旧バージョン使った方がいいと思う
出来自体は一緒だが自分で修正しやすい。
名前空間とか差し替えたらそのまま使える
http://www.microsoft.com/en-us/download/details.aspx?id=11877
704デフォルトの名無しさん:2014/03/15(土) 21:20:28.85 ID:s/ZKyli9
こんな結果になるんなら、
命名はお姫様細胞で良かった。
705デフォルトの名無しさん:2014/03/16(日) 17:10:00.52 ID:oNuhFUS2
Binding.IsAsyncに2週間早く気づいていれば・・・こんなことには
706デフォルトの名無しさん:2014/03/24(月) 01:04:16.11 ID:WN1ig2I7
DataGridのセルにComboBox(テキスト編集可能状態)を入れた状態でそのセルの
文字を編集した時に日本語だけ入力した場合編集を終了してもデータが入力された
事にならないみたいなんだけど原因分かる人います?
アルファベットだけとかアルファベット+漢字みたいに混ぜると大丈夫だし不思議な
動きな気がしているんだけど・・・。
707デフォルトの名無しさん:2014/03/24(月) 01:58:35.73 ID:trnp8Ujb
Control.Backgroundの規定値はBrushes.TransparentとMSDNには書いてあるけど
これ間違ってるよね?
実際はnullでマウスイベントが取れなくてちょっと悩んだ。
708デフォルトの名無しさん:2014/03/24(月) 15:21:57.76 ID:N2+Y2XM3
>>707
なんかVS2012とVS2013で挙動が違った記憶があるんだけどどうだったかなぁ。
同じ.NET 4.0 Full向けのプロジェクトを開いているのに2012ではBackgroundが
設定されていないと白だかだったのが2013で開くと透明になっていた気がする。
709デフォルトの名無しさん:2014/03/24(月) 21:50:09.10 ID:trnp8Ujb
http://ideone.com/IARf72

こんなんやってみたら最後の要素しか表示されない。
DataTemplate使えばいいんだけど、何が間違ってるのか分からん。
710デフォルトの名無しさん:2014/03/24(月) 22:06:03.81 ID:rS2wZVev
それだとTextBlockはインスタンス一つしか作られないから
711デフォルトの名無しさん:2014/03/24(月) 22:08:08.92 ID:bZk4pJSQ
1つのTextBlockが複数の親を持つことになるからじゃないの
712709:2014/03/24(月) 22:33:11.68 ID:trnp8Ujb
あーなる、言われてみればそうだわ。
すっきりしたわ、ありがとう。
713デフォルトの名無しさん:2014/03/25(火) 21:28:51.46 ID:p8802FLC
>>707
透明のブラシを指定してもマウスのイベントは透過するはずだけどねw
714デフォルトの名無しさん:2014/03/26(水) 00:05:22.70 ID:Pj9p4mhe
>>713
TransparentだとMouseLeftButtonDownが取れるけど、nullだと下の要素に行っちゃう。
この辺の事ってどこに書いてあるんだろう。
715デフォルトの名無しさん:2014/03/26(水) 10:08:12.08 ID:s2g7M8bp
716デフォルトの名無しさん:2014/03/30(日) 23:18:57.63 ID:a/E0lR2i
ComboBoxをIsEditable=Trueにした状態で実行時に日本語のみを入力すると
IMEにGoogle日本語入力使っているとPropertyChangedが来ない事に気付いた。
アルファベットのみやMS-IMEだとちゃんと来るんだけど・・・orz
これってどんな状況でも入力された文字を受け取れる方法ってあるかな?
ATOKとかはどうなんだろうなぁ・・・。
717デフォルトの名無しさん:2014/03/31(月) 00:49:52.40 ID:X716KWav
Nyaruruとかいう人が随分前にそんな記事書いてたな。
詳細は忘れたが
718デフォルトの名無しさん:2014/03/31(月) 01:08:06.85 ID:e6ZWuSMF
UpdateSourceTriggerがPropertyChangedでソースがupdateされないって意味だろうか…
コードビハインド側でならイベ拾えてるとかあるし、もし発生してるなら
手動でUpdateSourceしちゃうとか…
719デフォルトの名無しさん:2014/03/31(月) 02:15:54.07 ID:ETDm8N10
>>717
その人がGoogleIMEに絡んでてWinRTのIMEは魔界だ的なつぶやきしてた希ガス。
個人的にはあの人をIMEなんかに時間とらしてるのが勿体無い希ガス
720デフォルトの名無しさん:2014/03/31(月) 19:48:13.83 ID:I0zYfHgV
MSは昔からIMEの仕様をいい加減にしてる
Googleはしっかり対応できないので適当に実装をしてる
研究費はかけたくないみたいだ

MSのアーキテクトがちゃんと考えてないんだと思う
IME使ってない人間が開発してる恐れもある
721デフォルトの名無しさん:2014/03/31(月) 19:51:27.81 ID:pqvpBedH
>>720
あれはepson製でしょう?
722デフォルトの名無しさん:2014/04/02(水) 12:36:43.32 ID:VeuFJ2+/
MS-IMEって中華製なんでしょ?
723デフォルトの名無しさん:2014/04/04(金) 16:10:32.83 ID:eGYDDpSi
XAMLで配置したコントーロルのうち、テキストを入力可能なものを選んでC#コード側である処理を行いたい場合、どうやればいいですか?
コントロールを一個一個取得するコードはできていて、デバッグ実行すると各コントロールのインスタンスのプロパティは見えています。
724デフォルトの名無しさん:2014/04/04(金) 16:16:47.80 ID:fbrPwcTM
>>723
「テキストを入力可能なもの」というのが、
IsReadonly=falseのものを指してるのか、IsEnabled=trueのものなのか、
文字列を設定可能なコントロールを指してるのか、意味不明なんだが
725デフォルトの名無しさん:2014/04/04(金) 16:23:49.39 ID:eGYDDpSi
>>724
画面上に存在していて、テキストの入力を受け付けるコントロールを選びたいので
前者が意味的に近いと思います。
726デフォルトの名無しさん:2014/04/04(金) 16:29:31.87 ID:fbrPwcTM
>>725
コントロールを取得するコードがあり、各コントロールのインスタンスのプロパティも見えてるんなら
あとはやりたいように実装すればいいだけでは?

もしかして「見えてる」とは、コードじゃなくWPFビジュアライザのこと言ってる?
727デフォルトの名無しさん:2014/04/04(金) 16:34:47.41 ID:33nh4Dwt
ホントに質問の意味がわからない…
よもや if を知らないとかそういうレベル…?もうwpfうんぬんやないでそれだと。。
728デフォルトの名無しさん:2014/04/04(金) 16:39:38.48 ID:eGYDDpSi
>>726
コントロールを1つずつスキャンするコードの中で、
今スキャンしているコントロールがTextBoxなら、追加の処理を行う、
ということは実現できています。
これを、TextBoxに限定せず、一般のコントロールに対して統一的に
文字が入力可能なコントロールを選別する方法があれば知りたい、というわけです。
729デフォルトの名無しさん:2014/04/04(金) 16:42:21.56 ID:QbEyL1Pb
そもそも入力できるコントロールなんて幾つもないだろ
730デフォルトの名無しさん:2014/04/04(金) 16:45:14.80 ID:fbrPwcTM
>>728
そもそもなんでそんな面倒なことせにゃならんの?
UIが動的に変化するにしても、ターゲットとなるコントロールの正体が判らんとは、おかしいにも程があるだろ
731デフォルトの名無しさん:2014/04/04(金) 16:46:52.14 ID:nYgZv8ve
入力可能というのをどうやって判断するのか
732デフォルトの名無しさん:2014/04/04(金) 16:48:15.24 ID:XTcslJkb
統一的にという話ならUIElementにTextInputイベントがあるくらいだから
WPFのコントロールでテキスト入力不可能なものなんてないんじゃないの
733デフォルトの名無しさん:2014/04/04(金) 16:54:56.35 ID:fbrPwcTM
Textプロパティがあるかで判断する方法も考えたが、
そもそもContentにも文字列設定可能だし
だからこんなこともできちゃうし・・・

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="223.611" Width="375.521">
こんにちは
</Window>

ある意味WPF最強w
734デフォルトの名無しさん:2014/04/04(金) 16:58:20.60 ID:eGYDDpSi
>>730
タブレットデバイス向けに、オンスクリーンキーボードを自動的に出したり引っ込めたりする必要があります。
WindowsStoreアプリなら、入力可能な部分にフォーカスが当たると自動的にオンスクリーンキーボードが出ますが
ある制約があって、WindowsStoreアプリではなく、デスクトップアプリとして実装する必要があります。
>>731
まさにそれが知りたいです。

>>729
これまでのご意見を総合すると、コントロールを明示的に指定する方法がシンプルでよさそうです。
735デフォルトの名無しさん:2014/04/04(金) 17:20:25.39 ID:33nh4Dwt
入力可能な個所は必ずTextBoxまたはTextBoxBaseであると限定できるなら、
VisualTreeHelper あたりでどうにかできそうではあるけど…
ComboBoxのIsEditable=TrueはデフォTextBoxみたいだ

まぁ、限定できない数じゃないしコントロールの型で判定した方がいいな
736デフォルトの名無しさん:2014/04/06(日) 18:12:16.62 ID:6q+0yI43
WPFのイベント・バブリングについて質問があります。
あるWindowの中に配置されているコントロールで、例えば、ボタンをクリックしたmousedownイベントは、
バブルアップして最終的にはそのWindowのmousedownイベントをも発火させると思っています。
しかし、ボタンをクリックしてもWindowのmousedownイベントのハンドラは発火しません。
どうしででしょうか?
737デフォルトの名無しさん:2014/04/06(日) 18:20:27.77 ID:Z2CFn8dC
>>736
これのせい
http://msdn.microsoft.com/ja-jp/library/system.windows.routedeventargs.handled%28v=vs.110%29.aspx

そんなに難しい話ではない
Handledプロパティがtrueになって処理済とされたイベントは
特殊な方法で初期化されているイベントハンドラにしか通知されない
738デフォルトの名無しさん:2014/04/06(日) 18:28:31.15 ID:6q+0yI43
>>737
ボタンのmousedouwnイベントを、最終的な親のwindowのmousedownイベントにまで届けるには具体的にどうすればいいのですか?
各コントロールのHandledプロパティはデフォルトでfalseのようなので、勝手に親に伝搬していくと思ってるのですがwindowにまで届きません。
739デフォルトの名無しさん:2014/04/06(日) 18:34:23.80 ID:6q+0yI43
あれ?もしかしてPanelのHandledはデフォルトでtrue?
740デフォルトの名無しさん:2014/04/06(日) 18:37:57.90 ID:6q+0yI43
PanelにHandledプロパティなんかなかった・・・orz
741デフォルトの名無しさん:2014/04/06(日) 19:16:49.40 ID:iSI+gb3E
Buttonの場合は左クリックのMouseDownはたぶんOnMouseDownの時点で握りつぶすようだけど、
よく意図が分からん仕様だな。

MSDNには「一部のコトロールはそういう処理をする」とだけ書いてある。
742デフォルトの名無しさん:2014/04/06(日) 22:04:23.83 ID:SA366w7Y
>>738
どうすればっていうのは737に書いてると思うのだけど
743デフォルトの名無しさん:2014/04/07(月) 11:21:09.55 ID:OQ0TLFwv
>>742
ウィンドウのコンストラクタの中で
MainWindow1.AddHandler(MouseDownEvent, new RoutedEventHandler(mouseDownHandler), true);
ってやったら自作のmouseDownHanderが呼ばれました!さんくすこ!
744デフォルトの名無しさん:2014/04/07(月) 23:48:20.57 ID:cV3kIsRb
WPF本格的に勉強したいんだが、いい本ない? 洋書でもいい
業務では1年ちょい使ってるが、職場に有識者いない感じ

ProWpf4.5とか評判良さそうだから興味あるが、誰か読んだ人いないか
745デフォルトの名無しさん:2014/04/08(火) 00:28:47.35 ID:1/sEKcuY
>>744
本格的を実用的と取ると適切な本はないと思った方がいい

しっかり使うには基本のフレームワーク以外も使う必要があるけどそれについての本なんてない
海外のサイトなどを地道に見ていくしかないけど一人じゃ厳しい

何とかして実力者を見つけるか勉強会に出るぐらいかな
746デフォルトの名無しさん:2014/04/08(火) 00:51:54.73 ID:KmEcitHT
>>744
まあWPFに限らず洋書の技術本なんてほとんど全部拾え(以下自粛
その本もいろんなところに落ちて(

まあこれなら合法的にタダで読める。
もっとも150ページ弱でWPFを解説しきれるはずもなく、中身スカスカだけど。
https://docs.google.com/viewer?url=http://www.syncfusion.com/Content/downloads/ebook/WPF_Succinctly.pdf

しかし、1000ページオーバーの洋書でもすべての重要項目をカバーしきれないのが
WPFの恐ろしいところ。
747デフォルトの名無しさん:2014/04/08(火) 01:30:30.31 ID:a6XK4Xv5
洋書もサイトのヘルプに毛が生えた程度のものが多い感じだね。
結局はこの手の本って現場でモリモリ書いているような人が書いてないから
当たり障りの無いことしか書かれてないし実用性求めたらろくな本がないもんだけど
WPF関連は輪をかけて大した本が無い状況。
英語で良いならstackoverflow眺めながらモリモリ書くのがベストだね。
フレームワークとかもナマモノだしな。
748744:2014/04/08(火) 08:53:16.39 ID:XRLU8ip5
>>745-747
マジかー ありがとう
とりあえず洋書読んで、フレームワークもOSS多いし中身読んでって感じでいってみるわ
749デフォルトの名無しさん:2014/04/12(土) 13:10:29.79 ID:lhtyBYQc
>>744
WPF Unleashedもおすすめだよ。
proよりもこっちの方が読みやすい英語だった。
あとはcodeplexとかで、いろんなコード見てみるのがいいんじゃないかな。
750デフォルトの名無しさん:2014/04/13(日) 15:36:54.29 ID:zCF4EGvD
あああああwpf難しい
向いてないね俺
751デフォルトの名無しさん:2014/04/13(日) 15:45:43.08 ID:mb1OfksF
WPFは時間の投資に対してリターンの少ない環境だとは思う
しかしディスプレイの高解像度化でDPI依存が辛いからWPFに移る予定
752デフォルトの名無しさん:2014/04/13(日) 16:24:45.66 ID:x/KtMqk9
バインドの設定済みのxamlから、物凄くアバウトなVM雛形を吐いてくれるツールってないかな
まぁ、自力で書いてもそんな時間かからんが、既にあるならソレ使おう的なw
753デフォルトの名無しさん:2014/04/15(火) 11:56:27.24 ID:7sxQZ0IC
>>749
Adam Nathanのやつだよね?
ストアアプリやる必要性からWPF含めてXAML本幾つか読んだんだけどこの人の本が一番いい具合に突っ込むところは突っ込みつつかつ全体を網羅してまとまってた希ガス。
754デフォルトの名無しさん:2014/04/16(水) 12:41:54.62 ID:U8lFDcvm
MSの新CEO・・・?と一瞬思ったが、全然違った
CEOの名前が全然覚えられない
755デフォルトの名無しさん:2014/04/16(水) 19:05:52.10 ID:81kPth3L
なんとかナデラだろ
日本人っぽい姓で覚えやすいw
756デフォルトの名無しさん:2014/04/16(水) 22:43:05.28 ID:uN/tBaHz
>>753
そうそう。ProWPFもざっと読んだけど、Unleashedの方が分かりやすかった。
WPFを始めたばかりの人でも、この本はHowTo的なサンプルコードが一杯あって読みやすいんじゃないかな。
あと、こういう所でよくミスする、ってポイントの説明もあっていい感じ。
こんな本の和訳でも出れば、WPFももっと普及するだろうに、、、と本当思う。
757デフォルトの名無しさん:2014/04/17(木) 00:27:17.18 ID:WOVbM93u
MSは普及させる気があるのか

OfficeアドインもHTML5+jsとなるとシルバーライトの二の舞か
758デフォルトの名無しさん:2014/04/17(木) 00:38:52.72 ID:4cA3qYT/
むしろこんな筋が悪い技術普及してもらっては困る
759デフォルトの名無しさん:2014/04/17(木) 01:31:22.88 ID:xO4Uc49B
>>758
だからと言ってHTML5は勘弁して欲しいわ
760デフォルトの名無しさん:2014/04/17(木) 01:38:59.02 ID:az0Jg9EJ
javascriptとかいうゴミ
761デフォルトの名無しさん:2014/04/17(木) 01:51:03.70 ID:5kGvZy5A
カッチリ冗長未完成を取るか、いい加減変態未完成を取るかか・・・
ひでぇ選択肢だ・・・
762デフォルトの名無しさん:2014/04/18(金) 22:25:02.42 ID:aLn8JpVk
WPFのグラフィック本当に糞遅いな。

StremGemoetry使ってたった数千程度の頂点のPolylineを書いてるだけなのに
何で秒単位の時間が掛かるんだ?
GDI+ですらこんなの一瞬で終わるのに。

こんな性能じゃ何年たっても一向に普及しないのはむしろ当然だわ。
763デフォルトの名無しさん:2014/04/18(金) 22:36:18.34 ID:QSQ7rns3
ベクターベースのUIを持ってる以上のものは期待しない方がいいな
ビットマップのImageSourceとかストレッチしないつってんのにアンチエイリアスかけるし
原寸表示してんのにニアなんちゃらとかいう特殊なオプションが必要って
764デフォルトの名無しさん:2014/04/19(土) 20:21:32.19 ID:IBk9cZtN
ChromeやFirefoxみたいなタブ管理機能を備えたアプリケーションを作りたいのですがどうすればいいのでしょうか
765デフォルトの名無しさん:2014/04/19(土) 20:25:41.67 ID:7yO113Ux
みたいなタブ管理ってどっからどこまでのことなのかまるでわからん
766デフォルトの名無しさん:2014/04/19(土) 20:35:26.81 ID:IBk9cZtN
D&Dでタブを動かすことができる
タブをウィンドウに分離できる
タブの固定などができる
タブの下にUrlなどの情報が表示される
などです

ChromiumやFirefoxのソースコードで作ろうと思ってビルドで挫折したので馴れている.NETで作ろうと思ったわけであります
767デフォルトの名無しさん:2014/04/19(土) 20:44:46.03 ID:ya8eWhKL
どうすればいいってそのへんの個別の要件を満たす作り方全部教えろってかw
せめてTabControlなり張り付けて問題にぶつかったらにしろと…
768デフォルトの名無しさん:2014/04/19(土) 20:50:28.06 ID:IBk9cZtN
とりあえず一番上はネット上を参考に、一番下はタブ生成時にTabItemに挿入することで実装できました
タブの固定は優先度が低いのでそのうち実装する予定です
ただSimpleTabItemなどを参考にしましたが丸みを帯びたデザインにするのができません
769デフォルトの名無しさん:2014/04/19(土) 20:50:53.07 ID:nSzj8sir
3,4番目を人に聞いてる奴に1,2番目の独自実装は無理
770デフォルトの名無しさん:2014/04/19(土) 21:46:26.00 ID:pzsg7m6u
>>768
そういうのは自分でキャンバスとかにゴリゴリ乗っけたり描いたりしたほうがいいんじゃないのか…
771デフォルトの名無しさん:2014/04/19(土) 21:56:06.43 ID:UQPJSFXx
>>768
SimpleTabItem って Blend のこれで合ってるかな?
http://msdn.microsoft.com/ja-jp/library/cc294894(v=expression.40).aspx

あってるなら、SimpleTabControl を配置して、そこにある TabItem を選択して右クリック。
「テンプレートの編集」-「現在の編集」で ControlTemplate の編集ができるから、そこで Border の CornerRadius を変更するだけ。
772デフォルトの名無しさん:2014/04/19(土) 22:31:29.02 ID:IBk9cZtN
SimpleTabItemですが正確には、Xamlで書いてもうまくいかずに、ソースコード中でCornerRadiusを変更したBorderを入れましたが四画の中に四角が入りました
773デフォルトの名無しさん:2014/04/19(土) 22:44:36.25 ID:wkJcdH8J
作れば?としか言いようがないなw
774771:2014/04/19(土) 22:53:38.77 ID:UQPJSFXx
>>772
そのコードは、おそらく ControlTemplate を変更してるんじゃなくて、単に Border を TabItem に入れてるだけじゃないかと。

Blend から SimpleTabControl を追加したなら、プロジェクトに "Simple Styles.xaml" ってのが追加されてるはず。
そのファイルを開いて x:Key="SimpleTabItem" を検索。
その何行か下にある <Border Margin="0,0,-4,0" x:Name="Border" ... にある CornerRadius="2,12,0,0" の数値を適当に変更してみて。

何を変更しているか意味が分からないなら、この辺のページを読んで。
http://msdn.microsoft.com/ja-jp/library/ms750613(v=vs.110).aspx
http://msdn.microsoft.com/ja-jp/library/ms745683(v=vs.110).aspx
http://msdn.microsoft.com/ja-jp/library/ee230084(v=vs.110).aspx
775デフォルトの名無しさん:2014/04/19(土) 22:56:31.30 ID:IBk9cZtN
>>774
そういう意味ではなくて、動的にタブを追加しているためかわかりませんが、SimpleTabItemのデザインが適用されない or 適用方法がわからないです
776771:2014/04/19(土) 23:13:33.39 ID:UQPJSFXx
>>775
まだ手探りなのはわかるけど、まずは、>>774 の URL を読んでみて。
WPF はサンプルが全然少なくて、基本がわかってないと、しょっちゅうつまずくことになるよ。

それで、Style を適用させるには、前提として App.xaml に "Simple Styles.xaml" がマージされていることを確認。
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Simple Styles.xaml"/>
...

あとは、Xaml から、こんな感じで全部の TabItem に適用させるか、
<Windows.Resources>
<Style TargetType="TabItem" BasedOn="{StaticResource SimpleTabItem}" />
...

もしくは、コードからこんな感じで Style を設定する。
var item = new TabItem {
Style = (Style)FindResource("SimpleTabItem")
};
777771:2014/04/19(土) 23:17:42.98 ID:UQPJSFXx
書き忘れ。

>>775
多分、動的に追加しているのが原因。
Blend から SimpleTabItem を追加すれば Style="{DynamicResource SimpleTabItem}" って自動で書いてくれるけど、
動的にやるなら >>776 みたいに自分で設定してやらないとダメ。
778775:2014/04/20(日) 18:34:39.90 ID:noaEY9Ib
有難うございます
できました
779デフォルトの名無しさん:2014/04/23(水) 01:18:12.29 ID:Z6l2VC5P
NavigationWindowのTemplateをいじりたいのですが
ネットにあるサンプルを張り付けてもスタイルが反映されません。
何か原因はわかりませんか。

NavigationWindow.Templateに直接ControlTemplateを渡すと
とりあえず読み込むページが反映されるようです。
780デフォルトの名無しさん:2014/04/23(水) 09:20:41.34 ID:GvqsLaip
>>779
その説明では、さっぱり分からない。もっと具体的に。
Template をどういじりたいの?ネットにあるサンプルってどれ?とりあえず読み込むページって?
781デフォルトの名無しさん:2014/04/23(水) 22:27:48.48 ID:Z6l2VC5P
<NavigationWindow x:Class="WpfPage.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" Source="MainPage.xaml">
<NavigationWindow.Resources>
<Style TargetType="{x:Type NavigationWindow}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type NavigationWindow}">
<DockPanel Background="WhiteSmoke">
<TextBlock DockPanel.Dock="Top" Text="Header"/>
<TextBlock DockPanel.Dock="Bottom" Text="Footer"/>
<AdornerDecorator DockPanel.Dock="Top">
<ContentPresenter ClipToBounds="true" Name="PART_NavWinCP"/>
</AdornerDecorator>
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</NavigationWindow.Resources>
</NavigationWindow>
782デフォルトの名無しさん:2014/04/23(水) 22:32:49.65 ID:Z6l2VC5P
http://msdn.microsoft.com/ja-jp/library/aa970054(v=vs.90).aspx
このページを参考にしたのだけどこれだとスタイルが適用されません。

<NavigationWindow.Template>に直接ControlTemplateを渡して
ContentPresenterを{TemplateBinding Content}とすると一応期待した動作になります。
これが正しい解決なのか横着なのかもよくわかりません。
783デフォルトの名無しさん:2014/04/23(水) 23:52:30.02 ID:GvqsLaip
>>782
http://stackoverflow.com/questions/431940/how-to-set-default-wpf-window-style-in-app-xaml
・TargeType の指定が間違ってる。NavigationWindow ではなく MainWindow が正解。型が一致してないと適用されない。
・NavigationWindow から派生する型で Style を使いまわしたい場合は、x:Key を使え。
784デフォルトの名無しさん:2014/04/24(木) 00:13:19.21 ID:TPSxVWf5
>>783
できたよありがとう
Styleの外出しも参考になりました
785デフォルトの名無しさん:2014/04/24(木) 23:09:53.14 ID:KITKQSDs
ユーザーコントロールを作って、それをウィンドウの中で使おうとすると
Visual Studioのデザイナで
「オブジェクト参照がオブジェクト インスタンスに設定されていません。」
とかいうエラーを出してプレビュー画面にエラーのスタックトレースが列挙されるのはどうにかなりませんか?
ちなみに実行しても何の問題も生じません。エラーで騒いでるのはVisutal Studioのデザイナ画面だけ。
786デフォルトの名無しさん:2014/04/24(木) 23:19:53.15 ID:TNfn8SPs
どうせApplicationとかAssembly触ってんでしょ
http://msdn.microsoft.com/ja-jp/library/bb546934%28v=vs.90%29.aspx
787デフォルトの名無しさん:2014/04/24(木) 23:35:38.02 ID:fWm8fXw6
>>785
コメントアウトを使って、どれが原因か確かめてみたら?
788デフォルトの名無しさん:2014/04/24(木) 23:46:03.98 ID:6+qpQPlw
App.configに書いた設定読む処理が入ってたりとかするとアレになる
789785:2014/04/25(金) 10:59:30.59 ID:u5lUGuWK
親ウィンドウの位置を補正するコードをコメントアウトしてみたらデザイナのエラーは消えました。
コントロールでそんなことするなと言われればそれまでなんですが、どうしてもその処理は必要なので、
tryの中で呼んで例外を握りつぶして解決してやったぜ。ワイルトだろぉ?
790デフォルトの名無しさん:2014/04/25(金) 11:14:11.47 ID:nFLk447L
はい、そういうスレじゃないんでね…
791デフォルトの名無しさん:2014/04/25(金) 11:16:15.91 ID:TtkNide3
くせーなこいつ
792デフォルトの名無しさん:2014/04/25(金) 11:41:12.29 ID:RiZFk07a
そこまで条件というか原因がわかっていてなぜ握りつぶすのか
793デフォルトの名無しさん:2014/04/25(金) 19:22:30.38 ID:BeYqZeZk
デザインモードかどうか判定しろよ
794785:2014/04/26(土) 21:42:24.05 ID:cOmCdjvc
DesignerProperties.GetIsInDesignMode(this)
なるほどね
795デフォルトの名無しさん:2014/05/02(金) 17:36:10.65 ID:4xxKAu7L
DrawingContext.DrawLineでドット単位のグラフを書いてるんだけど、RenderTargetBitmap.Renderすると、アンチエイリアスがかかっているのかぼやけた感じになったり重ね描きしたところがアルファブレンドしたような感じになってしまいます
ビットマップにスケーリングされないように描画するにはどうしたらよいのでしょうか?
796デフォルトの名無しさん:2014/05/02(金) 21:21:14.44 ID:dPjFFZXQ
>>795
RenderOptions.SetBitmapScalingMode で
BitmapScalingMode.NearestNeighbor を指定すれば良いんじゃないかなぁ。
797デフォルトの名無しさん:2014/05/03(土) 00:27:40.84 ID:pUvksEKj
WPF意外と使えるじゃん
今までゴミだと思ってて悪かったな
798デフォルトの名無しさん:2014/05/03(土) 12:43:51.56 ID:BZBXW0bi
>>797
いつの間にいい女になってたんだって感じだな
こんなんだったらもっと早く付き合っておけば良かったと後悔
799デフォルトの名無しさん:2014/05/03(土) 13:09:00.76 ID:60DmAUT2
外面だけの女だと思ったら、内面も柔軟でハイスペックな子だったという。
Formちゃんと同じ付き合い方だと合わなかっただけで。
800デフォルトの名無しさん:2014/05/03(土) 14:29:17.82 ID:I7HZgmcz
>>798
もう俺は開発しつくしたわ
801デフォルトの名無しさん:2014/05/03(土) 18:52:02.87 ID:/Id5A65T
>>796
ありがと、でもだめだった
コードからの指定だと利かないみたい
結局グラフのなかはwritablebitmapでやることにしました
802デフォルトの名無しさん:2014/05/04(日) 14:35:23.95 ID:fQELNO7r
音声ファイルのリソース化がイマイチわからない
画像ファイルはpack://application:,,,/image/gazou.pngみたいな感じの文字列をUriに指定したら読み込めるんだが、
mp3で同じ事しても再生されてくれない、ちなみにMediaPlayerでやってる
ただ絶対URIで指定すると再生してくれるんよ、もしかして画像と音声じゃ指定の仕方とかファイルの起き方とかが違う?

画像
BitmapImage m_bitmap = null;
filename = "pack://application:,,,/image/gazou.png";
m_bitmap.UriSource = new Uri(filename);

音楽
MediaPlayer player = new MediaPlayer();
String soundfile = "pack://application:,,,/sound/test.mp3";
player.Open(new Uri(soundfile));
803デフォルトの名無しさん:2014/05/04(日) 21:38:35.20 ID:izVfMrBs
MediaPlayerやMediaElementは物理ファイルじゃないと扱えないし
確かpackスキーム自体扱えないはず
804デフォルトの名無しさん:2014/05/23(金) 23:18:22.03 ID:vmjDfDxI
.net3.5でリボンを使おうと考えていますが以下のコードで
Windowの右側と下側に黒い縁が入ってしまいます。
どこを修正すればよいでしょうか。

<r:RibbonWindow x:Class="Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:r="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
Title="MainWindow" Width="400" Height="300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<r:Ribbon Grid.Row="0"/>
<Grid Grid.Row="1" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TreeView Grid.Column="0" />
<GridSplitter Grid.Column="1" Width="5" ShowsPreview="True"
HorizontalAlignment="Center" VerticalAlignment="Stretch"/>
<Grid Grid.Column="2">
<TextBox/>
</Grid>
</Grid>
</Grid>
</r:RibbonWindow>
805804:2014/05/23(金) 23:23:42.80 ID:vmjDfDxI
ちなみにOSはWindows8.1です。
またRibbonWindowではなく普通のWindowにすると黒い縁は消えます。
ただしクイックアクセスツールバーはタイトルバーから独立します。
806デフォルトの名無しさん:2014/05/24(土) 23:12:25.97 ID:xLbzThu2
謎。もっと最小のXAMLで、RibbonWindowタグのみでも出るから…
807デフォルトの名無しさん:2014/05/25(日) 14:00:32.77 ID:OQ+TaJO4
OS毎の基幹テーマと相性悪いんじゃね
Win8だと4.5の標準リボンあるし、まああれも出来悪いままだが
808デフォルトの名無しさん:2014/05/27(火) 13:10:53.85 ID:qiFpmg2w
WPFは死にました
マイクソソフトの次回作に御期待ください
809デフォルトの名無しさん:2014/05/27(火) 15:01:17.53 ID:MyBEMO4q
今だWPFは人類最強のUIフレームワークなんだが(´・_・`)
810デフォルトの名無しさん:2014/05/27(火) 15:19:24.90 ID:D6t3bmO9
今だWPFは人類最強のメモリリークフレームワークなんだが(´・_・`)
811デフォルトの名無しさん:2014/05/28(水) 00:01:18.99 ID:OhG7X8yk
まあストアアプリウィンドウ表示がどんなもんかだな
812デフォルトの名無しさん:2014/05/28(水) 00:44:39.84 ID:yK8N9r8P
あんなの期待する方がどうかしてる。
ないよりマシ以上の意味があるわけない。
813デフォルトの名無しさん:2014/05/28(水) 03:49:15.67 ID:4bzEKq86
いや、ぶっちゃけ今でも新規案件・リプレース共にWinFormsなんだよな
Form/WPFの熟練者って9:1くらいの割合なんだよな、チーム仕事する以上これじゃ採用できないよ
プロジェクト毎にチーム組織して終わったら解散、ずっとメンテもできないし
WPFを習熟するまで遊んでられるほど余裕あればいいけどまぁないよね
あえてWPFに熟練してないメンバーがあえてそこの実装にリソース割く意味ないんだよね
なによりWPFはFormと比較してパフォーマンスが悪すぎる
814デフォルトの名無しさん:2014/05/28(水) 07:31:13.22 ID:zVPVrg22
そんなの10年は聞いてるから
もう少し別の話はないのかボケ老人よ
815デフォルトの名無しさん:2014/05/28(水) 10:40:46.55 ID:EV+xsXSJ
ストアアプリは酷いのばっかりだよ・・
816デフォルトの名無しさん:2014/05/28(水) 17:18:55.05 ID:p7sTJoTy
それでもWPFより先あるだろ
817デフォルトの名無しさん:2014/05/28(水) 18:08:55.68 ID:6RxarYIU
818デフォルトの名無しさん:2014/05/28(水) 20:03:40.02 ID:8pIXW7AP
VisualStudioのフレームワークを公開してくれたらなぁ。
それでMFCのテンプレートみたいに手軽にそれなりのアプリを組み立てられるようにしてくれたらいいのに。
819デフォルトの名無しさん:2014/05/28(水) 20:23:47.83 ID:S21b1tjy
ストアアプリもXAMLで行けるんでそ?
820デフォルトの名無しさん:2014/05/28(水) 20:28:12.31 ID:pdzwiaYa
>>819
いけますよと。
けどいろいろ削られててWPFで使えるテクニックが使えないこともままあるけど。
821デフォルトの名無しさん:2014/05/28(水) 20:31:10.91 ID:aBbF8Esa
今後はストアアプリがメインだからな。
822デフォルトの名無しさん:2014/05/30(金) 01:33:42.65 ID:275MLMqb
ストアアプリもまだ別物になるだろうけど
XAMLをどれだけ引っ張るのかが気になるわ
823デフォルトの名無しさん:2014/05/30(金) 01:59:15.60 ID:pkh47Hh7
Surfaceは気合い入れたなって感じなのにWPFのやる気のなさはなんだ!
824デフォルトの名無しさん:2014/05/30(金) 05:24:30.86 ID:NSxBtZrn
>>823
そのまんま。
825デフォルトの名無しさん:2014/05/30(金) 06:26:25.40 ID:XChbjR+3
>>823
これからはユニバーサルアプリなんで。
大して変わらんよ。
826デフォルトの名無しさん:2014/05/30(金) 07:14:48.77 ID:XlqXV0+b
XAMLは捨てる気なさそうで大勝利
827デフォルトの名無しさん:2014/05/30(金) 08:35:39.26 ID:RH/4zgbb
XAMLのせいで糞アプリになる
828デフォルトの名無しさん:2014/05/30(金) 14:07:54.57 ID:tdeOqv8K
MSが魔改造したからな
829デフォルトの名無しさん:2014/05/30(金) 14:17:15.56 ID:hRCXFq8/
窓化出来ればUniversalAppでいいかな
830デフォルトの名無しさん:2014/05/30(金) 14:48:38.62 ID:6FbkfSIP
>>827
いーからXAMLよりイイフレームワークよろ
831デフォルトの名無しさん:2014/05/31(土) 01:40:35.30 ID:CeJidx2c
デスクトップやサーバー開発でフロントエンドにWPF使うメリットがないんだよな
すでにWPFに熟達していて学習コストないならいいけどそんな奴Win開発の何パーセントだよ・・・
OS X(Cocoa)とiOS(Cocoa Touch)のようにセグメントがまったく違うならわかるよ?
なぜデスクトップでWPF(XAML)なのか、しかもパフォーマンスが悪い、コントロールも足りない、バグも放置
デスクトップ・サーバーでWPF流行る理由が何一つないね、JavaもJavaFX2(FXML)始まる前から終わってるしね
なぜXMLなのかわからない、そもそも俺はウェブ含めてDOM(JS)が大嫌いなんだが
832デフォルトの名無しさん:2014/05/31(土) 02:10:11.10 ID:tLy9tu9w
>>831
泥でも林檎でもXML使ってんじゃん(´・_・`)
833デフォルトの名無しさん:2014/05/31(土) 05:36:31.91 ID:RIl8bhMB
馬鹿はスルー
834デフォルトの名無しさん:2014/05/31(土) 06:53:31.57 ID:inxuk/DM
でも、コントロールが足りない。表示品質が低いのは事実でしょ。スマホ以下の表示品質ってどうなのよ。
835デフォルトの名無しさん:2014/05/31(土) 07:10:14.16 ID:062NfEib
XAMLデザイナーがポトペタだけで完結してくれるようにもっと頑張ってくれれば
馬鹿でも使いこなせたのに

XAMLは静的だろうけど、デザイナーまで静的でどうするみたいな
836デフォルトの名無しさん:2014/05/31(土) 09:28:26.27 ID:FdQ8Co+W
nuget見ててもトレンドはASP+jQuery
WPFなんて存在感ないっすよ
酸素より薄い

WPFのタグついてるライブラリ370個しかないのに
JQueryはJQueryだけで460個もある
837デフォルトの名無しさん:2014/05/31(土) 09:50:01.84 ID:RP2ZCCFg
WPF単体で見るとそう悪くは見えないんだけど、
ブラウザのレンダリングエンジンの品質と比べると悲しくなるな

MSのやる気のなさがはっきりと表れてる
838デフォルトの名無しさん:2014/05/31(土) 10:49:16.26 ID:MIrX7ErA
本当にやるきが無いのが原因だろうか?
「技術力が無い」の間違いではないだろうか?
839デフォルトの名無しさん:2014/05/31(土) 11:05:20.94 ID:6LzyMI+6
それではまるで今まで技術力でのし上がってきたみたいじゃないか
840デフォルトの名無しさん:2014/05/31(土) 11:58:20.07 ID:FdQ8Co+W
とっつき悪いからだろ
間口がせまいと馬鹿が入ってこなくていいとか強がるアホがいるが
人口こそがパワーの本質やねん
841デフォルトの名無しさん:2014/05/31(土) 12:04:32.03 ID:tLy9tu9w
まぁストアアプリの方にWPFも寄せてくるんだろうね
842デフォルトの名無しさん:2014/05/31(土) 14:18:00.78 ID:orufI9PA
いちいちポップアップで最前面に出て来て自己主張するアプリが多すぎるのがWindowsの糞なところ
他の作業しててEnter押した瞬間に関係ないダイアログのOKボタン押されたりして頭真っ白になる
843デフォルトの名無しさん:2014/05/31(土) 14:19:37.89 ID:lYWWaR2/
とっつきが悪いのもあるけど、

パフォーマンス
柔軟性が高いと喧伝されてるが実際は柔軟性はWindows Formよりずっと低い

この2つが大きい。
844デフォルトの名無しさん:2014/05/31(土) 14:26:58.82 ID:5YmkD3+U
DataTemplateとContentPresenterの組み合わせが楽しい
845デフォルトの名無しさん:2014/05/31(土) 14:27:25.75 ID:l4Ub8RqP
WPFがFormsより柔軟性低いとかないわ
MDIの話でもしてるのか
846デフォルトの名無しさん:2014/05/31(土) 14:45:24.58 ID:6LzyMI+6
>>842
Vista以降だとノロノロとアニメーションしてくれるから防げる
847デフォルトの名無しさん:2014/05/31(土) 14:46:12.89 ID:YDBteSYu
>>843
柔軟性? 真逆じゃん。
848デフォルトの名無しさん:2014/05/31(土) 14:55:25.31 ID:lYWWaR2/
>>845
すまん今はもうWPF触ってないからうろ覚えだけど、
後発だからフレームワークの枠内でのデザインの柔軟性は当然高くなってるけど、
Windows FormだったらいざとなったらWin32API呼んだりウィンドウメッセージを
直接処理すれば出来たようなことがどうやっても出来なかったりやたら難易度が高かったりして
WPFは使いものにならないと思ったことが何度かあった。
849デフォルトの名無しさん:2014/05/31(土) 15:10:52.43 ID:tLy9tu9w
それこそ今までのやり方が出来ねーだろプギャーって言ってるだけじゃん。

何がしたいのかわからんけどWPFの作法でやれば解決策あったんじゃない?
そのプラットフォームに沿ったやり方しないと無理なのもあるだろうしね。
iPhone向けでウィンドウ重ねてくれと言ってるようなもんでは。
850デフォルトの名無しさん:2014/05/31(土) 15:25:57.93 ID:lYWWaR2/
WPF使ってる時点で「今までのやり方」じゃないと思うんだけどね。

当時は散々調べつくした上の結論だから、こっちの知識や能力不足じゃなく
WPFの本質的問題だと思う。
851デフォルトの名無しさん:2014/05/31(土) 15:30:53.24 ID:5YmkD3+U
Messengerパターンなしの時代の人かな
852デフォルトの名無しさん:2014/05/31(土) 15:46:27.40 ID:g2AZ3MPL
>>851
標準でもできるようになったん?
853デフォルトの名無しさん:2014/05/31(土) 16:56:09.75 ID:inxuk/DM
>>849
問題は、出来る方法があるとかないとかじゃなくて、WPFの作法に優位性があるかどうかでしょ。
854デフォルトの名無しさん:2014/05/31(土) 17:01:12.49 ID:l4Ub8RqP
柔軟性の話じゃなかったのか
855デフォルトの名無しさん:2014/05/31(土) 17:03:59.92 ID:l4Ub8RqP
結局WPFが優位になる領域ではWPFを採用するだけの話だと思うけど
856デフォルトの名無しさん:2014/05/31(土) 17:23:40.55 ID:g2AZ3MPL
そこって一体…
857デフォルトの名無しさん:2014/05/31(土) 19:04:03.14 ID:FdQ8Co+W
ダークマターでござい
858デフォルトの名無しさん:2014/05/31(土) 19:33:58.68 ID:BN0D5RiV
>>857
理論的にはあるはずだが誰も見つけられていない
って使い物にならないってことじゃないのw
859デフォルトの名無しさん:2014/05/31(土) 20:34:43.08 ID:2Ooe6qmU
>>853
前フォームで作ってて最近はストアアプリメインだけどレイアウトシステムも画面の重ね合わせやコレクションに対する表示方法にしてもMVVMに基づくコードの分離もフォームよりイイと思うけどなぁ

iPhone開発も最近してるが、IBもストーリーボードもびみょいのでXAMLライクにレイアウト出来る仕組み作って、それとMVVMCross合わせて開発して便利に思ってる。
860デフォルトの名無しさん:2014/05/31(土) 23:21:51.31 ID:ZrdYw0C6
FlowDocumentが糞すぎるのがいかん
861デフォルトの名無しさん:2014/06/01(日) 00:18:28.05 ID:F0mL7Lp4
WPFがーって言うかXAMLが・・・いや違うな・・・VSが問題なんだわ
XAML・ASP・Razorのコーディングって補完効かなさすぎてXcode使ってる錯覚に陥るw
862デフォルトの名無しさん:2014/06/01(日) 04:20:38.90 ID:xvg552Op
データバインディングは自分で両側作れば補完なんてなくても打てると思うがなあ
間違ってれば実行時にトレースでるし

あとASP.NET MVCは型付きで作ればIntelliSense効く
863デフォルトの名無しさん:2014/06/01(日) 12:01:48.17 ID:AGrJAw/q
ストアアプリでしか触ってないが補完十分じゃね?
864デフォルトの名無しさん:2014/06/02(月) 19:56:55.42 ID:C+eUgpih
Drag and DropでDrop先のエクスプローラ/デスクトップのパスを取得するにはどうしたらよいのでしょうか
865デフォルトの名無しさん:2014/06/02(月) 20:50:57.84 ID:7TN/u+Qn
>>864
これってWPFに関する質問なの?
866デフォルトの名無しさん:2014/06/02(月) 20:56:20.69 ID:C+eUgpih
少なくともAPIはWPFとFormsで異なっています。
どちらでも出来るかは結果がはっきりしていなければわかりません。
867デフォルトの名無しさん:2014/06/02(月) 21:44:16.38 ID:YT9YzNa9
結論から言うと、WPFやFormsのAPIでは無理
どちらでもドロップ先に関する情報は取得できない
868デフォルトの名無しさん:2014/06/02(月) 23:00:53.09 ID:C+eUgpih
>>867
それは残念です。WAはいくつか見かけたのでそちらを試します。
ありがとうございました
869デフォルトの名無しさん:2014/06/03(火) 22:53:50.88 ID:m0zdoCOe
Visual Studio 2013でWPFのTextBoxを継承した独自クラスを利用できません
自分の作り方がわるいのかとも思って調べて↓のサイトのプロジェクトを開いてみたところ
http://pro.art55.jp/?eid=919835

名前 "InfoTextBox" は名前空間 "clr-namespace:Art55.WpfControlLibrary;assembly=Art55.WpfControlLibrary" に存在しません。
というエラーが出たので互換性の問題なのでしょうか?
870デフォルトの名無しさん:2014/06/03(火) 23:02:44.37 ID:iLjoT6a+
WebBrowserコントロールをページ閲覧とかのためじゃなくて、
非表示のまま裏でログインしてデータ拾うために使ったりしたいんですけど、
コントロールってただnewしただけだと動かないです?
Loadedがいつまでたっても走らないんですけども…
こういうものはXAMLなり何かしらでウィンドウ上に配置しない限り動かないんですかね…?
871デフォルトの名無しさん:2014/06/03(火) 23:11:12.33 ID:kzI/DT6H
>>869
ソース見てないけど一度ビルドしてみた?
872デフォルトの名無しさん:2014/06/03(火) 23:23:29.30 ID:iOVcEbhq
>>870
WPFでは基本的に表示されてないものは実体は作られない。
大抵はApplyTemplate()すると非表示で実体が出来るがWebBrowserでやったことはないなあ。
873デフォルトの名無しさん:2014/06/04(水) 00:24:39.77 ID:Oker4VA2
WebClient か WebRequest じゃアカンの…?
874デフォルトの名無しさん:2014/06/04(水) 00:26:35.41 ID:OrBvmunz
>>872
ApplyTemplate()やってみたんですけど、やり方が悪いのかちょと上手くいかなかったです。でもありがとうございます。
おとなしく実体を作ってからVisibilityをHiddenにするのが早いですかね…
なんかこう、終始見えないものをレイアウト上に配置するのがちょっと抵抗あって。
875デフォルトの名無しさん:2014/06/04(水) 00:29:49.61 ID:OrBvmunz
>>873
HttpWebRequestで実装できればそれに越したことはないんですが、何故かセッションが上手く維持できなくて…
ログイン後にCookieContainerを使いまわすってのは知っては居るんですが、どうにもうまくいかないので、
もういっそ見えないブラウザを作って直接遷移させようという魂胆です。なので既に元々が妥協案ではあります…。
876デフォルトの名無しさん:2014/06/04(水) 06:58:29.90 ID:ULqbbST8
>>871
ビルドしてみたら動きました

WPFの自作クラスはビルドしないと動かないのか
877デフォルトの名無しさん:2014/06/04(水) 07:13:00.20 ID:YCCf2Rtl
デザイナで未ビルドのクラスが認識されないのはFormsも一緒
878デフォルトの名無しさん:2014/06/04(水) 08:43:09.93 ID:g5VriG8B
>>875
どこのサイト?
879デフォルトの名無しさん:2014/06/11(水) 07:06:14.59 ID:KjRV8XhA
質問なんですがマウスカーソルが重なるとCanvas内のGridをCanvasの端ぴったりに
持っていくようなコントロールテンプレートを作りたいのですがどうしたらいいでしょうか
下のコードではうまくアニメーションしてくれません

<ControlTemplate TargetType="Button">
<Canvas x:Name="Container" Background="Black">
<Grid x:Name="Label"><ContentPresenter /></Grid>
</Canvas>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="MouseOver">
<Storyboard>
<DoubleAnimationUsingKeyFrames Duration="0:0:0.1" Storyboard.TargetName="Label" Storyboard.TargetProperty="(Grid.Left)">
<SplineDoubleKeyFrame Value="{Binding ElementName=Container, Path=ActualWidth}" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</ControlTemplate>

詳しい方何卒よろしくお願いします
880デフォルトの名無しさん:2014/06/11(水) 08:15:32.56 ID:KjRV8XhA
すいません自己解決しました
Freezableオブジェクトというものらしく、>>879のXAMLの場合
うまくキーフレームに値をバインドできないようです(詳しいことはわかりませんでした)
代わりにイベントトリガでストーリーボードを開始するようにし
期待したアニメーションを作ることができました
お騒がせしました
881デフォルトの名無しさん:2014/06/25(水) 13:31:47.50 ID:KF9coz4T
質問です。

2chのスレッドのような大きな(装飾を含む)ドキュメントをRichTextBoxに読ませると、描画にかなり時間が掛かってしまいます。
今は苦肉の策として、1レス毎にVirtualizingStackPanelを使ったListView内にRichTextBoxを配置して、表示されたレスのみ描画してるのですが、今度はスクロールが不自然になってしまいました。

大きなドキュメントを読み込む場合にはWebBrowserを使うべきなのでしょうか?
それともWinFormのRichTextBoxを叩くべきなのでしょうか?

こういった場合の対処法について皆さんのご意見を伺いたいです。よろしくお願いします。
882デフォルトの名無しさん:2014/06/25(水) 19:54:33.57 ID:oszTg7Ln
レスごとに仮想化
883デフォルトの名無しさん:2014/06/25(水) 21:18:40.48 ID:grOUgCUU
タブレットで動作させるためのアプリ(Windowsストアアプリではなくデスクトップアプリ)を作っています。
scrollviewerの中にgridを配置して、そのgridの中にbuttonやtextboxなどを配置しています。
scrollviewerの中のbuttonがまれに反応しないという現象が起きており、どうやら、buttonを押した後に
タッチ位置がズレて、スクロールのイベントが起きてしまい、buttonのclickイベントが無視されてしまっているようです。
buttonが押されたら、scrollviewerのスクロールイベントを無効化するような方法があれば問題を解決できそうですが
調べてもそういう方法があるのかないのかもわかりませんでした。
こういう場合はどう対処するのが良い方法でしょうか?
884デフォルトの名無しさん:2014/06/25(水) 21:21:51.99 ID:DArBXCcF
ボタンのPreviewMouseDownあたりで捕まえられないか?
885デフォルトの名無しさん:2014/06/25(水) 21:26:43.48 ID:FTcNgndA
タッチだからMouseじゃなくてTouchの方だな
Previewの方じゃなくてもButtonのTouchDownでHandledしてしまえば親には行かないと思うけど
886デフォルトの名無しさん:2014/06/25(水) 21:28:13.48 ID:grOUgCUU
>>884
おおなるほど。
MouseDownが起こる前にscrollviewerのscrollイベントを無効化するという戦略ですね。
明日、試してみます。
ヒントありがとうございます。
scrollイベントを再び有効化するタイミングをどうするかが難しそうですが
ボタン無反応の問題を解決する糸口がつかめたような気がします。
887デフォルトの名無しさん:2014/06/25(水) 21:31:23.98 ID:grOUgCUU
>>885
いま、TouchDownはなにもいじってません。
Clickイベントしか注目してませんでした。
TouchDownを捕まえてHandledをtrueにするというのも試してみます。
これもいけそうな気がします。
888883:2014/06/26(木) 13:25:11.27 ID:SANvaThA
Clickイベントではなく、TouchDownイベントを捕まえるようにしたところ、
スクロールイベントが起こる前に処理を行うことができるようになり、
ボタン無反応問題が解消しました!
ただ、VisualStudioのデバッグ実行で、マウスクリックによるボダン操作が行えなくなったので
Clickイベントも一応捕まえておくべきかもしれません。
ありがとうございました!
889デフォルトの名無しさん:2014/07/04(金) 20:46:04.72 ID:ossnMFnX
OxyPlotというコントロールを試してみているんだけど、これを張り付けたUserControlを
印刷しようとすると白いままで何も印刷されないんだけど何が原因だろうか・・・。
https://oxyplot.codeplex.com/discussions/532065
これと同じ様な話だと思うんだけどこのコードと同じ物を試しに作ってもダメだった。
.NET Frameworkは4.5.1デス
890デフォルトの名無しさん:2014/07/14(月) 19:36:27.95 ID:LgL6Dx/P
プログラミングWindows 第6版はXAML入門として役に立ちますか?
WPFの足掛かりにと思っているのですが
891デフォルトの名無しさん:2014/07/14(月) 20:16:28.94 ID:yQEY2zvH
なるわけないと思うけど、まあ買えば分るさ
892デフォルトの名無しさん
世界は君のレビューを待ってるんじゃないか