トップページtech
1001コメント292KB

WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part7

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2010/08/22(日) 21:11:53
一向に普及しないユーザーインターフェースシステム
Windows Presentation Frameworkについて語るスレ。
パワフルで柔軟すぎるのが敗因か? 正直ついていけないよね…。

Visual Studio 2010
ttp://www.microsoft.com/japan/msdn/vstudio/
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 Silverlight その6
ttp://pc12.2ch.net/test/read.cgi/tech/1271580489/

過去スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part6
http://hibari.2ch.net/test/read.cgi/tech/1274423236/
WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5
http://pc12.2ch.net/test/read.cgi/tech/1261879110/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
ttp://pc12.2ch.net/test/read.cgi/tech/1245384489/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
ttp://pc12.2ch.net/test/read.cgi/tech/1231506876/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング
ttp://pc11.2ch.net/test/read.cgi/tech/1211453941/
【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】
ttp://pc11.2ch.net/test/read.cgi/tech/1162950198/

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
0415デフォルトの名無しさん2010/11/06(土) 04:05:49
>>414
日本語がわからないとは
0416デフォルトの名無しさん2010/11/06(土) 07:30:20
>>411のほうが老害くさいよな
どうせVB6のクラサバみたいなのしか作ったこと無いくせにw
0417デフォルトの名無しさん2010/11/06(土) 08:11:04
TabControlの複数のページでListViewを表示していて、
GridViewの列の並びや幅などを同期させたいのですが、どのようにすればいいのでしょう

今はページを切り替える際に、列を作り直してるんですが、非常に無駄なことをしている気がします
GridView.Columnsあたりに、共通のソースをバインディングするとかできませんかね
0418デフォルトの名無しさん2010/11/06(土) 08:46:46
>>412
まあ、しゃあない。
Adobe 製品とか見てみなって。
ビジュアルデザイン系のツールみんなあんな感じだから。
0419デフォルトの名無しさん2010/11/06(土) 09:17:30
バカチョンって奴ね

いいんだよ雑魚グラマが増えて仕事が尻拭い中心になったんだ
ここらで敷居をあげて少し淘汰されたほうがいい
0420デフォルトの名無しさん2010/11/06(土) 11:08:22
>>412
その程度のモンをわざわざWPFで作る意味ってなんだよwwwww
不自由環境に快感を見出すマゾなのか?
0421デフォルトの名無しさん2010/11/06(土) 11:11:12
その程度のモンならWPFだから特別難しいってことはないだろ
デザイナでコントロール貼り付けてプロパティ弄ってダブルクリックしてイベントハンドラ書くだけ
WinFormsと何が違う?
04224202010/11/06(土) 11:16:41
>>421
怖いんだ・・
とにかくwpfが怖いんだ!
0423デフォルトの名無しさん2010/11/06(土) 11:18:44
WPF ToolKitのDataGridのTemplateってどうすればいいんだすか
04243052010/11/06(土) 14:10:31
>>317
デリゲートもインターフェースもやったことなかったが
一晩かけていろいろ調べてなんとなくわかった

独自のコマンドを作るにはICommandインターフェースを使ったクラスを自作しないといけなくて
そのためにDelegateCommandクラスが作られていて、普通はここに実行する内容を書けばいいはずだけど
汎用的に使えるように、具体的な実行内容はViewModelでして、DelegateCommandクラスでは
デリゲートを宣言して実行メソッドを呼び出しているって感じかな?
もしくは、コンストラクタの引数にメソッドを変数みたいに渡したいからDelegateを使っているのか?
そこらへんはよくわからないが、なんとなくやっていることはわかった気がする

これって、メニューやボタンがクリックされたらどうするかというイベントハンドラを大量に書かないためにと、
別にボタンを作って作成ボタンとは違った振る舞いの独自のコマンドを作るときも
DelegateCommandクラスを利用することで、無駄なコードを書かないようにするため

こういうややこしいことをしているのは、こういう理由だからって理解でOK?
04253052010/11/06(土) 14:14:09
訂正

>これって、メニューやボタンがクリックされたらどうするかというイベントハンドラを大量に書かないためにと、
ボタンを作成するために、メニューやボタンのイベントハンドラを大量に書かないためにと
0426デフォルトの名無しさん2010/11/06(土) 14:15:40
違うよ
ViewModelをViewに依存させないため。
イベントハンドラを追加するときってイベントを受ける側で送る側にイベントハンドラを登録するので
ViewModelの中でイベントハンドラをViewに結び付けるとViewModelがViewに依存してしまう。
そこで逆にViewModelでは「俺はこれだけのコマンドをサポートしている。勝手に呼び出せ」という風に
コマンドを公開するだけにして、コマンドを具体的なイベントに結び付けるのはView側で行う。
0427デフォルトの名無しさん2010/11/06(土) 14:38:49
このあたりは悩み所だよなぁ。どこで切るかケースバイケース過ぎる。

ViewModelはViewのシャドウなわけである程度依存するのは仕方ないのでは?
例えば選択状態をViewModelが知っているだけでも、
ViewModelはViewが選択機能を持つことを知っていることになる。

MVVMのそもそもの動機(自動回帰テスト、スキンに依存しない構造)を考えると、
ViewModelはViewの機能には依存しても、Viewの"インスタンスに"依存しない、が正しい気がする。
04283052010/11/06(土) 15:02:44
>>426
依存させないのは
例えばボタンクリックで作成だったのを変更して
メニューからのみボタンを作成にすることにしたときに
イベントハンドラだと書き換えたりしなければいけないから
GUIの変更がしづらくなる

だからコマンドバインディングにコマンドを登録だけして
どのコマンドをどの時点で呼ぶかは気にすることは無いという感じかな
0429デフォルトの名無しさん2010/11/06(土) 15:03:31
>>422
なりすまし乙
実に程度が知れるな
0430デフォルトの名無しさん2010/11/06(土) 15:07:18
WPFのコマンドは実装を含まず意味を表すのが基本で云々という講釈↓
0431デフォルトの名無しさん2010/11/06(土) 15:08:57
コマンドなんてpublicメソッドと同じ
ただメソッドだとXAMLにちょろっと書くだけで自動的に呼び出されるというわけにはいかないので
ちょっと回りくどい仕組みになってるだけ
0432デフォルトの名無しさん2010/11/06(土) 15:19:45
>>427
ViewがViewModelの用意する機能を使うかどうかは自由なので、
ViewModelがViewを知っているとはいえないんじゃないかな。

WPFでコマンドっていうなんか回りくどいのを推奨してるのは、
XAMLがプロパティと相性のいい言語だからということと、
実行の可否(CanExecute)を持たせることができるってことくらいかな。
ObjectDataProvider使えばXAMLで直接メソッドを指定することもできるはず(未確認)
だけどこれは記述が汚くなるよね。
04333052010/11/06(土) 15:22:40
あと、DelegateCommandクラスでデリゲート宣言して、ViewModelのメソッドを呼び出しているのはなぜかわからない
依存させたくないだけなら、DelegateCommandクラスでViewModelのExecuteの内容を書けばいいですよね?
依存させないようにするにはRoutedCommandをコマンドバインディングに登録するだけでいいのですから

ViewModel内にコマンドの実行内容Executedを書くということは、
本質は違うけど、WinformsでいうとイベントハンドラをForm1に大量に書いていくのと同じような気がするんだけど?
コマンドはコマンドで分けた方がよくないですか?
0434デフォルトの名無しさん2010/11/06(土) 15:30:04
いくらクラス分けようがコマンドの実行内容はViewModelにしっかり依存してるんだから
ViewModelとコマンドを分けても見づらくなるだけで意味ないだろ。
ViewとViewModelを分けるのは主にViewModelの単体テストやViewの変更を行いやすくするため。
ご察しの通り大規模開発向けの仕組みだから要らないと思うなら要らない。
04353052010/11/06(土) 15:32:41
>>434
そっかー、今のとこ恩恵は薄いけど
いつも規模が大きくなると途中で挫折してたから
今回はこの考え方でやってみます
04363052010/11/06(土) 15:40:26
まとめると、イベントで処理すると、VIEWの個々の部品に対して依存した実装になるので
変更耐性を強くするために、コマンドで通話する
で、コマンドの実行内容はViewModelに依存しているから、
ViewModelで実装するためにコマンドからデリゲートで呼び出す形にすると

こんな感じかな
わかってくるとちょっとおもしろくなってきた
0437デフォルトの名無しさん2010/11/06(土) 15:41:24
いいから独演会してねえではよ死ね
04383052010/11/06(土) 18:14:51
MVVSでプログラミングするのはWPFプログラマだけという
奇妙な世界ができあがるわけですね

囲い込んでるのか首を絞めてるのかわかりませんね
プログラミングシェーダの世界ですね
0439デフォルトの名無しさん2010/11/06(土) 18:25:18
MVVMはMVCの亜種で、ごくありふれた設計なんだが
04403052010/11/06(土) 18:31:01
MVC亜種でもMVVM経験者じゃないとコードの意味すら伝わらないじゃないですか
0441デフォルトの名無しさん2010/11/06(土) 18:33:42
MVCだろうがMVPだろうが統一されたやり方あるなら教えてたもれ
0442デフォルトの名無しさん2010/11/06(土) 18:34:24
「WPF/Silverlightで開発する時は、こうすると管理が楽ですよー」 ってだけの話なのに
一体何が問題になるのやら、さっぱり解らん。

概念を理解するのに、大して学習コストが掛かる訳でも無いし。
(MVVMを厳密に適用した実装を行うのは、若干慣れが要るが)
0443デフォルトの名無しさん2010/11/06(土) 19:04:11
MVVMはさ
MとVを直接バインドしちゃうと融通効かないから
Vに近いレイヤを一個経由しようってだけだよ
コンポジッション系のフレームワークと融合してややこしいことになってるとこがあるけど
0444305 ◆Jzt/EX0TGY8T 2010/11/06(土) 19:39:05
>>438
成り済ましやめてもらえませんか?
MVVSなんてデリゲートもインターフェースも知らない初心者のぼくが知るわけないでしょ
0445デフォルトの名無しさん2010/11/06(土) 19:55:35
MVVMなんて、JavaでStrutsからDI系フレームワークに移行させられるよりよっぽど覚えやすいと思うんだけど
0446デフォルトの名無しさん2010/11/06(土) 20:13:08
WinFormsみたいに密結合していいならWPFでもMVVM使わなくていい。
WPFで開発するときの単なる方法論の一つ。
0447デフォルトの名無しさん2010/11/06(土) 21:44:39
そこまでは素人の考え。
玄人になるとMVVM一択になってくる。
0448デフォルトの名無しさん2010/11/06(土) 21:53:35
MVVMを理解して使い慣れると、二度と元に戻りたくなくなる。

>>447
初心者がいきなり全部理解するのは無理だから、最初は深く使わずにM-Vから始めるのは悪い事ではないだろう。
0449305 ◆Jzt/EX0TGY8T 2010/11/06(土) 22:01:31
MVVMってなんの話してるのかと思ったら
まんま俺が徹夜で勉強してたことじゃないかw
しかも検索したらトップでDelegateCommandの解説してるし
もしかして教えてくれたのはそこのひと?
0450デフォルトの名無しさん2010/11/06(土) 22:03:46
っていうかWPFはWindowの継承が実質的に出来ないから、Windowにコーディングする気にはならん
0451デフォルトの名無しさん2010/11/06(土) 22:17:31
そもそも実装を継承する考えがいまさらでしょ。
0452デフォルトの名無しさん2010/11/06(土) 22:37:34
>>451
教条主義はJavaあたりでやってくれ
0453デフォルトの名無しさん2010/11/06(土) 23:04:50
教条主義の意味分かって言ってるのか?
0454デフォルトの名無しさん2010/11/07(日) 08:18:01
VMのOnPropertyChangedについて、

public int x
{
 get { return _model.x; }
 set
 {
  if(_model.x != value) // ← コレ ★
  {
   _model.x = value;
   OnPropertyChanged("x");
  }
 }
}

★のチェックが無いとbindingのTwoWayで無限ループに
なりそうな気がするんですけど、必要ないんでしょうか。
ターゲット側でチェックされてる?大丈夫?
0455デフォルトの名無しさん2010/11/07(日) 08:25:02
ターゲット側でもチェックされてるが
余計なイベント通知はない方がいいだろ
0456デフォルトの名無しさん2010/11/07(日) 08:43:02
ありがとー。
無いとなんか気持ち悪いし、つけときます。
0457デフォルトの名無しさん2010/11/07(日) 08:50:52
Canvasにグリッドや曲線を自分で描いてマウスイベントで色々処理したい・・・
というプログラムを作りたいんだけどWinFormよりWPFのほうが容易にできますか?
0458デフォルトの名無しさん2010/11/07(日) 10:43:52
InkCanvas
0459デフォルトの名無しさん2010/11/07(日) 11:09:57
MVVMを使う程の規模なのか。
0460デフォルトの名無しさん2010/11/07(日) 12:23:29
MVVMでやってみたいけどどこから手を付けていいのか入り口すらわからない\(^o^)/
0461デフォルトの名無しさん2010/11/07(日) 14:07:01
>>458
さんくす
0462305 ◆Jzt/EX0TGY8T 2010/11/08(月) 15:30:23
WPFって結局WinFormsとあんまり変わらない気がする

Form1がView.xamlとView.csの二つのファイルに分かれただけで
表示部分とそれをコントロールする部分はくっついたままなのね
ただ、WinFormで苦労したGUI部分が簡単にいじれるようになっただけで
Form1にゴリゴリコード書くようにView.csにゴリゴリ書いてける
MVVMのデザインパターンもWinFormでもやってきたことだからそれほど難しくない

どうせなら、Viewのコントロールする部分もXamlでしか書けないようにして
C#のコードではロジックしか書けないようにしてしまえばいいのに
そうすれば、これはViewに関する事だから〜と意識的にロジックと表示部分をわけなければいけない
ということがなくなるんじゃない?
0463デフォルトの名無しさん2010/11/08(月) 16:33:03
C#で書かないことにどれだけのメリットがあるか微妙
0464デフォルトの名無しさん2010/11/08(月) 17:30:03
というかあいつはプログラム初心者だろ…
世の中の流れと考えについて行けてない
最低でも5言語使って10のフレームワークを使え
言う事が無茶苦茶すぎる
0465デフォルトの名無しさん2010/11/08(月) 17:44:53
5つくらいの言語でプログラム書いてきたなんて、
そのくらいは普通にごろごろ居るけどな。

フレームワークは使えるじゃなくてそれぞれの言語で
作ってきたじゃねえと基礎力がどうだかなって感じがする。
0466デフォルトの名無しさん2010/11/08(月) 18:13:21
でも転職したり社内で評価されるためにはそういうスキルは必要
0467305 ◆Jzt/EX0TGY8T 2010/11/08(月) 19:12:58
分離したほうがいいなら、分離コードしか書けない言語にすればいいじゃない
viewに対してプロパティ以外で操作するのは無理にしちゃえばいい
それなのにロジックと混同して使えるようにしているから
解説サイトも簡潔に説明するためにイベントハンドラにロジック直接書いて
それ見た初心者がそういうもんだと思って真似するわけじゃない

VIEW言語、Viewコントローラー言語、VIEWModel言語、Model言語
とか作ってさ、完全に分けてしまえばいいんだよ
0468デフォルトの名無しさん2010/11/08(月) 19:20:28
>>467
ちょっと待て、落ち着いて考えて欲しい。
お前さんXAMLとC#だけでさえ手に余ってるのに、さらに倍に増やせとか馬鹿だろw
0469デフォルトの名無しさん2010/11/08(月) 20:34:35
どうせ消えていくものに貴重な記憶力を割く気がしない
人間の記憶量には限りがあるんだよ
0470デフォルトの名無しさん2010/11/08(月) 20:47:56
>>467は御託並べる前にMVVMじゃなきゃ死ぬレベルの複雑なビューを作ってみるべき
どうせV:VMが1:1+αのコードしか書いてないんじゃないの?
0471デフォルトの名無しさん2010/11/08(月) 20:48:35
ニュース速+板で祭り中!!

【尖閣ビデオ】 中国漁船衝突の映像、YouTubeに流出…動画は海保研修用のものと判明、複数本コピーが存在★2XX
http://kamome.2ch.net/newsplus/

現在の1スレ消費速度平均6〜8分!!

ニュース速報+板史上の歴代最多数スレ
1位  263 朝日新聞社員、2ちゃんねる差別書き込み事件 (2009/04)
2位 ★2XX 中国漁船衝突の映像、YouTubeに流出  ←★New!★ (2010/11)
3位  230 毎日新聞社デイリーニューズ「WaiWai」問題 (2008/07)
4位  156 韓国、2ちゃんねる米国鯖にサイバーテロ (2010/03)
5位  117 2ちゃんねる閉鎖問題 (2007/01)
0472デフォルトの名無しさん2010/11/08(月) 20:50:42
>>469
苦労して覚えた知識でも否応なしにたった数年で陳腐化するのに何でプログラミングなんてやってんの?

>>467
最初はそういうもんだ。基礎を勉強してないのに最初から応用編とか無謀すぎる。
初心者相手にいきなりpatterns & practicesのPrismみたいなの持ってきたら一瞬で挫折する。
0473305 ◆Jzt/EX0TGY8T 2010/11/08(月) 21:12:12
>>470
複雑なビューってどういうのかよくわからないけど

WinFormではマンガミーヤと同じようなUIのソフトを作った
それプラス、書庫内の画像を自動で画像変換して圧縮し直すなどの機能をつけたりなど
でも途中でかなり面倒なことになってやめたけど

今回はそれに動画も閲覧できる機能をつけて作ってみようと奮闘中です
0474デフォルトの名無しさん2010/11/08(月) 21:22:14
>>473
TreeViewとか、タブドキュメントインターフェイスとか
0475デフォルトの名無しさん2010/11/08(月) 21:24:52
>473
イラストレーターみたいなドローソフト作って味噌
0476305 ◆Jzt/EX0TGY8T 2010/11/08(月) 21:32:21
>>475
数学ちゃんと勉強しなかった低学歴だから無理w
XNAで3D版シムシティみたいなのを作ろうとしたけど
適当にビル立てただけでやめちゃった
0477デフォルトの名無しさん2010/11/08(月) 21:40:05
学歴よりむしろ根性が足りないなw
0478305 ◆Jzt/EX0TGY8T 2010/11/08(月) 21:52:21
構想が実力以上のものだから途中で力尽きちゃうんですよね
それでも座標変換に線形代数の知識が必要だから
そういうの勉強したし、シェーダーについても勉強して
3Dの格子マップにランダムにビルが建つようにはできたけど
それで満足しちゃった
今のゲームって個人でできるレベルじゃないから
市販ゲームと比べてあまりにもしょぼすぎる
0479デフォルトの名無しさん2010/11/08(月) 22:01:06
自分語りいらねえ
居つくなよ馬鹿
0480デフォルトの名無しさん2010/11/08(月) 22:02:40
>>478
暇なやつプログラミングしようぜ!
http://yuzuru.2ch.net/test/read.cgi/news4vip/1288937968/

ここでやれ
0481デフォルトの名無しさん2010/11/08(月) 22:03:03
でもさ3Dとか例外的に数学必要だがプログラム言語って
語学と同じでコマンドや文法覚えるだけだから文系向きじゃねーの
0482デフォルトの名無しさん2010/11/08(月) 22:09:33
ゲーム開発の心得があるのなら
WPFでゲームのUI作るのも面白いんじゃないか。

SlimDXのWPF Interopあたりを使う。D3DImageに描画してDirectXから使ってもいいけど
アニメーション使って作ればUIだけは市販ゲームぽくなるぜw
0483デフォルトの名無しさん2010/11/08(月) 22:10:21
>>480
やめろ馬鹿
俺の心休まる一時を邪魔すんな
0484305 ◆Jzt/EX0TGY8T 2010/11/08(月) 22:42:44
ちょっと質問なんですが

MVVMで画像を表示するソフトを作る場合
モニタ、再生機器、画像の入ったDVDをイメージして作ろうと思っています

VMのプロパティでImagesを公開し、画像ファイル名などはDataGridに表示され
選択することで画像が表示される。ここまではバインドなどでxamlだけでできる

ボタンを押したらDataGrid内の選択項目が移動して次の画像が表示される動作
↑View.csで記述?
ボタンを押すとDataGridの項目削除と画像ファイルの削除をするといった動作
↑この場合はどのようにすればいいですか?
ファイルの削除はコマンドでVMにやらせるとして、項目の削除はどうすればできますか?
0485デフォルトの名無しさん2010/11/08(月) 22:46:11
vipでやれ
0486デフォルトの名無しさん2010/11/08(月) 22:50:44
>>484
選択項目を取得設定するプロパティをVMに定義
Viewには何もさせなくていい。ほんとにバインドだけでいい。
DataGridの項目もVMに持たせておいてViewではバインドするだけ。
0487305 ◆Jzt/EX0TGY8T 2010/11/08(月) 23:06:26
>>486
なるほど、それぐらいやらないと分離したことにならないんですね
WinFormで作ったときはそこの境界が曖昧で苦労した
ありがとうございます

>Viewには何もさせなくていい。ほんとにバインドだけでいい
これを何度も言い聞かせながら作ります
0488デフォルトの名無しさん2010/11/09(火) 00:09:54
>>481
そう考えてる輩が多いからデスマる
0489デフォルトの名無しさん2010/11/09(火) 00:12:59
デスナ
0490デフォルトの名無しさん2010/11/09(火) 00:20:08
>>481
そもそもとして、自然言語でも、文法は理系の方が強いよ、実は。
詩的表現の崩れた文読むのは苦手だけど。
0491デフォルトの名無しさん2010/11/09(火) 00:22:11
関数化された機能をシナリオに沿って呼び出すだけなら文系向き
その関数の中身を書くのは理系向き
0492デフォルトの名無しさん2010/11/09(火) 00:28:19
マ板でやれ
0493305 ◆Jzt/EX0TGY8T 2010/11/09(火) 00:51:20
>>490
口げんかでも理系のが勝つよね
でも、そんなことしたら確実に嫌われるがw
0494デフォルトの名無しさん2010/11/09(火) 02:05:04
NGにしてすっきり
0495デフォルトの名無しさん2010/11/09(火) 04:26:54
英語で口喧嘩して理系を黙らせた俺が通るよ
0496デフォルトの名無しさん2010/11/09(火) 05:04:14
それ英語で書けよw
0497デフォルトの名無しさん2010/11/09(火) 05:16:03
excite!でドイツ語再翻訳したら酷い事になった。どうしてくれる

英語で口喧嘩して理系を黙らせた俺が通るよ
Ich wer ich streite mich in Englisch, und schlos physischen Wissenschaftsgehen zu
私は主張します誰、私は英語の私です、そして、ロックされる身体的なWissenschaftsgehen
0498305 ◆Jzt/EX0TGY8T 2010/11/09(火) 05:40:35
My English shut the fucked up scientist
0499デフォルトの名無しさん2010/11/09(火) 06:38:50
日本語でおk
0500デフォルトの名無しさん2010/11/09(火) 20:37:15
WindowのMinWidthとMinHeightを設定して最大化したWindow
のWidthとHeightって変えられないんでしょうか?

WindowStateをいったんNormalにしてWidthとHeightを変えて
またMaximizedを設定すれば一応できたのですが
画面がちらつくのでこの手はあまり使いたくないです。
0501デフォルトの名無しさん2010/11/09(火) 21:12:09
>>500
できますん
0502デフォルトの名無しさん2010/11/09(火) 22:12:18
白熱しているところ低レベルな質問で申し訳ないんですが、
VisualStateManagerについて教えてください。

やりたいことはWindowがアクティブなときとディアクテブなときで
コントロールの背景色を変えることです。

最初はリソースにアクティブ用とディアクティブ用のブラシを用意して、
ActivatedとDeactivatedのイベントで直接BackGroundを切り替えていたんですが、
そういうのはVisualStateManagerを使えという天啓がありまして、今試行錯誤しているところです。

とりあえずかいたコードはこんな感じです(動きませんが)
http://ideone.com/jxA1r

間違っている箇所や、正しい使い方を教えていただけないでしょうか。
ついでにこういう場合、背景用のブラシを1個リソースとして用意して動的バインディングで
色を変えれば楽なような気もします。
まだWPF始めたばかりでどの様な方法がベストなのか判断がつかないので、そのあたりのアドバイスも
出来ればお願いします。
0503デフォルトの名無しさん2010/11/11(木) 02:03:52
> 動きませんが
> 今試行錯誤しているところです。
> まだWPF始めたばかりで
> 間違っている箇所や、正しい使い方を教えていただけないでしょうか。
> 色を変えれば楽なような気もします。

たったこれだけの行数でこれだけ「教えて君臭」を漂わせる書き込みも珍しい。
一つ良い事を教えておく。俺たちは君の道具でも、無償サポセンでもない。
0504デフォルトの名無しさん2010/11/11(木) 02:24:55
>>503
これほど「わかりません」を漂わせる書き込みも略
0505デフォルトの名無しさん2010/11/11(木) 02:31:18
わからないからって煽るなよ
0506デフォルトの名無しさん2010/11/11(木) 07:56:25
「教えて君臭」漂わせてるっていうか教えて君そのものだよな
教えてくれって書いてあるし
0507デフォルトの名無しさん2010/11/11(木) 08:05:12
質問だしなw
0508デフォルトの名無しさん2010/11/11(木) 09:20:04
WPF難しいって言う人多いけど、皆さんは習得(どの程度で習得とするかは適当に)にどの位かかりました?
0509デフォルトの名無しさん2010/11/11(木) 09:22:39
アプリ作れるまで3日ぐらい
難しい方だよねWPFは
0510デフォルトの名無しさん2010/11/11(木) 09:27:38
>>503
周りがスルーしている中わざわざレスしていただきありがとうございます。
質問する場所間違えたなぁと後悔していましたが、
このまま誰にも相手にされずに流れていくのも寂しいなと思っていたところでした。
これを励みに今日もWPFの勉強に精を出したいと思います。

0511デフォルトの名無しさん2010/11/11(木) 14:02:51
3.5と4でバインディングの何が変わったのか教えてくれ
コンパイルできない
0512デフォルトの名無しさん2010/11/11(木) 15:25:40
単発質問なんですけど、SharedSizeGroupを使ってポップアップメニューのアイテムの要素を整列をする際に、
Separatorのアイテムにも、サイズグループを適用したい場合はどのようにすればいいですか。

たとえばVisual Studioのポップアップメニューだと、セパレータはアイコンのセルに
重っていないけど、それと同じようなことがしたいです。

SubmenuItemTemplateKeyに適用するコントロールテンプレートと同様のものを
SeparatorStyleKeyスタイルのTemplateプロパティに適用して、同じサイズグループを
使いたいと思ってたんですが、セパレータのアイテムだけうまくグループ化されません。
0513デフォルトの名無しさん2010/11/11(木) 18:17:35
Windowsフォームで作ったアプリのボタンの形状は
クライアントのOSに依存すると思うのですが
WPFのコントロールはOSに依存しないのですか?
xpしかないので確かめられないんですけど
0514デフォルトの名無しさん2010/11/11(木) 18:19:20
システムカラーとか使ってたら当然依存する
■ このスレッドは過去ログ倉庫に格納されています