1 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 13:08:09 ] あたらしいGUI FW、WPFについて語るすれ。 .NET3.5 SP1 もリリースされて盛り上がってまいりますた。 Visual Studio 2008 ttp://www.microsoft.com/japan/msdn/vstudio/ Microsoft .NET Framework 3.5 Service Pack 1 ttp://www.microsoft.com/downloads/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=ja WPF Toolkit - March 2009 Release ttp://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=25047 関連スレ Microsoft Silverlight その4 pc12.2ch.net/test/read.cgi/tech/1244812356/ 過去スレ 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/
2 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 20:29:05 ] >>1 乙
3 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 23:07:43 ] ContextMenu に ItemsSource と ItemContainerStyle を設定しました。 ContainerStyle は下記のようにしました。 <Style x:Key="menuItemStyle" TargetType="{x:Type MenuItem}"> <EventSetter Event="Click" Handler="MenuItem_Click" /> </Style> サブメニューがない項目ではクリックイベントが発生するのですが、 サブメニューがある項目でもクリックされたことを知りたいのですが どうすればよいのでしょうか?
4 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 02:18:40 ] 前スレの最後哀れ
5 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:06:48 ] >>前スレ1000 なんて恐ろしい子ww
6 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 00:09:48 ] 前スレ、もう落ちてるよ
7 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 17:34:16 ] 1000 名前:デフォルトの名無しさん[] 投稿日:2009/06/20(土) 01:18:06 1000なら、Visual Stido 2010が開発失敗して発売大幅延期、 WPFが使い物にならないと証明される 1001 名前:1001[] 投稿日:Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。
8 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 18:28:07 ] わざわざ張らんでよろし
9 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 19:45:57 ] ザメルって、なんかエロいから人前で言いにくい いまのところ開発で XAML 使ってないから大丈夫だけど
10 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 19:47:21 ] ザムルってよんでた
11 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 19:49:04 ] ザムルだろう eはどっからでてきた
12 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 20:55:22 ] エレメントが LMN(el em en) の読みから来てるようにML を emel と呼んだんだろ The ML とも通じるからな。ただの音遊びだが
13 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 21:17:12 ] >>11 ある本には pronounced zammel と書いてある。
14 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 22:15:10 ] 日本語ではザムル (XAML) ("ザムル" と読みます) msdn.microsoft.com/ja-jp/library/cc295302.aspx XAML (pronounced "zammel") msdn.microsoft.com/en-us/library/cc295302.aspx
15 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 22:42:13 ] 自分で作ったコントロール(Imageを継承)をxamlで使うにはどうしたらいいの?
16 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 23:10:53 ] CPUがCore 2 Duo E6600のPCを使ってるんだけどXAMLエディタが重くて使いにくい どの程度のCPUなら快適に使えるんだろう? 人によって快適さの基準は違うと思うけど、 新しいPCを買う時の参考にしたいので、使ってるPCと快適さを教えて欲しい
17 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 00:06:27 ] >>16 i7だけど重いよ Blendの方が1億倍マシ
18 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 00:21:57 ] そりゃ酷いな Blend3でIntelliSenseもサポートされるみたいだし、VS1本でやるのは諦めるか・・・
19 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 00:32:54 ] Blendも無料版だしてくれよバルマー
20 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 00:46:06 ] MS開発者のビデオ見てるとザメルって言ってるよね
21 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 01:09:47 ] でぃれくてっくすと、だいれくとえっくすじゃ大違いだが、 XAMLはそんなに違わない。
22 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 07:14:05 ] なんだよ、このスレは xamlのスレだろ >>15 に答えてください お願いします
23 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 10:04:09 ] ざめる
24 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 10:24:32 ] いいよ、もう 数時間格闘した結果自己解決したから お前ら役に立たないな
25 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 10:24:49 ] 初めてWPFで開発することになり、色々調べています。 やりたい事は、ユーザーにxamlで画面を作成してもらい、C#でそれを読み込み表示するアプリを作りたいです。 色々と調べてみたのですが、イマイチピンときません。 宜しければ何かヒントを頂けると助かります。
26 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 10:41:48 ] >>25 イチから勉強したほうが
27 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 17:47:02 ] >>25 なんだxamlを書いてもらうのか、つまらん
28 名前:25 mailto:sage [2009/06/23(火) 23:39:57 ] とりあえずXamlReader.Loadとかで試したら多少できそうです。 ただ、xamlをの頭の部分をWindowsからCanvas等へ多少手直ししないといけないみたいで、 少しやりたい事多少外れてしまいます。 >>26 さんや>>27 さんの反応から簡単にできるっぽいので引き続き勉強してみたいと思います。
29 名前:デフォルトの名無しさん [2009/06/24(水) 00:08:34 ] XAMLってすごいですね。 外観の自由度もさることながら、 コントロールの組み合わせも自由なところが。。 ただ、どういう組み合わせが魅力あるUIなのか想像できない。 ComboBoxとかListBoxなんかはWrapPanelの中にImage+TextBlockでとかでいいとか ありきたりな想像は出来るんですけど、それ以上のアイデアがないというか(見たことないからか..) ただ、DataGridコントロールのグループ化とか詳細表示のような機能には期待している。
30 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 00:23:09 ] >>29 ボタンの中身を画像とか、やろうと思えばとことんカオスな事ができるからねぇ。 そういやその自由度を使って、VS2010を痛IDEに、ってやってたところがあったようなw インテリセンスのポップアップの見た目をアニメキャラにしていたとオモタ。 でも、カオスにできすぎて、他人の書いたxamlは大抵読むのに苦労するw
31 名前:デフォルトの名無しさん [2009/06/24(水) 00:29:23 ] そのうち、XAMLデザインパターンとか出てくるんでしょうかね。
32 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 00:38:25 ] ボタンの中身を画像なんてUSERでもできるだろ。 ボタンの中身をテキストボックスとかのほうが恐ろしい。
33 名前:デフォルトの名無しさん [2009/06/24(水) 09:51:35 ] >>32 ちょw その組み合わせはまずいでしょう 質問ですが、WPFとSilverlightのコントロールの差異がぱっと見 わからないんですが、 この辺の一覧表とかあったりするんでしょうか? 自分でコツコツ調べるしかないかしら・・・ (例) WPF Silverlight 備考 Label ○ ○ 同等 TextBox ○ × ListBox ○ ○ Silverlight側は○○が無い ComboBox × ○ ViewBox ○ ○ WPF側は○○が無い : :
34 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 11:32:05 ] wpfslguidance.codeplex.com/ でコントロール以外も含めたWPFとSilverlightの違いが解説されている。 が、あまりにも違いが多いため、69ページのPDFになっているので注意。
35 名前:デフォルトの名無しさん [2009/06/24(水) 11:38:55 ] >>34 ありがとうございます。
36 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:10:55 ] >>31 うんざりですね
37 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 16:53:57 ] ActualWidth、ActualHeightを変更するにはどうすればいいですか? Width,Heightに値を入れてもすぐには変化してくれません
38 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 21:50:58 ] <cars> <car> <maker>トヨタ</maker> </car> <car> (以下略) <cars> みたいな xml の maker を ListBox にバインドしました。 トヨタ車はいっぱいあるので重複して表示されてしまうのですが、 重複をのぞいて表示するにはどうしたらよいですか?
39 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 22:17:02 ] 重複を除いたものをバインドする
40 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 23:06:36 ] トヨタ車が重複するのは当然の真理
41 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 17:38:52 ] >>37 果報は寝て待て
42 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 19:06:51 ] <RowDefinition Name="rd" Height="24" /> <RowDefinition Height=rd.Heght /> のようなこと出来ないんですか?
43 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 19:28:38 ] <RowDefinition x:Name="rd" Height="40" /> <RowDefinition Height="{Binding ElementName=rd, Path=Height}" />
44 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 19:50:11 ] >>28 まだ悩んでる?
45 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 19:59:56 ] MSDN Forumに行ったっぽいよ
46 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 13:58:14 ] そうか、ならいいか
47 名前:38 mailto:sage [2009/06/27(土) 14:57:03 ] >>39 なるほど。 思いつかなかったw ありがとう。
48 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 15:00:20 ] WPF の XPath って > person[sex='man'] みたく書けないみたいだけど、 ノードの絞り込みしたいときはどうするの?
49 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 15:16:34 ] 使えるよ ただし一部文字にエスケープ必要 Binding.XPath のサンプルにある コメントアウトされてるけど
50 名前:48 mailto:sage [2009/06/28(日) 10:50:17 ] >>49 レスありがとう。 教えてくれた方法で無事できました。 感謝。
51 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 12:56:08 ] <maker>トヨタ</maker> というデータを表示しようとして下記の DataTemplate を作りました。 <DataTemplate> <StackPanel Orientation="Horizontal"> <TextBlock Name="tbCaption" Text="{Binding XPath=local-name()}"></TextBlock> <TextBlock Name="tbValue" Text="{Binding XPath=text()}"></TextBlock> </StackPanel> </DataTemplate> tbValue はちゃんと取得できていて"トヨタ"と表示されるのですが、 tbCaption には maker と表示したいのですが、local-name() ではだめみたいです。 どうすればよいでしょうか?
52 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 19:06:12 ] どんだけトヨタ推しなんだよ
53 名前:51 mailto:sage [2009/06/28(日) 19:30:11 ] すいません。じゃ、 <maker>光岡自動車</maker> でお願いします。
54 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 00:10:14 ] <GridViewColumn Header="Text" Width="300" DisplayMemberBinding="{Binding XPath=.}" /> とすると、バインディングされてるデータが <List> <Item>Foo</Item> <Item>Bar</Item> </List> のとき、FooBar と表示されます。 これを Foo/Bar と表示したい(間に文字を入れて連結したい)んですが、 Converter を作る以外に方法ありますか?
55 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 09:52:38 ] CellTemplateを書く
56 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 07:41:07 ] フォントファミリからBaseUriを取得したいけど 作成時にUriを指定していない場合はBaseUriはnullになってしまう。 >var family = new FontFamily("メイリオ"); >family.BaseUri; // null! Fontsからだと、BaseUri付きのファミリが取得できるかも?と思って試したけどnull >var q = Fonts.SystemFontFamilies.Where((val) => val.BaseUri != null); 断念して妥協するか、システムフォントを片っ端から調べるか・・。
57 名前:デフォルトの名無しさん [2009/07/12(日) 08:22:10 ] 今まで専らMFCでプログラミングしてきたんだが、 CDocument的なものはどこに置くべき? ウィンドウのコードに依存プロパティとして実装? もうWPFわけわからんw
58 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 10:56:23 ] 自分でDocumentManagerみたいなのつくっとくべ気だろ。
59 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 10:57:59 ] >>58 質問が分かりにくくてすまん。 そのインスタンスはどこに保持するのかって質問なんだ。
60 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 11:06:21 ] この辺が参考になるかな。 msdn.microsoft.com/ja-jp/magazine/dd419663.aspx 更新のない一方向の情報なら XmlDataProviderを使って直接バインドしてしまうことも出来る。
61 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 11:09:26 ] >>60 なかなか難しいな 頑張って解読してみる ありがと!
62 名前:57 mailto:sage [2009/07/12(日) 16:17:29 ] >>60 読んでみた Model-View-ViewModelでやると、 ViewModel同士の同期が非常に煩雑になる気がするんだがそうでもない? (>>60 のサンプルでも煩雑になってる気がする) 本屋に行ってWPFの本を探してみたが どれも簡単なコントロールやスタイルの組み方までしか書いてねぇ。
63 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 19:00:24 ] ここはexpression blendの使い方の質問してもおkな場所か?
64 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 20:09:07 ] いいえ
65 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 20:39:27 ] >>62 俺も綺麗なやり方が分からず悩みどころ。 あとVとVMの連携が必要な所も酷いことになる。 例えば、ボタンを押したらダイアログを表示、をやろうとしたら ダイアログに対応するVMを作るのと、ダイアログの表示処理は誰がやるんだろう? 選択肢を選んだら即時ダイアログを閉じる場合、VMへの値の反映をバインドでやるとすると ダイアログを閉じるのはどうやるんだろう? って感じで複雑な物を作ろうとするとV→VMが依存しまくり。 うまく行く設計方針とかないのかしら。
66 名前:57 mailto:sage [2009/07/12(日) 22:06:24 ] もうMVCで書いてしまおうか。 それともフレームワークのようなものを作れば MVVMでも多少ましになるのかな。
67 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 01:16:24 ] >>65 コマンドは使ってるんだよね? >例えば、ボタンを押したらダイアログを表示、をやろうとしたら >ダイアログに対応するVMを作るのと、ダイアログの表示処理は誰がやるんだろう? Vはコマンドを発行するだけ(VM側の実装を知らなくていい) コマンドを受け取って、ダイアログのV,VMを作って呼び出すのはVMの役目。 >選択肢を選んだら即時ダイアログを閉じる場合、VMへの値の反映をバインドでやるとすると >ダイアログを閉じるのはどうやるんだろう? その程度のやつならVで閉じちゃえば? 妥当性検証をパスして、OKボタン押すまでソースへの通知を遅らせたい(CANCEL時に無かった事にしたい)時とかはVMがないと見通し悪くなる。
68 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 01:25:55 ] >>67 前者は、コマンドは使っているけれど > ダイアログのV,VMを作って呼び出すのはVMの役目。 これって不味いのでは? 「V→VMの依存関係を一方向にすれば、テスト楽だよ」ってのがMVVMの味噌な気が。 VMがVを作ると、VM単体で単体テストしにくくなって不味いかと。 後者は、自分が選んだのもその方法(コードビハインドで全部処理)だけど、 コマンドを使うところと使わない所が出来るってのがちょっと嫌な感じ。 自分のMVVMのやり方じゃ7割ぐらいまでは綺麗に適応できるけど 3割ぐらいは外れるか、アドホックに汚いやり方で誤魔化しちゃってます。
69 名前:デフォルトの名無しさん [2009/07/13(月) 14:15:50 ] MVVM的な作り方では、下記のソフトもいい勉強になりますよ。(知ってたらスマンです) www.codeplex.com/miniuml
70 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 16:35:36 ] >>60 おお、いい記事を紹介してくれた。ありがとう。
71 名前:57 mailto:sage [2009/07/13(月) 19:42:17 ] >>69 このUIかっけぇ そしてコード勉強になる ありがと
72 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 00:06:15 ] >>69 トン、俺も読んでみる
73 名前:デフォルトの名無しさん [2009/07/17(金) 20:17:07 ] MSに点在するSilverlightのサイトを見ていたら WPFと同じような使用例ばかり出てきて、WPFはどうしたいのかわからなくなる
74 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 20:52:48 ] どっちも同じように書けるってこった
75 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 20:56:16 ] >>73 ホストアプリを何にするかの違いだけ。
76 名前:デフォルトの名無しさん [2009/07/19(日) 00:06:09 ] RadioButtonのバインドって微妙で使いにくいですね。 ListBoxとかで作ったほうがすっきりするかしら・・・
77 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 00:33:11 ] どうするんのがスマートなんだろうね。 自分の場合、Enumと合わせるなら他の人も作っている EnumBooleanConverterをパクって使っている。これはかなり楽。 Enum以外のデータ、他の特に可変個数のデータ数の選択の場合は、 自作ViewModelクラス(選択肢の表示内容や対応付けられたデータを保持し 選択されたらイベントを飛ばす)を使っている。
78 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 08:26:50 ] てすつ
79 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:33:39 ] SilverLight3になってから、サンドボックス内とはいえローカルで実行できるとか・・・。 キャッシュとしてローカルのディスクにデータとか書き込めるのかね・・・。
80 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 19:26:59 ] >79 2番目は IsolatedStorage でSL2の段階で出来る ローカル実行は俺も知りたい
81 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 13:08:02 ] WPFToolKit入れて、VSMを使いたいのだが、GotoStateでNull例外。 Silverlightと違ってGotoStateを明示的に呼び出す必要がないとか。 なのでCommonStatesグループを作って、Pressedのステートを作ってみたが無反応。 どうやったら使えるかな?