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

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん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
http://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/
0002デフォルトの名無しさん2009/06/19(金) 20:29:05
>>1
0003デフォルトの名無しさん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>


サブメニューがない項目ではクリックイベントが発生するのですが、
サブメニューがある項目でもクリックされたことを知りたいのですが
どうすればよいのでしょうか?
0004デフォルトの名無しさん2009/06/20(土) 02:18:40
前スレの最後哀れ
0005デフォルトの名無しさん2009/06/20(土) 12:06:48
>>前スレ1000
なんて恐ろしい子ww
0006デフォルトの名無しさん2009/06/22(月) 00:09:48
前スレ、もう落ちてるよ
0007デフォルトの名無しさん2009/06/22(月) 17:34:16
1000 名前:デフォルトの名無しさん[] 投稿日:2009/06/20(土) 01:18:06
1000なら、Visual Stido 2010が開発失敗して発売大幅延期、
WPFが使い物にならないと証明される

1001 名前:1001[] 投稿日:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
0008デフォルトの名無しさん2009/06/22(月) 18:28:07
わざわざ張らんでよろし
0009デフォルトの名無しさん2009/06/22(月) 19:45:57
ザメルって、なんかエロいから人前で言いにくい
いまのところ開発で XAML 使ってないから大丈夫だけど
0010デフォルトの名無しさん2009/06/22(月) 19:47:21
ザムルってよんでた
0011デフォルトの名無しさん2009/06/22(月) 19:49:04
ザムルだろう
eはどっからでてきた
0012デフォルトの名無しさん2009/06/22(月) 20:55:22
エレメントが LMN(el em en) の読みから来てるようにML を emel と呼んだんだろ
The ML とも通じるからな。ただの音遊びだが
0013デフォルトの名無しさん2009/06/22(月) 21:17:12
>>11
ある本には
pronounced zammel
と書いてある。
0014デフォルトの名無しさん2009/06/22(月) 22:15:10
日本語ではザムル

(XAML) ("ザムル" と読みます)
http://msdn.microsoft.com/ja-jp/library/cc295302.aspx
XAML (pronounced "zammel")
http://msdn.microsoft.com/en-us/library/cc295302.aspx
0015デフォルトの名無しさん2009/06/22(月) 22:42:13
自分で作ったコントロール(Imageを継承)をxamlで使うにはどうしたらいいの?
0016デフォルトの名無しさん2009/06/22(月) 23:10:53
CPUがCore 2 Duo E6600のPCを使ってるんだけどXAMLエディタが重くて使いにくい
どの程度のCPUなら快適に使えるんだろう?

人によって快適さの基準は違うと思うけど、
新しいPCを買う時の参考にしたいので、使ってるPCと快適さを教えて欲しい
0017デフォルトの名無しさん2009/06/23(火) 00:06:27
>>16
i7だけど重いよ
Blendの方が1億倍マシ
0018デフォルトの名無しさん2009/06/23(火) 00:21:57
そりゃ酷いな

Blend3でIntelliSenseもサポートされるみたいだし、VS1本でやるのは諦めるか・・・
0019デフォルトの名無しさん2009/06/23(火) 00:32:54
Blendも無料版だしてくれよバルマー
0020デフォルトの名無しさん2009/06/23(火) 00:46:06
MS開発者のビデオ見てるとザメルって言ってるよね
0021デフォルトの名無しさん2009/06/23(火) 01:09:47
でぃれくてっくすと、だいれくとえっくすじゃ大違いだが、
XAMLはそんなに違わない。
0022デフォルトの名無しさん2009/06/23(火) 07:14:05
なんだよ、このスレは
xamlのスレだろ

>>15に答えてください

お願いします
0023デフォルトの名無しさん2009/06/23(火) 10:04:09
ざめる
0024デフォルトの名無しさん2009/06/23(火) 10:24:32
いいよ、もう
数時間格闘した結果自己解決したから
お前ら役に立たないな
0025デフォルトの名無しさん2009/06/23(火) 10:24:49
初めてWPFで開発することになり、色々調べています。
やりたい事は、ユーザーにxamlで画面を作成してもらい、C#でそれを読み込み表示するアプリを作りたいです。

色々と調べてみたのですが、イマイチピンときません。
宜しければ何かヒントを頂けると助かります。
0026デフォルトの名無しさん2009/06/23(火) 10:41:48
>>25
イチから勉強したほうが
0027デフォルトの名無しさん2009/06/23(火) 17:47:02
>>25
なんだxamlを書いてもらうのか、つまらん
0028252009/06/23(火) 23:39:57
とりあえずXamlReader.Loadとかで試したら多少できそうです。
ただ、xamlをの頭の部分をWindowsからCanvas等へ多少手直ししないといけないみたいで、
少しやりたい事多少外れてしまいます。
>>26さんや>>27さんの反応から簡単にできるっぽいので引き続き勉強してみたいと思います。
0029デフォルトの名無しさん2009/06/24(水) 00:08:34
XAMLってすごいですね。
外観の自由度もさることながら、
コントロールの組み合わせも自由なところが。。
ただ、どういう組み合わせが魅力あるUIなのか想像できない。

ComboBoxとかListBoxなんかはWrapPanelの中にImage+TextBlockでとかでいいとか
ありきたりな想像は出来るんですけど、それ以上のアイデアがないというか(見たことないからか..)
ただ、DataGridコントロールのグループ化とか詳細表示のような機能には期待している。
0030デフォルトの名無しさん2009/06/24(水) 00:23:09
>>29
ボタンの中身を画像とか、やろうと思えばとことんカオスな事ができるからねぇ。
そういやその自由度を使って、VS2010を痛IDEに、ってやってたところがあったようなw
インテリセンスのポップアップの見た目をアニメキャラにしていたとオモタ。

でも、カオスにできすぎて、他人の書いたxamlは大抵読むのに苦労するw
0031デフォルトの名無しさん2009/06/24(水) 00:29:23
そのうち、XAMLデザインパターンとか出てくるんでしょうかね。
0032デフォルトの名無しさん2009/06/24(水) 00:38:25
ボタンの中身を画像なんてUSERでもできるだろ。
ボタンの中身をテキストボックスとかのほうが恐ろしい。
0033デフォルトの名無しさん2009/06/24(水) 09:51:35
>>32
ちょw その組み合わせはまずいでしょう


質問ですが、WPFとSilverlightのコントロールの差異がぱっと見 わからないんですが、
この辺の一覧表とかあったりするんでしょうか?
自分でコツコツ調べるしかないかしら・・・

(例)
WPF Silverlight 備考
Label ○ ○ 同等
TextBox ○ ×
ListBox ○ ○ Silverlight側は○○が無い
ComboBox × ○
ViewBox ○ ○ WPF側は○○が無い
:
:
0034デフォルトの名無しさん2009/06/24(水) 11:32:05
http://wpfslguidance.codeplex.com/
でコントロール以外も含めたWPFとSilverlightの違いが解説されている。

が、あまりにも違いが多いため、69ページのPDFになっているので注意。
0035デフォルトの名無しさん2009/06/24(水) 11:38:55
>>34
ありがとうございます。
0036デフォルトの名無しさん2009/06/24(水) 23:10:55
>>31
うんざりですね
0037デフォルトの名無しさん2009/06/25(木) 16:53:57
ActualWidth、ActualHeightを変更するにはどうすればいいですか?
Width,Heightに値を入れてもすぐには変化してくれません
0038デフォルトの名無しさん2009/06/25(木) 21:50:58
<cars>
 <car>
  <maker>トヨタ</maker>
 </car>
 <car>
(以下略)
<cars>

みたいな xml の maker を ListBox にバインドしました。
トヨタ車はいっぱいあるので重複して表示されてしまうのですが、
重複をのぞいて表示するにはどうしたらよいですか?
0039デフォルトの名無しさん2009/06/25(木) 22:17:02
重複を除いたものをバインドする
0040デフォルトの名無しさん2009/06/25(木) 23:06:36
トヨタ車が重複するのは当然の真理
0041デフォルトの名無しさん2009/06/26(金) 17:38:52
>>37
果報は寝て待て
0042デフォルトの名無しさん2009/06/26(金) 19:06:51
<RowDefinition Name="rd" Height="24" />
<RowDefinition Height=rd.Heght />

のようなこと出来ないんですか?
0043デフォルトの名無しさん2009/06/26(金) 19:28:38
<RowDefinition x:Name="rd" Height="40" />
<RowDefinition Height="{Binding ElementName=rd, Path=Height}" />
0044デフォルトの名無しさん2009/06/26(金) 19:50:11
>>28
まだ悩んでる?
0045デフォルトの名無しさん2009/06/26(金) 19:59:56
MSDN Forumに行ったっぽいよ
0046デフォルトの名無しさん2009/06/27(土) 13:58:14
そうか、ならいいか
0047382009/06/27(土) 14:57:03
>>39
なるほど。
思いつかなかったw
ありがとう。
0048デフォルトの名無しさん2009/06/27(土) 15:00:20
WPF の XPath って
> person[sex='man']
みたく書けないみたいだけど、
ノードの絞り込みしたいときはどうするの?
0049デフォルトの名無しさん2009/06/27(土) 15:16:34
使えるよ ただし一部文字にエスケープ必要
Binding.XPath のサンプルにある コメントアウトされてるけど
0050482009/06/28(日) 10:50:17
>>49
レスありがとう。
教えてくれた方法で無事できました。
感謝。
0051デフォルトの名無しさん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() ではだめみたいです。
どうすればよいでしょうか?
0052デフォルトの名無しさん2009/06/28(日) 19:06:12
どんだけトヨタ推しなんだよ
0053512009/06/28(日) 19:30:11
すいません。じゃ、
<maker>光岡自動車</maker>
でお願いします。
0054デフォルトの名無しさん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 を作る以外に方法ありますか?
0055デフォルトの名無しさん2009/06/29(月) 09:52:38
CellTemplateを書く
0056デフォルトの名無しさん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);

断念して妥協するか、システムフォントを片っ端から調べるか・・。
0057デフォルトの名無しさん2009/07/12(日) 08:22:10
今まで専らMFCでプログラミングしてきたんだが、
CDocument的なものはどこに置くべき?
ウィンドウのコードに依存プロパティとして実装?

もうWPFわけわからんw
0058デフォルトの名無しさん2009/07/12(日) 10:56:23
自分でDocumentManagerみたいなのつくっとくべ気だろ。
0059デフォルトの名無しさん2009/07/12(日) 10:57:59
>>58
質問が分かりにくくてすまん。
そのインスタンスはどこに保持するのかって質問なんだ。
0060デフォルトの名無しさん2009/07/12(日) 11:06:21
この辺が参考になるかな。
http://msdn.microsoft.com/ja-jp/magazine/dd419663.aspx

更新のない一方向の情報なら
XmlDataProviderを使って直接バインドしてしまうことも出来る。
0061デフォルトの名無しさん2009/07/12(日) 11:09:26
>>60
なかなか難しいな
頑張って解読してみる
ありがと!
0062572009/07/12(日) 16:17:29
>>60
読んでみた

Model-View-ViewModelでやると、
ViewModel同士の同期が非常に煩雑になる気がするんだがそうでもない?
>>60のサンプルでも煩雑になってる気がする)

本屋に行ってWPFの本を探してみたが
どれも簡単なコントロールやスタイルの組み方までしか書いてねぇ。
0063デフォルトの名無しさん2009/07/12(日) 19:00:24
ここはexpression blendの使い方の質問してもおkな場所か?
0064デフォルトの名無しさん2009/07/12(日) 20:09:07
いいえ
0065デフォルトの名無しさん2009/07/12(日) 20:39:27
>>62
俺も綺麗なやり方が分からず悩みどころ。

あとVとVMの連携が必要な所も酷いことになる。
例えば、ボタンを押したらダイアログを表示、をやろうとしたら
ダイアログに対応するVMを作るのと、ダイアログの表示処理は誰がやるんだろう?
選択肢を選んだら即時ダイアログを閉じる場合、VMへの値の反映をバインドでやるとすると
ダイアログを閉じるのはどうやるんだろう?

って感じで複雑な物を作ろうとするとV→VMが依存しまくり。
うまく行く設計方針とかないのかしら。
0066572009/07/12(日) 22:06:24
もうMVCで書いてしまおうか。
それともフレームワークのようなものを作れば
MVVMでも多少ましになるのかな。
0067デフォルトの名無しさん2009/07/13(月) 01:16:24
>>65
コマンドは使ってるんだよね?

>例えば、ボタンを押したらダイアログを表示、をやろうとしたら
>ダイアログに対応するVMを作るのと、ダイアログの表示処理は誰がやるんだろう?
Vはコマンドを発行するだけ(VM側の実装を知らなくていい)
コマンドを受け取って、ダイアログのV,VMを作って呼び出すのはVMの役目。

>選択肢を選んだら即時ダイアログを閉じる場合、VMへの値の反映をバインドでやるとすると
>ダイアログを閉じるのはどうやるんだろう?
その程度のやつならVで閉じちゃえば?

妥当性検証をパスして、OKボタン押すまでソースへの通知を遅らせたい(CANCEL時に無かった事にしたい)時とかはVMがないと見通し悪くなる。
0068デフォルトの名無しさん2009/07/13(月) 01:25:55
>>67
前者は、コマンドは使っているけれど
> ダイアログのV,VMを作って呼び出すのはVMの役目。
これって不味いのでは?
「V→VMの依存関係を一方向にすれば、テスト楽だよ」ってのがMVVMの味噌な気が。
VMがVを作ると、VM単体で単体テストしにくくなって不味いかと。

後者は、自分が選んだのもその方法(コードビハインドで全部処理)だけど、
コマンドを使うところと使わない所が出来るってのがちょっと嫌な感じ。

自分のMVVMのやり方じゃ7割ぐらいまでは綺麗に適応できるけど
3割ぐらいは外れるか、アドホックに汚いやり方で誤魔化しちゃってます。
0069デフォルトの名無しさん2009/07/13(月) 14:15:50
MVVM的な作り方では、下記のソフトもいい勉強になりますよ。(知ってたらスマンです)

http://www.codeplex.com/miniuml
0070デフォルトの名無しさん2009/07/13(月) 16:35:36
>>60
おお、いい記事を紹介してくれた。ありがとう。
0071572009/07/13(月) 19:42:17
>>69
このUIかっけぇ
そしてコード勉強になる
ありがと
0072デフォルトの名無しさん2009/07/14(火) 00:06:15
>>69
トン、俺も読んでみる
0073デフォルトの名無しさん2009/07/17(金) 20:17:07
MSに点在するSilverlightのサイトを見ていたら
WPFと同じような使用例ばかり出てきて、WPFはどうしたいのかわからなくなる
0074デフォルトの名無しさん2009/07/17(金) 20:52:48
どっちも同じように書けるってこった
0075デフォルトの名無しさん2009/07/17(金) 20:56:16
>>73
ホストアプリを何にするかの違いだけ。
0076デフォルトの名無しさん2009/07/19(日) 00:06:09
RadioButtonのバインドって微妙で使いにくいですね。
ListBoxとかで作ったほうがすっきりするかしら・・・
0077デフォルトの名無しさん2009/07/19(日) 00:33:11
どうするんのがスマートなんだろうね。

自分の場合、Enumと合わせるなら他の人も作っている
EnumBooleanConverterをパクって使っている。これはかなり楽。

Enum以外のデータ、他の特に可変個数のデータ数の選択の場合は、
自作ViewModelクラス(選択肢の表示内容や対応付けられたデータを保持し
選択されたらイベントを飛ばす)を使っている。
0078デフォルトの名無しさん2009/07/21(火) 08:26:50
てすつ
0079デフォルトの名無しさん2009/07/21(火) 15:33:39
SilverLight3になってから、サンドボックス内とはいえローカルで実行できるとか・・・。
キャッシュとしてローカルのディスクにデータとか書き込めるのかね・・・。
0080デフォルトの名無しさん2009/07/21(火) 19:26:59
>79
2番目は IsolatedStorage でSL2の段階で出来る
ローカル実行は俺も知りたい
0081デフォルトの名無しさん2009/07/24(金) 13:08:02
WPFToolKit入れて、VSMを使いたいのだが、GotoStateでNull例外。
Silverlightと違ってGotoStateを明示的に呼び出す必要がないとか。
なのでCommonStatesグループを作って、Pressedのステートを作ってみたが無反応。
どうやったら使えるかな?
0082デフォルトの名無しさん2009/07/25(土) 20:56:49
WPFわけわかんねーなー。
特に作法みたいなのがさっぱりだ。

MVVMのテンプレートでコマンド登録する場合って、
ViewModelに起動させたいコマンドの数だけ、延々と
登録していくもの?

なんか同じコードばっかり書いてる気がする。
0083デフォルトの名無しさん2009/07/26(日) 17:11:49
>>68
MainView上のボタンを押してダイアログを表示の場合、
Vはコマンド発行するだけだよね?

コマンドの受け取り側のVMが新規ウィンドウのVとVM作ったら、
複雑になってMVVMにはならないのは理解できるんだけど、
もしそうなら、コマンドの受け取り側はどこに実装したらいいん?

コマンド用のVMを作って、コマンドは全部コマンド用VMを経由させるん?
0084デフォルトの名無しさん2009/07/28(火) 21:15:33
>>83
VMとVをきっちり分けるとなると、
1. Vに登録したICommand(VM)で操作を受け取って、
2. VMで表示するダイアログのVMを生成して
3. VMがVにデリゲート経由でダイアログのV生成を依頼して
4. Viewがデリゲート経由で受け取ったダイアログのVM+自分で作ったVで表示

全く美しくないw
0085デフォルトの名無しさん2009/07/28(火) 21:43:24
MiniUMLのソースを見ると、
Command(ViewModel)でファイルダイアログを呼び出してるけどね。

RelayCommandでは、ViewModelにメソッドを書けるのが利点なので、
新しいダイアログはViewModelで生成するいいんでないの?

ユニットテスト的にその部分の評価がしずらいのかもしれんけど。
0086デフォルトの名無しさん2009/07/28(火) 22:07:49
MVVMはあくまでデザインパターンであって規約ではないよというのが回答になりそうだなぁ。
Composite Application Guidanceのほうも勉強してみるかぁ。
0087デフォルトの名無しさん2009/07/28(火) 23:18:58
MVVMはModelとViewを直結するとモデルの編集なり何なりがゴリゴリ過ぎるから、その辺のつなぎ部分をそのビュー専用のVMにまとめてナイスに分けられたぜ、ぐらいの感じでいいかと。
0088デフォルトの名無しさん2009/07/28(火) 23:26:01
でも、Vと切り離してM+VMでテストできてラッキー!
てのは結構重要なことだと思うんだ。
0089デフォルトの名無しさん2009/07/28(火) 23:52:17
UIをUIAutomationとか使う方法でテストより、
論理的にテストできるってのは意味は大きいと思う。
0090デフォルトの名無しさん2009/07/29(水) 01:10:11
ところで、音楽とか動画を再生する処理って、MVVM だと View になるの?
0091デフォルトの名無しさん2009/07/29(水) 01:58:39
音楽の使い方によると思うが、メディアプレーヤーみたいに聴く目的ならVMを通じてModelが再生処理をするのかな。
UIを華やかにする目的で流すならViewかな。
動画はVMとView間で何を渡せばいいんだろう。
0092デフォルトの名無しさん2009/07/29(水) 05:05:03
多分そういうのまでMVVMに落とそうとするのが過剰適応なんだと思うよ。
強いて言えばコンテンツ本体にあたるストリームなり、動画ファイルそのものやURI,またその選択に至るための検索要件とかがM,VMにあたんじゃまいか。
それによる選択イベントを受けて再生する何かをViewがごにょごにょすればいい。M,VMはそれが再生されてることすら知らんと。
動画周りの処理とかをごにょごにょやる必要あるときはその処理周りまでがM,VMに入ってくるんだろうね。
いずれにしろ枠にはめようとするのがおかしな元かと。
0093デフォルトの名無しさん2009/07/29(水) 22:33:00
MVVMってどこまで使えばいいんだろうか

ViewModel-Modelのデータ構造の二重持ち(とその同期のとり方)とか、
チェックロジックのViewModelとModelの二重持ちとか、
色々と実際に適用しようとすると頭の痛い所だらけで困る
0094デフォルトの名無しさん2009/07/29(水) 23:58:04
ViewとModelのつなぎでしょ。
IValueConverterを実装したクラスがあれば、ViewModelなくてもいいと思ったりするけどね^^
0095デフォルトの名無しさん2009/07/30(木) 00:10:29
データの二重持ちはしない方がいいでしょ。キャッシュ的なものはありかも試練けど。
チェックロジックの2重持ちも阿寒と思う。
Lazyとかつかえばうまくまとまりそうな気もする。
0096デフォルトの名無しさん2009/07/30(木) 00:27:13
ターゲットによりけりだとは思うけど、ViewModelは編集中のデータを持っていて、
確定したらModelに書き戻す(キャンセルしたらロールバックする)って使い方が多いのでは?
となると編集中の状態がある場合、データ自体は二重に存在する気が。
# IDataErrorInfoを使う場合は、大抵これに該当すると思うけど

あとViewModelはModelに渡せないデータが渡された時に
エラーを表示したりModelに渡さないようにするためにチェックするし、
Modelも当然チェックする。となると必然的に両方がチェックをすることになるのでは?
処理自体はModelに持たせてViewModelがModelに問い合わせるという手はあるだろうけど、
チェック自体はなくせないと思う。
0097デフォルトの名無しさん2009/07/30(木) 11:32:26
チェックする内容がことなるんじゃね?
一緒なんだったらチェック内容もModelのメソッドとかにまとめるべきかと。
0098デフォルトの名無しさん2009/07/31(金) 01:10:41
Viewが入力を受けたときにConverterで例外が発生しても、
ViewModelはそれを知ることはできないよね?

値変更時にそれを取り消せる「取消」ボタンを作ったけど、
ViewModelがView上の値の変更を知ることができず使い物にならなかったw。
Bindムズカシイ。
0099デフォルトの名無しさん2009/07/31(金) 17:13:33
>>98
>Viewが入力を受けたときにConverterで例外が発生しても、
コンバータで想定外の型または値の場合は下記を返却するようにしてみては?
DependencyProperty.UnsetValue

>ViewModelがView上の値の変更を知ることができず使い物にならなかったw。
Binding ModeをTwoWayにしてる?
0100デフォルトの名無しさん2009/07/31(金) 19:49:17
TabItemの背景色を変更するには、どうしたらよいのでしょうか
Backgroundの値を変更しても変わらないのですが、これはどのバックグラウンドを変更しているのでしょうか
0101デフォルトの名無しさん2009/07/31(金) 19:57:09
TabItemの背景色って、どの部分を指してるの?
TabItem.Background変更したら普通にタブヘッダ部分の背景色変わったけど
0102デフォルトの名無しさん2009/07/31(金) 20:28:01
WPFの場合はBackround値で変わるね。
Silverlightの場合は、Template内のRectangleのFill値を変更しないとダメぽいが。。
0103デフォルトの名無しさん2009/07/31(金) 20:29:20
すみません、色は変更されていたみたいです・・
変更した色が白っぽい色だったので違いに気がつきませんでした、本当にすみませんでした。

ところで、タブがアクティブになっているとき?のタブヘッダの背景色の変更はどうすればいいのでしょうか
0104デフォルトの名無しさん2009/07/31(金) 20:46:06
TabItemのControlTemplateいじることになるかな
TabItem ControlTemplate の例 を参考に
0105デフォルトの名無しさん2009/07/31(金) 23:39:28
ありがとうございます
やってみます
0106デフォルトの名無しさん2009/08/01(土) 00:17:36
>>99
どもです。ちょっと手元に環境がないのですが
> コンバータで想定外の型または値の場合は下記を返却するようにしてみては?
なるほど。デフォルトコンバータ前提で考えてました。
自前でコンバータを作ってしまえば自由にできますね。
いっそViewModelのI/Fを例外が発生しないような型にしておいて、
ViewModelで変換までしてしまうという手もありかも。

> Binding ModeをTwoWayにしてる?
TextBoxに数値をBindしてMode未設定でしたが、これはデフォルトでTwoWayになっている気が。
View→Converter→ViewModel、のConverterの時点で例外が発生すると
ViewModelには全く処理が飛んでこないのでは?

デフォルトコンバータは、ViewとViewModelの整合が必要(=編集可能な値をBind)
かつConverterで例外が発生しうる状態では使えないか…うーん
01071022009/08/01(土) 13:34:29
>>106
ViewModel側には例外を取得できないですね。そういった場合はView側で対処するのかも。
ValidationOnException=trueにすると、テキストボックス自体にはエラーになりますね。

(例)
<TextBox Margin="0" Text="{Binding Age,ValidatesOnExceptions=true}" />
0108デフォルトの名無しさん2009/08/01(土) 18:57:04
アプリケーションの設定はProperties.Settings.Defaultを通じて読み込み/保存できるようですが
任意のパスから読み込みんだり保存するにはどうすればいいのでしょうか?
0109デフォルトの名無しさん2009/08/01(土) 20:51:57
質問失礼します。
画面上のImageクラスに表示している画像データを
Effectを利用して描画結果を変換したものを
さらに画像データとして次のImageクラスに設定したいのですが
この場合RenderTargetBitmapを利用するのがベストでしょうか?

何かほかに手段などはかんがえられますでしょうか?
0110デフォルトの名無しさん2009/08/01(土) 21:07:08
MSDNのWPFフォーラムで聞いたほうが早いんじゃね?
あそこ過疎ってんの?
0111デフォルトの名無しさん2009/08/01(土) 21:09:37
>>109
Effectの適用タイミングがよく分からんが
次ImageのSourceに元ImageのSourceをバインドしてやりゃいいんじゃね?
0112デフォルトの名無しさん2009/08/01(土) 21:23:37
>>110
実はLiveIDもっていませんので、ちょっと作ってみることにします。

>>111
エフェクトがかかった後の画像をもう片方のImageに貼り付けたいかんじです。
元ImageのSourceをそのまま設定してもエフェクト前の画像が表示されました。
0113デフォルトの名無しさん2009/08/01(土) 21:29:35
<Image>
 <Image.Source>
  <DrawingImage>
   <DrawingImage.Drawing>
    <GeometryDrawing>
     <GeometryDrawing.Geometry>
      <RectangleGeometry/>
       </GeometryDrawing.Geometry>
        <GeometryDrawing.Brush>
         <VisualBrush>
          <VisualBrush.Visual>
           <Image>
             <Image.Effect>
              <BlurEffect/>
こうするとか?w
一番直接的なのはEffectを自作してしまうこと
1パスで変換を済ませるピクセルシェーダを書けば一発
0114デフォルトの名無しさん2009/08/01(土) 21:47:15
>>113
これをXaml上にかくのはご指摘のとおり直感的ではないですね。。
HLSLで簡単なエフェクトはかけるのですが
エフェクト変換後の画像データを
さらに別のエフェクト処理にかけたいとおもっています。

途中経過を画面でみれるようにしたいと思い質問しました。
0115デフォルトの名無しさん2009/08/01(土) 21:48:25
Imageを使う必要はあるの?
ImageでなくていいならFrameをネストすれば同じことできるけど
0116デフォルトの名無しさん2009/08/01(土) 21:57:18
>>115
途中経過を見てみたいと思いましてImageにしたいなとおもっていました。
Frameについては今はじめてしったコンポーネントなので、調べてみたいと思います。
01171082009/08/02(日) 02:22:08
>>108
自己レス
ApplicationSettingsBase.Providersが実際の読み書きしてるみたいだから
独自のSettingsProviderを登録すればできそう。
0118デフォルトの名無しさん2009/08/02(日) 20:35:43
UserControlを作っていてわからないことがありましたので質問です。

方眼紙のような罫線を描くユーザコントロールを作成しております。

そこで、

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        .
        .
        .
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
<Grid>

のように、行・列の指定を記述出来るようにしたいと思っております。
もしよろしければ参考になるWebサイトやキーワードをお教えいただけますでしょうか・・・。

よろしくお願いします。
0119デフォルトの名無しさん2009/08/02(日) 20:41:13
どうするも何も,自分でColumnDefinitionsのようなコレクションを持って自分でレイアウトするんだよ
それと,UserControlでパネル作るのは無理でしょ
カスタムコントロールだな
0120デフォルトの名無しさん2009/08/02(日) 20:57:39
>方眼紙のような罫線を描くユーザコントロールを作成しております。
これが目的ではないでしょ?
具体的に書いてもらわんとわからんわ。
0121デフォルトの名無しさん2009/08/02(日) 21:03:47
汎用的なコントロールを作ろうとしてるなら,UserControlは使えないというか作法として使わない
0122デフォルトの名無しさん2009/08/02(日) 21:03:52
説明が下手で申し訳ないです。

>自分でColumnDefinitionsのようなコレクションを持って自分でレイアウト

はい、現在はXAMLからはせっていできませんが、
現在は仮実装でですが、GridSheetColumnDefinition や、
GridSheetRowDefinition といったクラスの
コレクションを、内部に作成しております。

これらの内容をC#記述したコードで適当に生成して、
罫線を引く所までは作成が進んでおります。

そこで、マークアップ拡張?というのでしょうか・・・

<GridSheet.ColumnDefinitions>というような記述で、

<GridSheet>
    <GridSheet.ColumnDefinitions>
        <GridSheetColumnDefinition/>
        .
        <GridSheetColumnDefinition/>
    </GridSheet.ColumnDefinitions>
    <GridSheet.RowDefinitions>
        <GridSheetRowDefinition/>
        .
        <GridSheetRowDefinition/>
    </GridSheet.RowDefinitions>
</GridSheet>

のように行・列の設定を行えたら良いなと持っております。
0123デフォルトの名無しさん2009/08/02(日) 21:17:08
パブリックプロパティでIList(非ジェネリック)を実装したコレクションを公開するだけでよかったと思うけど
01241222009/08/02(日) 21:25:04
>>123
どもです、ためしてみます!
0125デフォルトの名無しさん2009/08/02(日) 22:47:12
GridのShowGridLines="True"で線引けるんだが、これでは不十分なのだろうか・・・
0126デフォルトの名無しさん2009/08/05(水) 19:35:52
ScrollViewerにStackPanel入れて、StackPanelにImageいっぱいいれてもスクロールバーが出てこないんだけど
どのプロパティを設定する必要があるんですか?
0127デフォルトの名無しさん2009/08/05(水) 20:03:06
ImageのStrechがFillになってるとかじゃない?
0128デフォルトの名無しさん2009/08/05(水) 20:09:03
ごめんなさい、ミスしてました
ScrollViewerのHeightに値いれてるつもりが、NaN入れてました
そこいじったら表示されました
0129デフォルトの名無しさん2009/08/08(土) 01:45:02
画面遷移でこけてしまったので、回避の方法を教えてください。

WPFで場面ごとにPageを用意してタブコントロールで切り替えていたのですが、せっかくのWPFなのでアニメーションとか付けてみようと思い
透明度などをストーリーボードで制御してフェードイン・アウトを作ってみたのですが、タブキーで非表示(フェードアウトした)Pageのコントロールにフォーカスが当たってしまいます。
これを回避するために一つ一つにフォーカス制御のプログラムを組んだのですが、今後Pageが増える事を考えると効率的ではありません。
何かスパッと書けて効率のいい方法はないでしょうか?
0130デフォルトの名無しさん2009/08/08(土) 02:24:25
・・・透明度0のあと非表示にとかしないの?
0131デフォルトの名無しさん2009/08/09(日) 02:52:15
すいません、抜けてましたorz
Visibilityプロパティもストーリーボードで透明度0にした後にFalseへ移るようにトリガで打ってあります。

ただ、このようにストーリやコントロールのテンプレートを用意しても、
コントロール側を制御するためのストーリーボードを用意する必要があるため複雑化は避けられません。
(プログラムでコントロール側のストーリーボードを作ればモジュール程度で収まるが折角のXAMLならXAMLだけで収めたい!(<x:Code>も避けたい))

WPFのサンプルが少なくこのようにしていいんだという自信がないため、
推奨される方法があるならそちらを優先した方がいいと考えています。

これはまだ.Net 3.5では実現できない話なのでしょうか?
0132デフォルトの名無しさん2009/08/09(日) 20:03:03
ShaderEffectを通じてHLSLに2次元配列を入力するのってもしかしてできません?
0133デフォルトの名無しさん2009/08/10(月) 18:54:32
WriteableBitmapとImageBrushを使ってブラシとして渡す
0134デフォルトの名無しさん2009/08/10(月) 22:29:20
MVVMの概念的にViewModelはIDisposableを実装すべきでしょうか?
ttp://msdn.microsoft.com/ja-jp/magazine/dd419663.aspx
では使ってるのに、勉強のために見たMiniUMLでは使ってなくて
迷ってしまいました。
0135デフォルトの名無しさん2009/08/10(月) 22:47:02
必要なら実装すればいい。
0136デフォルトの名無しさん2009/08/13(木) 16:13:53
MediaElementのcontextmenuにアイテムを追加したいんですが
追加ボタンがグレーアウトしていて追加できません
XAMLエディタに手動で書き込むしかないんですか?

http://www.death-note.biz/up/f/5051.png
0137デフォルトの名無しさん2009/08/20(木) 17:37:17
WPFってVSだけだと難しいのかな
0138デフォルトの名無しさん2009/08/20(木) 17:56:38
んなこたない
0139デフォルトの名無しさん2009/08/20(木) 20:08:31
凝ったデザインにしない限り、VSだけで十分
0140デフォルトの名無しさん2009/08/20(木) 22:17:21
this.AddChild(new Button());
なぜこれでボタン表示できないのか分からない
WinFormsと違いすぎる
0141デフォルトの名無しさん2009/08/21(金) 01:48:56
サイズセットしないとだめなんじゃねーの?
0142デフォルトの名無しさん2009/08/22(土) 12:56:21
WPFテクノロジーの発想ってMicrosoftのウリジナルなの?
0143デフォルトの名無しさん2009/08/22(土) 12:56:47
HTMLが元祖です
0144デフォルトの名無しさん2009/08/22(土) 14:41:02
>>142
韓国起源ではない
0145デフォルトの名無しさん2009/08/22(土) 14:50:19
>>142
マイクロソフトも含めて今のソフト業界にはオリジナルと言う物はない。
全ては過去の技術の焼き直し。
ソフトウエアなんて本質的にはなんの進歩もしとらんよ。
0146デフォルトの名無しさん2009/08/22(土) 15:44:30
おとなのかいだんのぼる〜
0147デフォルトの名無しさん2009/08/22(土) 15:50:24
>>145
こういうしたり顔してる奴って会社とかで何も役に立たないくせに人のやろうとしてることに文句付けて嫌われてるんだろうな
0148デフォルトの名無しさん2009/08/22(土) 17:03:39
でも女性社員には人気あって、事務のかわいい新人のこといち早くやっちゃってたりするんだよね。
0149デフォルトの名無しさん2009/08/22(土) 17:52:22
他人の話なんざ興味ねぇよ。
マ板か喪男板でやれ
0150デフォルトの名無しさん2009/08/22(土) 20:10:16
NavigationService.Navigate()
これやるとクリック音が出るんだけど消すことは出来ませんか?
0151デフォルトの名無しさん2009/08/22(土) 21:23:58
人柱くんたちご苦労である。
0152デフォルトの名無しさん2009/08/27(木) 16:53:36
Storyboard使ってみたいんだけど、どこから手を出せばいいのか分からない
Blend無いと厳しいかな
0153デフォルトの名無しさん2009/08/31(月) 10:36:47
Blendなくてもいけるけど、やっぱBlendで設定したほうが楽だな。
とりあえず単純なものなら、DoubleAnimationをやってみればいい。
0154デフォルトの名無しさん2009/08/31(月) 14:07:32
ログオフ時などにApplication.SessionEndingでキャンセルしなければApplication.Exitが起きるとMSDNに書いてありますが
実際に試してみるとExitイベントが起きません。

private void Application_Exit(object sender, ExitEventArgs e)
{
 using (StreamWriter w = new StreamWriter(path, true)) { w.WriteLine("Exit"); }
}
private void Application_SessionEnding(object sender, SessionEndingCancelEventArgs e)
{
 using (StreamWriter w = new StreamWriter(path, true)) { w.WriteLine("SessionEnding : {0}", e.ReasonSessionEnding); }
}

ファイルには SessionEnding : Logoff しか書かれません。
何が原因なのでしょうか?
01551542009/08/31(月) 20:24:11
Microsoft.Win32.SystemEvents.SessionEndedイベントで処理できました。
MSDNに書いてあることは何だったんだ…
0156デフォルトの名無しさん2009/09/01(火) 00:54:19
てすと
0157デフォルトの名無しさん2009/09/01(火) 01:01:10
Width="Auto"で伸びきるのが使いにくい
コンテンツに合わせるのが筋じゃないのか
0158デフォルトの名無しさん2009/09/01(火) 01:22:33
>>157
Width="*" でええやん
01591582009/09/01(火) 01:25:03
なんか色々勘違いしたらしい。忘れてくれ
0160デフォルトの名無しさん2009/09/01(火) 01:47:31
Stretchにしてるとかってオチではないよな
0161デフォルトの名無しさん2009/09/01(火) 10:05:47
コンテンツのレイアウトは親に基づいて計算されるからな
考え方が逆
0162デフォルトの名無しさん2009/09/01(火) 23:37:25
WPF標準UI初期値ださいんだよな。
理由はわかるけど、せめて初期テーマとかでWinForm並みにしてほしい。
0163デフォルトの名無しさん2009/09/01(火) 23:45:08
標準で付いてるテーマでXPやVistaっぽくはできる
0164デフォルトの名無しさん2009/09/03(木) 21:58:30
ListBox を使用して、下記のように ItemTemplate を設定しました。

<ListBox.ItemTemplate>
  <DataTemplate>
    <Border BorderThickness="1" BorderBrush="Black">
      <TextBlock Text="{Binding Name}"></TextBlock>
    </Border>
  </DataTemplate>
</ListBox.ItemTemplate>

こうすると、Border が TextBlock の大きさになってしまうのですが
Border の幅を ListBox いっぱいに広げたいのですが、
どうすれば良いでしょうか?

ちなみにウィンドウの大きさをユーザーが調整できるように
してあるので ListBox の幅は可変です。
01651582009/09/03(木) 22:05:57
>>164
ListBox.HorizontalContentAlignment="Stretch"
0166デフォルトの名無しさん2009/09/03(木) 22:07:30
名前欄消し忘れたorz
01671642009/09/03(木) 22:11:37
>>165
超感謝
0168デフォルトの名無しさん2009/09/06(日) 01:54:51
ListView で Binding 表示する時、 ListView の選択アイテム削除ってどうやってマスカ?

ListView / ListView.View / GridView とかやって
GridViewColumn / @CellTemplate で
ListView.Resource に定義した DataTemplate を指定。
テンプレート内 TextBlock / @Text に {Binding Path=myObj.member}
とかで表示させてるのだけど, ListView.Items[n] とかやって取れるのは
自分で ListViwe に突っ込んだ型そのものだったりするんですヨ.

while( listView.selectedIndex != -1 ){ listView.RemoveAt(listView.selectedIndex); }

で、途中までは事たりてたんだけど、選択アイテムの中に非削除対象としたいアイテムがあった場合、
それを回避するには index 記憶したり更新したり、遠回りな実装しか思い浮かばなくて困ってマス.
0169デフォルトの名無しさん2009/09/06(日) 02:09:18
何を言いたいのか分からないが、とりあえずお前が
ItemsSourceとObservableCollectionを理解できないアホ子なのはよく分かった。
01701682009/09/06(日) 23:56:23
とりあえず解決シマシタ (無限ループしそうデスガ...). >>169 アドバイスありがとう. だけどよく分からなかった orz

.while (listView1.SelectedIndex > -1)
.{
. TestData td = listView1.Items[listView1.SelectedIndex] as TestData;
. if (td.removeOK != "yes")
. {
. ListViewItem lvi = listView1.ItemContainerGenerator.ContainerFromItem(td) as ListViewItem;
. if (lvi != null)
. {
. lvi.IsSelected = false;
. }
. continue;
. }
. listView1.Items.RemoveAt(listView1.SelectedIndex);
.}
0171デフォルトの名無しさん2009/09/07(月) 00:11:27
MVVMすら理解していないな、こりゃ
0172デフォルトの名無しさん2009/09/07(月) 19:38:23
半透明スッケスケのツールはもっと出回ってもいいと思う
2chブラウザとかIRCクライアントとか
0173デフォルトの名無しさん2009/09/07(月) 19:53:42
中途半端に詳しい人って重いとか過剰に気にするから…
0174デフォルトの名無しさん2009/09/07(月) 20:00:15
> 2chブラウザとかIRCクライアントとか
この辺半透明でも、正直読みづらくなるだけで俺は嬉しくないんだが…
一般的にはそうでもないの?

非アクティブ時に半透明はちょっといいかもしれん
0175デフォルトの名無しさん2009/09/07(月) 20:10:35
>>174
色次第だとは思う
背景が黒の50%で文字に100%のふちが付けばかなり見やすい
0176デフォルトの名無しさん2009/09/07(月) 20:42:07
ビジュアルノベル風か
0177デフォルトの名無しさん2009/09/07(月) 20:50:43
WPFではないけど、SSHクライアントPuTTYのxterm風透過やAero Glass効果のパッチとかはいいと思った。
(Aero GlassのほうはSS見ただけでまだ使っていないけど)
0178デフォルトの名無しさん2009/09/08(火) 07:24:21
TextBlockにBitmapEffectを使うとTextにstring.Emptyが入らなくなる
0179デフォルトの名無しさん2009/09/08(火) 11:08:37
TextBlockをFrameに入れてFrameにBitmapEffectを適用したら
0180デフォルトの名無しさん2009/09/08(火) 16:08:16
で、結局WPFはLONGHORNの頃に自分達に驚きを与えたクールなブラットフォームになれたんですか?
0181デフォルトの名無しさん2009/09/08(火) 16:10:48
>>180
縁の下の力持ち的なあれですよ
0182デフォルトの名無しさん2009/09/08(火) 19:03:13
WPF4.0でとりあえずある程度完成された形になるんじゃないかな
0183デフォルトの名無しさん2009/09/08(火) 19:45:52
WPFすげぇー
http://www.youtube.com/watch?v=MTfM5pmUrnU&feature=related
0184デフォルトの名無しさん2009/09/08(火) 20:20:23
<RichTextBox.Background>
    <ImageBrush ImageSource="xxx.png" />
</RichTextBox.Background>

このようにしてRichTextBoxに背景画像を表示しています
ユーザーが好きな画像に変更できるようにしたいのですが、どのようにしたらよいかわからないので教えてください
0185デフォルトの名無しさん2009/09/08(火) 20:34:31
>>183
見てきたけど、カッコいいね。
可視化することで、瞬時に状況把握ができる効果的な分野って結構あるんだろうなぁ
航空管制塔で使うようなソフトのところは、映画の一場面かと思った。
0186デフォルトの名無しさん2009/09/08(火) 21:07:35
>>184
<ImageBrush x:Name="backgroundImageBrush" …
のように名前を付ければWinFormsと同じようにコードビハインドからアクセスできる
0187デフォルトの名無しさん2009/09/08(火) 21:09:56
>>186
ありがとうございます
0188デフォルトの名無しさん2009/09/08(火) 21:43:57
でもさ。アドベンチャーゲームのテキストたらたら表示と同じで
メニューがいちいちアニメーションしたりするのって
忙しい時はウザいだけなんだよね。

おもちゃ用OSと仕事用OSとで分けてほしい。
0189デフォルトの名無しさん2009/09/08(火) 21:51:11
そういう固定概念のおかげでGUIは進化しないんだろうね
0190デフォルトの名無しさん2009/09/08(火) 21:52:52
でもVisual Studioのアニメーションは切ってるだろ?w
0191デフォルトの名無しさん2009/09/08(火) 21:53:16
切ってねえなあ
0192デフォルトの名無しさん2009/09/08(火) 21:56:08
固定概念な俺向けにマイクロソフトはちゃんとアニメーションを切れるモードを作ってくれているからな。
アニメーションするのがGUIの進化だと思うなら勝手にやっててくれ。
0193デフォルトの名無しさん2009/09/08(火) 21:57:47
Officeのイルカが叩かれまくったのがいい経験になってるんじゃないか?
0194デフォルトの名無しさん2009/09/08(火) 21:58:24
アニメーション自体は嫌いじゃないがVSのアニメーションはガクガクな上に時々変な表示になって気持ち悪いから切ってる
2010でWPFになったら改善されるんだろうけど
0195デフォルトの名無しさん2009/09/08(火) 21:59:09
VS2010っていつ発売なんだろう
0196デフォルトの名無しさん2009/09/08(火) 22:04:21
はるか昔にプレゼンで使われたVistaのコンセプト画像では
ウィンドウが波打ったり回転したり自在にアニメーションしてたのに、
実際出来上がってみたら斜めに並べるだけでした。
なぜなら、テスターにキモいって言われまくったから。

そしてそこまでスリム化したフリップ3Dですら、
やっぱりいらないと言われる始末。
0197デフォルトの名無しさん2009/09/08(火) 22:32:25
しょうじき、エクスポゼもすげーとか思うけど使いやすさから言うとAlt+Tabのほうがいい。
スノレパのエクスポゼ使った違う画面へのドラッグドロップはちょっと便利かと思ったけど。
0198デフォルトの名無しさん2009/09/08(火) 22:36:51
そういえばiPodのCover Flowも全然使ってないな
0199デフォルトの名無しさん2009/09/09(水) 00:03:28
アニメーション切るような奴はUIのこと何もわかってない
0200デフォルトの名無しさん2009/09/09(水) 00:10:36
アニメーションには挫折した。
普通のUIを普通に使う。
0201デフォルトの名無しさん2009/09/09(水) 00:23:53
切りたくなるようなアニメーションの使い方をする糞アプリがあるのも事実。
ピンポイントで使いこなせば強力だが、
下手糞が使うと邪魔だったりウザかったりクドかったり実に酷い物。
0202デフォルトの名無しさん2009/09/09(水) 00:27:13
実は未だにCUIでテンキーといくつかのコマンドで操作できるようにしてくれと言う
案件があったりする
0203デフォルトの名無しさん2009/09/09(水) 00:32:27
それはあるだろうね。なんでもかんでもアニメーションや視覚化は意味ないからね。
効率を求めるとCUIでテンキーとコマンドの選択肢は残るでしょう。
0204デフォルトの名無しさん2009/09/09(水) 00:38:48
Window直下のCanvasパネルをTransformで移動・ズームさせてるんですが、
表示されてる領域の中心に現在位置している座標を求めるのはどうすればいいでしょうか。
中心じゃなくても左上の座標がわかればいいです。
マウスポインタだとGetPosition(canvas)で簡単に求められるんですけど。
0205デフォルトの名無しさん2009/09/09(水) 00:40:51
ttp://blogs.msdn.com/llobo/archive/2009/09/08/wpf-webbrowser-awesome.aspx
0206デフォルトの名無しさん2009/09/09(水) 00:55:22
もうアニメーションのためにプロパティ作ったり
プログラム組むのはコードの難読化としか思えない
0207デフォルトの名無しさん2009/09/09(水) 01:19:11
アニメーションとプログラムを分離できんのがWPFのメリットなんじゃねーか
0208デフォルトの名無しさん2009/09/09(水) 07:29:09
WPFで作ったテキストボックスに入力値チェックを任せるのは問題ない?
regexみたいに制限をかけたい。

0209デフォルトの名無しさん2009/09/09(水) 09:46:17
Googleは正直嫌いなんだが、Chromeのタブ左右に動かすときの動きとかは好き。べつにChrome特有のもんじゃないけど。
0210デフォルトの名無しさん2009/09/09(水) 10:20:26
>>208
WPF的には良くない
バインディングのValidationを使う
0211デフォルトの名無しさん2009/09/09(水) 12:42:52
ChromeはWPFじゃないってのがすごいな。
0212デフォルトの名無しさん2009/09/09(水) 15:19:13
.NETでUXをやる時の有力な選択肢がWPFってだけの話さ
Googleみたいに巨大で体力のある企業なら、自社開発した方が自由にやれるしパフォーマンスUPにも繋がるだろう。
0213デフォルトの名無しさん2009/09/09(水) 19:19:47
UXをやるってなんか変な使い方だな。
0214デフォルトの名無しさん2009/09/09(水) 21:17:33
>>210
ありがとう!こういうのを知りたかった。
ちなみにWPFを勉強するお薦めを教えて欲しい。
Webでも書籍でもいいのでお願いします。
0215デフォルトの名無しさん2009/09/09(水) 22:49:31
EssentialWPFはほどよい程度のレベルで網羅してるのでお勧め。
正直表紙とかで損してると思う。
0216デフォルトの名無しさん2009/09/10(木) 00:17:04
>>215
確かに、あの 90 年代初頭っぽい CG の表紙は酷いな。
良著だけに、もう少し頑張って欲しかった。

>>214
書籍ではないが、CodePlex という MS 運営のコミュニティサイトから、
WPF 関連のプロジェクトをチェックする事をお勧めする。
自分の場合、MiniUML のソースが学習に役立っている。
0217デフォルトの名無しさん2009/09/10(木) 06:45:24
>>215
>>216
thx!チェックしてみる。
0218デフォルトの名無しさん2009/09/10(木) 08:12:18
>>217
ebook WPF
で検索すると幸せになれるかも
0219デフォルトの名無しさん2009/09/10(木) 20:37:43
>>217
え。なにこれ。無料で落とせたんだけど。
よくわからんがthx。
0220デフォルトの名無しさん2009/09/10(木) 20:43:57
pdf版は無料公開とか
海外は太っ腹だな
0221デフォルトの名無しさん2009/09/11(金) 00:35:59
Expression Blend3たのしぃぃぃぃ
0222デフォルトの名無しさん2009/09/11(金) 01:19:59
Expression Mediaはどこいっちゃったんだよーorz
0223デフォルトの名無しさん2009/09/11(金) 01:58:56
はよExpressionの製品版出荷しろよな -> MS
11月らしいが初旬であってほしい。
0224デフォルトの名無しさん2009/09/11(金) 02:05:08
Expression Blend Expressはでないのかのぉ
0225デフォルトの名無しさん2009/09/11(金) 03:00:37
対応は .NET3.5SP1 なんだな。 .NET4.0が出たらSP追加で出すんだろう、たぶん。
0226デフォルトの名無しさん2009/09/11(金) 10:32:07
VS2010がいつ頃出荷なんだろうか。
年末かなぁ
0227デフォルトの名無しさん2009/09/11(金) 20:50:11
WPFで作った簡単なアプリをatom Z520 + US15WなUMPCで動かしてみたら、
表示にゴミが出まくったり、ウィンドウリサイズに3秒ぐらいかかったりで使い物にならなかった。

UMPCで動かせないって、将来大丈夫なんだろうか…
0228デフォルトの名無しさん2009/09/11(金) 22:05:49
>>227
>マイクロソフトに“お仕置き”された5つのネットブック
>ハイスペックすぎると低価格のOSライセンスが搭載できない
http://www.computerworld.jp/topics/netbook/158129.html

>愛憎入り交じるマイクロソフトのネットブックへの思い
>ネットブックが売れるほど、シェアは上がるが売上高は減るというジレンマ
http://www.computerworld.jp/topics/win7/148490.html

この二つの記事がWPFがネットブックで動かすには
やや重いテクノロジである理由の回答(の一部)になるんじゃないかな?
あるいは、名著「イノベーションのジレンマ」の中にも出てくるけど
破壊的イノベーションの登場を阻止するために必要な措置だとか。
0229デフォルトの名無しさん2009/09/12(土) 01:32:02
WPFってフルスペックPC向けでしょう。
0230デフォルトの名無しさん2009/09/12(土) 01:56:55
今時のローエンドPCなら結構サクサク動くっしょ
0231デフォルトの名無しさん2009/09/12(土) 07:12:36
そこでSilverlightのOutOfBrowserですよ。
多分これどこでも動かせるアプリケーションプラットフォームとして押してくるんだと思うよ。
WPFは同じ規約の高機能版って位置づけになるかと。
0232デフォルトの名無しさん2009/09/12(土) 13:30:30
SilverlightのOutOfBrowserはIEコンポの中で動いてますw
セキュリティ制限もそのまま
0233デフォルトの名無しさん2009/09/12(土) 13:37:03
HTA から JavaScript 経由でローカルアクセスとかできないの?
0234デフォルトの名無しさん2009/09/12(土) 17:28:07
まさかXP上で動かしてるんじゃないんだろうなw
0235デフォルトの名無しさん2009/09/13(日) 01:38:40
MVVMってVSのWPFテンプレートとは構造が違うよね?
じゃあWPFテンプレートはどういうパターンに則ってるんだろう
0236デフォルトの名無しさん2009/09/13(日) 03:02:10
> MVVMってVSのWPFテンプレートとは構造が違うよね?
え?
0237デフォルトの名無しさん2009/09/13(日) 09:40:46
ちょっと上にVisual Studioのアニメーション切っているって話があったけど、
一通り探してみてもどこで設定できるかわかりませんでした。。
よかったら教えてください。
0238デフォルトの名無しさん2009/09/13(日) 11:55:10
VSのWPFテンプレートには全くフレームワーク色がないだろ
どうとでも使える

>>237
ツール→オプション→環境ツールをアニメーションで表示
0239デフォルトの名無しさん2009/09/13(日) 14:37:59
>>238
でもMVVMに則ってやろうとすると手を加えないといけないよね。
WPFはMVVMと相性が良いっていうけど、それならなんでMVVMパターンのテンプレートにしないんだろう。
ある程度WPFに慣れた人向けってことなんかな。
0240デフォルトの名無しさん2009/09/13(日) 14:44:48
ゲームとかちょっとした小さいツールとか作るのにMVVMなんかいらないだろ
MVVM使うようなある程度の規模のプロジェクトだったら
どっちみち自分で枠組み作るんだからテンプレートなんかあってもなくても変わらん
0241デフォルトの名無しさん2009/09/13(日) 17:15:08
テンプレートを用意すると、押し付けになっちゃうからね。
MVVMはあくまで技法のひとつだから。
0242デフォルトの名無しさん2009/09/13(日) 20:51:40
<StackPanel DockPanel.Dock="Left" Width="100">
 <TextBlock>
  <TextBlock.BitmapEffect>
   <BevelBitmapEffect></BevelBitmapEffect>
  </TextBlock.BitmapEffect>
  ABC
 </TextBlock>
</StackPanel>

BevelBitmapEffect つけても外見がまったく
かわらないんだけど、どこが悪いんでしょうか?
0243デフォルトの名無しさん2009/09/13(日) 21:28:09
TextBlockに使うのが悪い
0244デフォルトの名無しさん2009/09/13(日) 23:49:28
WPFToolkit の DataGrid についての質問です。
DataTemplate を使用してカラムヘッダに
Grid を入れたんですが、サイズが小さいです。

カラムヘッダいっぱいにGridを表示したいと思います。
たぶん、DataGridColumnHeader の HorizontalContentAlignment
02452442009/09/13(日) 23:53:11
すいません、途中で書きこんでしまいました。

DataGridColumnHeader の HorizontalContentAlignment を Stretch
にすればいけるような気がするんですが、DataGridColumnHeader に
アクセスする方法がわかりません。

どなたか解決策をご存じの方いらっしゃいませんか?
0246デフォルトの名無しさん2009/09/14(月) 02:24:11
>>239
その手法が喧伝されはじめたのが最近だから。

もともと(xamlの内部にしかもわかりにくい書式でバインド云々とか)
WPFの元設計がいまいちだとしか思えないわけで、
WPF2では(なんてものを出す気があるのなら)、それに近い構造をデフォルト様式の一つに持ってくるわけだろう。

そして、そのようにシステムレベルで構造拡張するなら、
MVVM(自体も必ずしも簡潔明快なものではないわけで)の露骨なテンプレみたいにせずとも、
前に似た話が出ていたが、VM部分が、簡単なV-M対照表的なものでいいのでないか。
たとえば、バインド定義ファイル?というような名前のものに
[(ザムルの) myText1 = (コードの)myClass1.value1 ]
などと書いておけば、最も初歩的にはそれでOK、簡単なソフトならそれで動く。
そして詳細の設定や制限や、表示やバインドの切り替えやちょっとしたイベント処理等も、複雑なことをやる場合のために、その定義表内で可能な限り出来るようにする。
ザムルは表示のデザインだけ、コードはデータの保持と計算と出力物の作成だけと。
0247デフォルトの名無しさん2009/09/14(月) 16:10:14
>>246
なるほど
0248デフォルトの名無しさん2009/09/14(月) 18:48:18
WPF使ってワープロみたいな物作るとしたらどの辺のクラスを使うんでしょうか…
フォームズでのMeasureStringのような物ってあります?
0249デフォルトの名無しさん2009/09/14(月) 19:37:41
>>248
FlowDocumentかな?
0250デフォルトの名無しさん2009/09/14(月) 20:01:51
WPFにはとっても複雑で高レベルなテキストレイアウトの仕組みがある
MSDN読んでると頭痛くなってくるから頑張れ
02512482009/09/14(月) 21:48:53
んーレイアウトとかはFlowDocumentとかその他のレイアウトの仕組みがてんこ盛りありそうなんですが、
Graphics.MeasureCharacterRangesみたいなのとかプリミティブに操作出来るものがないと何処かで行き詰まる気が。

とりあえずMSDNいってみまふ・・・
0252デフォルトの名無しさん2009/09/14(月) 22:14:09
>>251
http://msdn.microsoft.com/ja-jp/library/ms754036%28VS.80%29.aspx
このへん
0253デフォルトの名無しさん2009/09/15(火) 12:54:00
LineってCanvas上じゃないと表示できないの?
StackPanelに入れたいんだけど表示されない
0254デフォルトの名無しさん2009/09/15(火) 12:59:29
普通に表示されるけど
Lineって本当にお絵かきするためのコントロールなので区切り線にはSeparatorを使う
0255デフォルトの名無しさん2009/09/15(火) 13:09:12
パスの間違いだろ
<StackPanel Margin="72,112,184,131">
<Path Fill="#FFFFFFFF" Stretch="Fill" Stroke="#FF000000" Width="217" Height="81" Data="M96,56 L312,136"/>
</StackPanel>
0256デフォルトの名無しさん2009/09/15(火) 16:36:36
TabItemのタブをホイールクリックしたというイベントを拾いたい場合
自分でMouseDownやMouseUpイベントを処理するしかないんでしょうか?
02572562009/09/15(火) 16:40:06
>>256
補足
やりたい事は、IE8等のタブブラウザによくあるような「タブをホイールクリックすると閉じる」
という動作です。
0258デフォルトの名無しさん2009/09/16(水) 10:30:01
>>256
まあClickイベントが無い以上は、そうなるわな。あと、MouseLeaveイベントも拾っとかないと
いかんのでは。
ただ、IEブラウザの例ではクリックでタブを閉じてるのはなくて
MouseDownされた時点で閉じているようだが?
02592562009/09/16(水) 13:54:03
>>258
ttp://codepad.org/asHHg3sH
こんな風に添付プロパティにして、コマンドを関連付けられるようにしました。
クリック判定は面倒くさいんで、MouseDownで実行するようにしました。IEもそうなってるしね。
ありがとうございました。
0260デフォルトの名無しさん2009/09/16(水) 14:01:45
おお。質問を受けて、私もカスタムビヘイビアを作ろうかと検討していた所だった。
使わせてもらいます。
0261デフォルトの名無しさん2009/09/17(木) 00:00:15
WPFではNameはキャメルじゃないの?
0262デフォルトの名無しさん2009/09/17(木) 01:18:55
ttp://hakuhin.hp.infoseek.co.jp/main/as/mtx_2d.html#MATRIX_04
この「好きな座標を中心に回転」みたいなのをやりたいんだけど、
これの言う原点ってその要素を配置してるPanelの座標のことだよね?
具体的にはCanvasにStarsという画像を配置してるとして、平行移動はStarsに、
回転はCanvasに適用するということになるのかな?
でもそれだとStarsが複数あったとき、Canvasも同じだけ用意しないといけないよね…
0263デフォルトの名無しさん2009/09/17(木) 01:34:13
>>261
Nameのお作法はよく分からん。俺は小文字スタートキャメルだけど、
標準コントロールをみてみたらキャメルにしていなかった気がする。
0264デフォルトの名無しさん2009/09/17(木) 01:43:25
>>262
Flash&ActiveScript? スレ違い?
WPFならRenderTransform使うけど
0265デフォルトの名無しさん2009/09/17(木) 01:54:51
ActiveScript?
0266デフォルトの名無しさん2009/09/17(木) 02:00:18
>>264
うん、RenderTransform使うんだけど、TranslateTransformとRotateTransform
をそれぞれどの要素に適用したらいいかなと悩んでるの。
0267デフォルトの名無しさん2009/09/17(木) 02:03:39
一つの要素に両方適用すりゃいいじゃん
0268デフォルトの名無しさん2009/09/17(木) 02:08:29
>>267
それだとうまくいかないんだよな。
Translateしても原点は相変わらず左上。
画像に対して適用してもその画像の持つ論理座標上での位置は変わらんみたいなんで。
0269デフォルトの名無しさん2009/09/17(木) 07:41:57
>>268
俺もそういった座標系でこけたことある。
結局中心点とかコントロールだけで取ること出来なかったしグリッドに貼って
中心点をプロパティ化してバインドした
0270デフォルトの名無しさん2009/09/17(木) 10:10:38
好きな座標を中心に回転…
RotateTransformのCenterX/CenterY、じゃないんだろうなぁ、そんなに悩んでるんだから
0271デフォルトの名無しさん2009/09/17(木) 11:25:26
最悪MatrixTransformでどうとでもなるけど
0272デフォルトの名無しさん2009/09/17(木) 13:17:18
>>270
ScaleTransformとかと組み合わせたくなったとき
Centerプロパティは役に立たないんだ。
>>271
この際アフィン変換について学んでみるかなあ…
>>269
よかったら詳しく教えて
0273デフォルトの名無しさん2009/09/17(木) 13:20:04
RotateTransformやった後にScaleTransformをやるんじゃだめなんか?
0274デフォルトの名無しさん2009/09/17(木) 13:26:16
別に勉強するほどのことでもないよ
Matrix m = Matrix.Identity;
m.RotateAt(r, cx, cy);
m.Scale(sx, sy);
みたいなかんじ
0275デフォルトの名無しさん2009/09/19(土) 03:23:12
XAMLのBindingは同じxaml内のElementとしか直接的にBindingできないの?
foo.xamlのElement1とbar.xamlのElement2はBindingできない?
0276デフォルトの名無しさん2009/09/19(土) 06:54:55
Image Sourceに外部イメージファイルを指定できないのは何故?
MediaElement Sourceでは出来るのに
出来るか出来ないか統一してくれないと分かりにくい
0277デフォルトの名無しさん2009/09/19(土) 09:35:26
>>276
できるけど
0278デフォルトの名無しさん2009/09/19(土) 21:35:50
>>276
余裕でできるが
0279デフォルトの名無しさん2009/09/19(土) 23:05:49
なんでWPFアプリケーションって見た目Classicになるん?
VisualStyleすら適用できないとかどんだけwww
0280デフォルトの名無しさん2009/09/19(土) 23:12:18
>>279
俺Vistaと7でしか動かしていないけど、勝手にそれっぽい外観になるよ。
どうしてもうまくいかないなら、ここみたいに手動でしてみたらどう?
ttp://d.hatena.ne.jp/Yamaki/20061106/1162787221
0281デフォルトの名無しさん2009/09/19(土) 23:15:13
自分のWPFアプリはXP動作保証外って書いちゃったなあ
0282デフォルトの名無しさん2009/09/19(土) 23:17:51
>>280
違うデスクトップテーマを強制適用させると起動直後に死ぬらしい。
もう死ねばいい。
0283デフォルトの名無しさん2009/09/19(土) 23:44:12
VS2008SP1当ててないからか?
0284デフォルトの名無しさん2009/09/20(日) 09:19:52
テーマで思い出したけど、System.Windows 名前空間の MessaeBox が
クラシックになったり、Microsoft.Win32 名前空間の OpenFileDialog が
Vista 上で XP 風になるのが嫌だな。

仕方ないから System.Windows.Forms 名前空間のものを使用してるけど、
こういう標準ダイアログ系は Microsoft に頑張って欲しいな。
0285デフォルトの名無しさん2009/09/20(日) 21:56:11
WPF Themes 使うとか。
まあ、もちろんコモンダイアログ系は適応できないけどね。
0286デフォルトの名無しさん2009/09/20(日) 21:58:03
本来WPFの守備範囲外だからなあ
文句があるならWPFベースで自作しろってことなんだろう
0287デフォルトの名無しさん2009/09/20(日) 22:39:23
>>285
WPF Themesいいよね。
でも、添付されているテーマが20くらいあるけど、テーマによって適用できるのと適用できないものがあるからなぁ。
Rectangleが消えちゃったり、グルーピング表示させたときのグループヘッダーが消えちゃったりと。
まあそこんところは自分でXAMLを修正すればいいんだけど。
0288デフォルトの名無しさん2009/09/21(月) 10:23:26
パネル系とかから出し入れするとHeightが復活してくるのが面倒だ
0289デフォルトの名無しさん2009/09/21(月) 19:30:04
TextBlock 内の文字をリサイズに合わせて、
TextBlock いっぱいに表示したいのですが
どうすればよろしいでしょうか?
0290デフォルトの名無しさん2009/09/21(月) 19:31:31
Viewbox
0291デフォルトの名無しさん2009/09/21(月) 19:56:44
レイアウトの状態をまるまる保存して後で復元するため
WindowのContentをXamlWriterで書き出しました。
しかし、"{Binding Hoge}"のような所がBinding後の実際の値になって書き出されてました。
Binding構文を失わずに書き出す方法はありませんか?
0292デフォルトの名無しさん2009/09/22(火) 23:17:33
.Net Freamwork 4.0じゃRibbonは使えないの?
0293デフォルトの名無しさん2009/09/22(火) 23:33:11
>>292
俺試していないから.NETのバージョンは分からないけど、
WPFでもリボンが使えるようになっているみたい。
http://www.microsoft.com/japan/powerpro/TF/column/mo_08_3.mspx

こうやって別途ダウンロードさせるということは、.NET Framework本体に入れる気はないのかなと思う。
0294デフォルトの名無しさん2009/09/23(水) 00:08:33
>>293
落としてみたら3.5だった。
4.0用はないみたいだ
0295デフォルトの名無しさん2009/09/23(水) 04:26:44
Ribbonは使用条件が違うからね
0296デフォルトの名無しさん2009/09/25(金) 14:24:56
WPFの作法が良く分からない。

たとえばガントチャートコントロールみたいなのを作ろうとした時は
Controlのサブクラスを作成してそのOnRenderでDrawingContextから描画すれば良いの?
0297デフォルトの名無しさん2009/09/25(金) 14:48:31
アマゾンで入門本をいくつかかいなよ。
0298デフォルトの名無しさん2009/09/25(金) 16:43:48
いくつか本は立ち読みしたんだけど、完全オーナードローのカスタムコントロールについて記述されている本が見つからないんだよ。
逆にあったら教えて欲しい。

0299デフォルトの名無しさん2009/09/25(金) 17:13:59
立ち読みしないで買ってね。
0300デフォルトの名無しさん2009/09/26(土) 09:50:49
C#を排除したXAML専門のサイト無いんですか?
公式にもWPFフォーラムしかありません
0301デフォルトの名無しさん2009/09/26(土) 18:04:28
Canvas内にLineかRectで書けば?
0302デフォルトの名無しさん2009/09/26(土) 23:21:56
>>298
.NETのソースコード読めばいいじゃん
WPFは全部公開されてるよ
0303デフォルトの名無しさん2009/09/27(日) 11:31:10
>>320
マジデ?wどこで公開されてんの??
0304デフォルトの名無しさん2009/09/27(日) 11:40:14
VS2008(×Express)でステップインできる
もしくはttp://www.codeplex.com/NetMassDownloader/Wiki/View.aspxで落とす
0305デフォルトの名無しさん2009/09/27(日) 12:55:18
>>304のツール使えばExpressでもソースGetできるみたいだな
0306デフォルトの名無しさん2009/09/27(日) 13:12:25
ん?powershellで動くの?
0307デフォルトの名無しさん2009/09/27(日) 14:02:03
>>304&>>305
うおー、ちと興奮した。
ありがとう、早速ステップインしてくる!
0308デフォルトの名無しさん2009/09/27(日) 14:08:09
ステップインするための設定おしえて><
0309デフォルトの名無しさん2009/09/27(日) 15:03:58
ググれカス
0310デフォルトの名無しさん2009/09/27(日) 15:10:29
なんだよ.NETソース公開されていたんか。
いままでMonoのソースとか見て参考にしていたよ。

クラスファイルごとに1個ずつダウンロードされるから時間かかるなw
細かい話だがプライベート変数のプレフィックスとか統一されていないんだね。
0311デフォルトの名無しさん2009/09/27(日) 16:23:04
オフィシャルなNumericUpDownが欲しい
WPF Toolkitに入れるように誰か要望してくれないかなあ
0312デフォルトの名無しさん2009/09/27(日) 16:55:36
ttp://referencesource.microsoft.com/netframework.aspx
こんなのもある
0313デフォルトの名無しさん2009/09/27(日) 19:02:55
RadioButtonのVerticalContentAlignmentをBottomに設定しても、
Contentにあたる部分しかBottomにならず、◎の部分がTop固定のままで使いにくい

◎ Content




  Content
0314デフォルトの名無しさん2009/09/27(日) 19:50:01
RadioButton自体をBottomに配置するという考えは思い付かんか
0315デフォルトの名無しさん2009/09/27(日) 20:00:48
出来る出来ないの話ではありません
0316デフォルトの名無しさん2009/09/27(日) 20:35:25
Vertical"Content"AlignmentなんだからContent部分だけ配置が変わるのは当たり前だろう
0317デフォルトの名無しさん2009/09/27(日) 21:02:18
「使いにくい」という意見に大しての答えが↑
これがPG脳ですか。
0318デフォルトの名無しさん2009/09/27(日) 21:08:14
「使いにくい」という感想だけなら「ふーん」で終わる話なんだが
どうして欲しいか書いてないんだから、上のようなレス貰って文句言うのは筋違い。
0319デフォルトの名無しさん2009/09/27(日) 21:15:21
「Content」を理解していていればそれは自然な挙動だが、
それを理解していないからこの挙動を理解できないだけ。
0320デフォルトの名無しさん2009/09/27(日) 21:20:42
試しにボタンの位置が常にCenterになるようControlTemplate書いてみたら10行くらいで書けた。
WPFの柔軟性とXAMLは恐ろしい子だな。
0321デフォルトの名無しさん2009/09/27(日) 21:33:52
Contentを理解していることを前提に、Contentに◎が含まれない、つまり◎をContentとして扱っていないというのが不便ではないかと言っているのですが
0322訂正2009/09/27(日) 21:37:30
×扱っていない
◎扱えない
0323デフォルトの名無しさん2009/09/27(日) 21:47:49
俺は不便に感じない。
◎をContentとして扱いたければ、Contentが空のRadioButtonとTextBlockなりを
Gridとかで並べればいいだけだし。
0324デフォルトの名無しさん2009/09/27(日) 21:48:49
あ、StackPanelの方がいいかな。
0325デフォルトの名無しさん2009/09/27(日) 21:57:45
◎をContentとして扱いたくない状況が分からない
ずれてる方がクールとかあるんですか?
0326デフォルトの名無しさん2009/09/27(日) 21:59:20
もうどうでもよくなったかも知れんけど、ラジオボタンはスタイルをほぐせば二重丸の部分が別で考えられているのがわかるぞ

<ControlTemplate TargetType="{x:Type RadioButton}">
<BulletDecorator Background="Transparent">
<BulletDecorator.Bullet>
<Microsoft_Windows_Themes:BulletChrome Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" IsChecked="{TemplateBinding IsChecked}"
IsRound="true" RenderMouseOver="{TemplateBinding IsMouseOver}" RenderPressed="{TemplateBinding IsPressed}"/>
</BulletDecorator.Bullet>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True"/>
</BulletDecorator>
<ControlTemplate.Triggers>
***
</ControlTemplate.Triggers>
</ControlTemplate>
今となってはどうでもいいことかもねごめんね
0327デフォルトの名無しさん2009/09/28(月) 00:03:35
>>326
↑こういうのがPG脳と言って、開発現場では嫌われていますww
0328デフォルトの名無しさん2009/09/28(月) 01:04:26
>>327
Control templateの中身を確かめるくらいで嫌ってしまうような現場は、
そもそもWPFに手を出せないから心配しなくてもいい。
0329デフォルトの名無しさん2009/09/28(月) 01:41:02
>>328
激しく同意
0330デフォルトの名無しさん2009/09/28(月) 07:53:39
>>320
見た目の問題なら大概は XAML だけで片が付くね。
コードビハインド書いたら負け、みたいな感じ。
0331デフォルトの名無しさん2009/09/28(月) 10:38:04
確認だけどこの流れは>>326がマズイってことになってる?
0332デフォルトの名無しさん2009/09/28(月) 11:21:59
>>327>>331の頭の中がマズイことなってるって流れ。
0333デフォルトの名無しさん2009/09/28(月) 14:58:00
>>304のツールでちゃんとソース落とせる?
netmassdownloader -d C:\Windows\Microsoft.NET\Framework64\v3.5 -output E:\ReferenceSource
てな感じでやっても見つからんみたいで落とせん。
0334デフォルトの名無しさん2009/09/28(月) 16:03:27
C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v3.5\Profile\Client
を指定したら全部じゃないけどダウンロードできたわ
ただ単にMSのサーバーに残ってなかっただけか。失礼
0335デフォルトの名無しさん2009/09/29(火) 21:27:39
    〃〃∩  _, ,_
     ⊂⌒( `Д´) < ヤダヤダ!RadioButtonが俺の思った通りの仕様じゃないのは嫌だ!
       `ヽ_つ ⊂ノ

      _, ,_
     (`Д´ ∩ < ヤダヤダ!反論なんて嫌だ!反論する奴は全員PG脳だ!
     ⊂   (    俺の思った通りじゃないのは嫌だ!
       ヽ∩ つ  ジタバタ
         〃〃

       ∩ ∧ ∧
     ⊂⌒(  _, ,_)
       `ヽ_つ ⊂ノ  グスッ・・・

             (ヨ
    〃〃∩  _, ,_ ノノ キィィィ ヤダヤダヤダヤダヤダヤダ!! PG脳は
     ⊂⌒(#`Д´)illi   < ヤダヤダヤダヤダヤダヤダ!! 現場で嫌われる!!
       `ヽ_つ⌒ヽ(ヨ) (     ヤダヤダヤダヤダヤダヤダ!! 嫌われる!!嫌われる!!
            ⌒Y⌒ ドンドン
0336デフォルトの名無しさん2009/09/29(火) 21:58:47
コントロールの位置合わせにPanelとか色々あるけど結局Gridだらけになった
0337デフォルトの名無しさん2009/09/29(火) 22:00:16
Gridは万能だということらしいからな。
0338デフォルトの名無しさん2009/09/29(火) 22:04:40
StackPanelは使うだろ
0339デフォルトの名無しさん2009/09/29(火) 22:17:20
GridのRowとかColumnが超便利だということに最近気づいた
0340デフォルトの名無しさん2009/09/29(火) 22:18:16
おせーよw
0341デフォルトの名無しさん2009/09/29(火) 23:44:36
>>338
Gridに置き換わった
0342デフォルトの名無しさん2009/09/30(水) 09:53:05
>>341
???
0343デフォルトの名無しさん2009/09/30(水) 12:52:30
StackPanel、使い方次第で凄い面白いよ
0344デフォルトの名無しさん2009/09/30(水) 12:55:19
>>343
マウスが来るとでかくなるMac見たいなUI見たときちょっと「おっ」っておもった
0345デフォルトの名無しさん2009/09/30(水) 12:58:36
>>344
うんうん、まさにそういう使い方をしておるよ
無名なTwitterクライアントだがね
0346デフォルトの名無しさん2009/10/02(金) 14:11:00
WPFで作ったTwitterクライアントあんのか
ちょっと欲しいぜ

自分で作るのはめんどい
0347デフォルトの名無しさん2009/10/02(金) 17:15:16
>>346
結構沢山あるよ。
国産のは実験で作ってる系の軽めなのが多い。
海外製のはいかにもWPFって感じにかなり多機能(悪く言えばゴテゴテ)なのが幾つか。
0348デフォルトの名無しさん2009/10/02(金) 18:02:53
<TextBlock>あい</TextBlock>

「あ」だけ色を変えたいのですが、

<TextBlock 赤>あ</TextBlock><TextBlock 青>い</TextBlock>

みたいに独立させなきゃいけないのでしょうか
0349デフォルトの名無しさん2009/10/02(金) 18:05:23
TextBlockなら中にSpanとか使える
0350デフォルトの名無しさん2009/10/02(金) 19:44:53
Spanって便利そうですね
ありがとうございます
0351デフォルトの名無しさん2009/10/03(土) 18:59:55
DPIで表示の大きさ変わるのってどうなんだろ
良いことなのかよくわからない
0352デフォルトの名無しさん2009/10/03(土) 23:33:20
携帯とか dpi が明らかに違うだろ
そういう場合でも絶対サイズ(2cmとか)で表示できるのは
いいことじゃないの?
0353デフォルトの名無しさん2009/10/03(土) 23:57:15
wpfはdpiを96と規定してるんだっけ。
じゃあそれだとモニタによって絶対サイズ変わっちゃうよね。
俺のモニタは約86dpiだから見た目はちょっと大きくなっちゃうはず。
0354デフォルトの名無しさん2009/10/04(日) 00:26:25
モニタによってサイズを変えたくないからこその96固定だろう?
0355デフォルトの名無しさん2009/10/04(日) 00:37:16
>>353
その86dpiのモニタを使っていても、どうせWindowsのDPIの設定は96なんだろ。
だから、お前のPCでWPFアプリだけ少し大きく描画されるなんてことにはならない。
0356デフォルトの名無しさん2009/10/04(日) 01:23:18
画像ぼやける
03573532009/10/04(日) 13:31:41
うーん、わからん。
例えば12ptのフォントを表示させたとして、WinのDPIは96だから
(12 / 72) * 96 = 16pxの大きさで表示される。
んで、俺のモニタは86dpiだから 16 / 86 ≒ 0.186in
モニタによってドットピッチはさまざまだから、絶対的な大きさは変わってしまう。

それとも、そういうことじゃなくて12ptは必ず16pxの長さになる(Windows上では)ってことが狙いなの?
サイズを変えたくないってのはピクセル単位の話なのか
0358デフォルトの名無しさん2009/10/04(日) 14:04:16
物理的な大きさ云々と言うより、
GDI使うアプリでは、WindowsのDPIの設定を標準の96から変更すると描画が崩れるものが多かったから、
WPFアプリでは何も考えず96 DPIのつもりで取り扱えるようにしようという程度のことだと考えておけばいいと思う。
0359デフォルトの名無しさん2009/10/04(日) 14:29:06
>>357
正反対。絶対サイズでいえば 12pt / 72 = 0.166in で計算は終わり。これがWPFでのサイズ。
px換算だと、(12/72) * 86 = 14.33px(ハードウェアピクセル)
デバイス非依存ピクセル(DIP)では、 (12/72) * 96 = 16DIP。これは絶対的なサイズ。

公式に書いてあるんだから読んで。

http://msdn.microsoft.com/ja-jp/library/ms744952(VS.80).aspx

Windows Presentation Foundation と Windows フォームのレイアウトの違い
WPF は、解像度に依存しないレイアウトを使用します。
すべての WPF レイアウトのサイズは、デバイス非依存ピクセルを使用して指定されます。
デバイス非依存ピクセルのサイズは 1/96 インチで、解像度に依存しないため、
出力先が 72 dpi モニタであっても 19,200 dpi プリンタであっても、同様の結果を得ることができます。

出力デバイスが 96 dpi で、WindowsFormsHost 要素にスケーリングが適用されていない場合、
1 デバイス非依存ピクセルは 1 ハードウェア ピクセルと等しくなります。
0360デフォルトの名無しさん2009/10/04(日) 20:10:02
拡大して同じだけ場所とるならユーザーからしたら何のために解像度大きくしたか分からんよな
03613532009/10/04(日) 21:58:21
>>359
>出力先が 72 dpi モニタであっても 19,200 dpi プリンタであっても、同様の結果を得ることができます。

これはつまり定規で測れば同じ大きさを示すってこと?
Windowsはこちらが教えなくても出力先のモニタやプリンタのDPI値を知ってるのか。
0362デフォルトの名無しさん2009/10/04(日) 22:05:31
モニタやプリンタが教えてくれるだろ。
0363デフォルトの名無しさん2009/10/04(日) 22:39:27
今度、Blend 2でWpfControlLibraryからコントロールを作ろうと思うんだけど
Expanderのように内部にグリッドを持つことができるようなコントロールを作るためにはどんな技術が必要になるのか教えてほしい

結構頑張っているものの一向にうまくいく気配がないorz

何かそのような名称でもいいんで情報がほしい
0364デフォルトの名無しさん2009/10/04(日) 22:46:00
ContentControlから派生する。
ControlTemplateには必ずContentPresenter要素を含める。
すると,XAMLでダイレクトコンテンツとして指定した要素が自動的にその場所に表示される。
0365デフォルトの名無しさん2009/10/04(日) 23:03:55
>>364
ありがとう!
まだうまく再現出来ていないけどなんとかしてみる!b
0366デフォルトの名無しさん2009/10/04(日) 23:14:39
>>363
Blend だけでやろうとしてない?
Visual Studio を使わないと新しいロジックやプロパティを持ったコントロールを作成するのは無理だと思う。

単に外見やアニメーションを変更したいだけなら、コントロールを作成するんじゃなくて、
スタイルを使って、コントロールのテンプレートを置き換えるだけで済むんだけど。
0367デフォルトの名無しさん2009/10/04(日) 23:49:53
一応VS2008Pro,C#+Blend 2で頑張ってます。
簡単なプロパティ作ってDependencyPropertyうんぬんはできているので、あとはそのContentPresenterぐらいかなと考えてます

いまだ苦戦してるけど近づいた感じもする
0368デフォルトの名無しさん2009/10/04(日) 23:54:09
カスタムコントロール作るのって結構難しいよ
何も考えずに作るとテンプレートに対する制約が増えすぎて
テンプレートを差し替えられないない使い物にならないコントロールができる
0369デフォルトの名無しさん2009/10/05(月) 00:14:51
元のコンポーネントを拡張するだけなら簡単じゃない?
0370デフォルトの名無しさん2009/10/05(月) 00:14:53
staticpanelを使うのがまずいのか、簡単に上から「ボタン、テキスト、ContentPresenter」ときているのに
コントロールにコンテンツを突っ込むとボタン、テキストが消えて追加したコントロールのみになるw

Contentpresenterを使うコントロールの作成は前にもどこかで見て訓練したんだけど、まったく覚えていない・・・。
なにか星の形のボタン作って、Contentプロパティはこいつをつかうんだぜ!みたいなことで説明していたとおもうんだけど、
そんなことだけ覚えていて、感じの記述を覚えてない。

理想では自由自在にカスタムコントロールさえ作れれば、ExpanderをもっとWPFらしいコントロールが作れれるなぁといった安易な発想なんだけど、
保守に疲れてしまうならいっそのことテンプレートで作ったほうがいいのかな・・・

でもやっぱ自作コントロールでDLL配布できればかっこいいねっ!




作れればかっこいいね・・・。
0371デフォルトの名無しさん2009/10/05(月) 10:15:36
なんとか理想の動きをするようになったので報告

ContentControlから派生するということだったのでそのままContentControlを<ContentControl>***</ContentControl>としていたのですが、
この部分をStackPanelに変えることでカスタムコントロールにコンテナとしての機能を取り付けることに成功。

<StackPanel>
****略****
<Grid x:Name="LayoutRoot">
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" >
<TextBlock Text="{Binding Path=textcontent, ElementName=UserControl, Mode=Default}" TextWrapping="Wrap"/>
<Button Content="Button"/>
</StackPanel>
</Grid>
</StackPanel>

<Window x:Class="WpfApplication1.Window1" Title="Window1" Height="300" Width="300">
<Grid>
<temp:UserControl1 textcontent="unko">
<Button Content="うんこ" />
</temp:UserControl1>
</Grid>
</Window>
0372デフォルトの名無しさん2009/10/05(月) 19:06:09
ObservableCollection<T>とBindingList<T>の使い分けって、
シンプルかつ自分で拡張の前者、多機能な後者という認識でいいんでしょうか?

並び替え等を行わないので前者でいこうかと思うのですが、注意点があればお願いします。
0373デフォルトの名無しさん2009/10/06(火) 15:30:21
<TextBlock Text="{Binding Duration,StringFormat=hh:mm:ss}"></TextBlock>

TimeSpan をバインディングしたんだけど、StringFormat が有効にならない。
使い方間違ってる、俺?
0374デフォルトの名無しさん2009/10/06(火) 16:14:07
TimeSpanはIFormattableじゃないからなぁ
0375デフォルトの名無しさん2009/10/06(火) 16:33:46
Bindingの書き方はいまだに理解してない。
StringFormat=T
でやってみて?
03763752009/10/06(火) 16:34:52
ごめん無視して。
0377デフォルトの名無しさん2009/10/06(火) 16:54:47
まあ、Converter使えってことだな
03783732009/10/06(火) 17:05:05
はやいレスありがとう。
ヘルプ見てみたら DateTime は IFormattable だけど、
TimeSpan は違うんだね。勉強になりました。
0379デフォルトの名無しさん2009/10/06(火) 17:36:29
<Hyperlink Name="hyperlink1">Hello</Hyperlink>
このHelloをコードビハインドで取得するにはどうすればいいですか?

<Hyperlink Name="hyperlink1"><TextBlock Name="textBlock1">Hello</TextBlock></Hyperlink>
これでtextBlock1.Textから取得できましたがTextBlockを省きたいです
0380デフォルトの名無しさん2009/10/06(火) 17:38:40
実際はこのようになっています
<TextBlock><Hyperlink Name="hyperlink1"><TextBlock Name="textBlock1">Hello</TextBlock></Hyperlink> WPF!</TextBlock>
0381デフォルトの名無しさん2009/10/06(火) 17:46:36
HyperlinkのInlinesの中にRunが入ってるからそのTextを見る
0382デフォルトの名無しさん2009/10/06(火) 18:14:54
難しいので諦めます
ありがとうございました
0383デフォルトの名無しさん2009/10/06(火) 22:15:38
120dpiでFrameの中のPageのギリギリ端にBorderなどで枠を表示させると両サイドだけ切れる
96dpiだと切れない
何故このような差があるの?
0384デフォルトの名無しさん2009/10/07(水) 00:44:24
たまたまじゃないかな?
作画するときスムーズに見せる機能(フォントとかに使われている奴)が効いてるため見た目でちょっとした誤差がでる
0385デフォルトの名無しさん2009/10/08(木) 23:32:56
今ちょっとD&Dの勉強してるんだけども
Thumbの外見をビハインドで変えるにはどうしたらいいですか?
Adornerはめんどくさいんであまり使いたくないのです

やりたいことは右ペインにサムネ一覧出して、そこからD&Dで中央ペインの特定の場所に貼り付けたい
その場所の当たり付けるのに半透明にしたサムネをドラッグしたいのです
サムネ自体はVisualBrush付けたRectangleで、生の画像ではありません

よろしくお願いします
0386デフォルトの名無しさん2009/10/09(金) 15:54:42
XAMLで定義したResourceDictionaryをC#側から触るにはどうしたらいいんだ?
0387デフォルトの名無しさん2009/10/09(金) 16:29:04
Application.Current.Resourcesじゃだめだっけ?
0388デフォルトの名無しさん2009/10/09(金) 18:05:21
>>387
やってみたけど中身0だった
別にエラーは出てないんだよなあ
0389デフォルトの名無しさん2009/10/09(金) 20:21:11
>>387
そんなはずは・・
AppクラスのXAMLに定義したresourceなら
Appクラスのoverride protected OnStartupで
object o = this.Resources["key"];とする。
WindowクラスのXAMLに定義したresourceなら
コンストラクタのInitializeComponent();のあとに
object o = this.Resources["key"];
これで確認できるはずだよ。
0390デフォルトの名無しさん2009/10/09(金) 20:56:26
VistaからはPresentationFont.exeみたいな名前のプロセスがデフォで起動時に立ち上がるのでしょうか?
XPだと初めのWPFアプリが起動されないと開始されません
0391デフォルトの名無しさん2009/10/10(土) 00:43:49
>>389
・・・あーいや
追加→リソースディクショナリで別ファイルになってる奴なんだ
だからか?>中身空
0392デフォルトの名無しさん2009/10/10(土) 01:19:17
>>391
あーそうか。MergedDictionariesでResourceを追加してるわけね。
なら、
該当するDictionaryがMergedDictionariesの0番目に追加されてるとして
object o = this.Resources.MergedDictionaries[0]["key"];
これで取得できるはず。
DictionaryをMergeしても直接コレクションアイテムが、Merge先のDictionary(この場合this.Resources)に
一個一個追加されるわけじゃない。
0393デフォルトの名無しさん2009/10/10(土) 06:42:39
>>390
.NET Framework 3.0以上の入った環境では、
Windows Presentation Foundation Font Cacheというサービスがある。
そのプロセスの正体はこれだろう。

お前のVistaパソコンで起動時にこれが立ち上がるのは、
このサービスがスタートアップ: 自動になっているか、
PC起動時に実行されるアプリの中にWPFアプリが存在するかのどっちかだと思う。
0394デフォルトの名無しさん2009/10/10(土) 19:01:52
>>392
うーん
それでもResources.MergedDictionariesのCountが0なんだ
これはもしかしたら、そもそもリソースの書き方に問題あるかも知れない
ちょっと適当なコントロールにくっつけて有効かどうか試してみる
0395デフォルトの名無しさん2009/10/10(土) 22:59:00
最近LAN接続のとある計測器の計測結果/経過をリアルタイムに表示するソフトをWPFを用いて作っています。
ソフトウェアの役割は
1.機器に対して1ms程度間隔でとあるデータを送信する。
2.1ms程度間隔で機器からデータを取得する。
3.2のデータをユーザーに向けて表示する。

参考までに申し上げますと、
開発対象はあくまで計測機器であり、ソフトウェアは単なる治具でありWPFを使っているのはあくまで趣味的な問題で
WPF的にスマートなやり方で実装したいな、と思っております。

1,2の機能はUIスレッドとは別スレッドとして1msスリープで定期的に動いています。
1のスレッドをthreadT
2のスレッドをthreadR
とします。
そしてUIスレッドを含めたすべてのスレッドがあるオブジェクト(ObjA)のプロパティの読み書きを行います。
ObjAは表示用の各UIElemntのDataContextとして設定してあり、ObjAのプロパティはすべてDependencyPropertyとなっております。
ObjAの所有スレッドはUIスレッドであるため、threadT,threadRはプロパティを読み書きする場合には、Invoke,BeginInvokeを用いてアクセスします。
03963952009/10/10(土) 23:00:19
作ってみて気づいたのですが、結構遅いのです。
まず、threadTがObjAから取得する際にInvokeにてGetValueしておりそこでUIスレッドの都合によって待たされる。
threadRからのObjAプロパティに対する書き込みは、BeginInvokeにで非同期で書きこむため、そうでもないのかな、と思ってはいます。
厳密に計測しては無いですが。

で、今回の問題点は上に書いたとおり
・threadTから送信されるデータが遅い、それは、ObjAからいちいちInvoke(GetValue())で取得しているから、だと思われる。
というところです。

これを解決するには、
・わざわざDependencyPropertyなど使わずに通常Propertyを用いて、バインディングさせておいて、
表示を更新したい場合にINotifyPropertyChangedを通じて通知する。
・表示用途のバインディング対象とは別に高速で原始的なオブジェクトをthreadRが参照するようにして
表示させたいタイミング(たとえば60fps程度)でUIにバインディングされているオブジェクトを更新する。

などというやり方も考えられるかと思うのですが、WPF的なフレームワーク(主にDependencyPropertyとバインディング)を用いて実装したいなと思っており、
他に粋で効率の良い方法はないかなと思い書き込ませていただきました。

皆さんは大量である程度リアルタイム性の必要なデータをUIにバインディングする際などはどのようなやり方で実現されているのでしょうか?
よろしくお願いします。
0397デフォルトの名無しさん2009/10/10(土) 23:31:36
マルチスレッドの設計がひどすぎる上に
その周期でC#/WPFを選択している時点で論外だと思うが

まぁ、好きでやっているなら好きにやれ
0398デフォルトの名無しさん2009/10/10(土) 23:39:03
バインディングなんていうのは「枠にはまれば便利」なものであってだな
そんな特殊な用途をいちいち想定して作ってるわけがないだろ
0399デフォルトの名無しさん2009/10/11(日) 00:37:49
WPF以前の問題として
1msのsleepってWindowsでは実現できないじゃなかったかな?
Sleep(1)としても、実際はどうしても15msほどSleepしてしまうと私は記憶しているが。

>1,2の機能はUIスレッドとは別スレッドとして1msスリープで定期的に動いています。
これは本当に実現できているのかまず確認してみては?
0400デフォルトの名無しさん2009/10/11(日) 01:07:32
1msじゃまわらないね。
俺も15msくらいという記述を昔に見たことがあるが、今探してもないな。
Forms.Timerが55ミリ秒とはかいてあるが。
0401デフォルトの名無しさん2009/10/11(日) 01:35:49
timeBeginPeriod(1)からtimeEndPeriod(1)するまでの間は、Sleepも精度が上がるから、
一応1ミリ秒のスリープも実現不可能ではないはず。
もっとも、それやったところで、396の問題解決には程遠いだろうけど。
0402デフォルトの名無しさん2009/10/11(日) 02:12:27
StopWatchが結構な精度持ってなかったっけ?
でもそもそもWindowsのコンテクストスイッチ間隔が20msとかそんなんだから、
デバイスからの割り込みなくてポーリングで1msの分解能を得ることは無理だな
タイマ割り込み使うなら.NETでコーディングは出来んし
0403デフォルトの名無しさん2009/10/11(日) 06:46:56
コマンドレスポンスだけの計測を送受信別スレッドにしている時点でもうだめ
0404デフォルトの名無しさん2009/10/11(日) 09:33:31
流石にコマンドレスポンスのテストじゃないと思うが
0405デフォルトの名無しさん2009/10/11(日) 09:43:24
レスポンスタイムではなくプロトコルの話だと思う
0406デフォルトの名無しさん2009/10/11(日) 09:49:08
自作アプリを GPL v2 で公開しようと思ってます。
そのソフトのなかで、マイクロソフトの M-V-VM
サンプルについている DelegateCommand と
ViewModelBase を使用しています。

GPL とリンクするモジュールは GPL でないと
まずいと思っています。

そこで、GPL または 修瑞ウBSD ライセンャXな、
DelegateCommand と ViewModelBase は
どこかにないでしょうか?

0407デフォルトの名無しさん2009/10/11(日) 10:49:37
Ms-PLにしろ
感染性はあるけど遥かに利用しやすい
0408デフォルトの名無しさん2009/10/11(日) 11:25:05
MS製mscorlib他を使う限りはGPLは適用できないような気がするんだが……
0409デフォルトの名無しさん2009/10/11(日) 11:34:16
OSの一部みたいなもんだから例外条項適用ってことでいいんじゃない?
再配布パッケージを付けたりしたら違反になると思う
0410デフォルトの名無しさん2009/10/11(日) 16:16:42
TextBlockの自動リサイズってVisualBrush以外の選択肢はないのだろうか
遅いと書いてはあったけどここまで遅いとは
0411デフォルトの名無しさん2009/10/11(日) 17:03:55
.NETでGPLなんか使い物にならないだろ
>>406と同じ悩みを利用者みんなが抱えることになるんだから

>>410
サイズを明示的に指定せずにStackPanelなどに入れとけば勝手にリサイズしてくれると思うけど
どこからVisualBrushが出てくるのかわからない
04124062009/10/11(日) 20:08:26
Ms-PL ってソース非公開で商用利用可能でしょ?
自分のコードがソース非公開で商用利用されるのはいやなので
(自意識過剰とは言わないで)、GPL にしたかったんだけど・・・。

Ms-PL には感染性があるんで、この「このプロジェクトは絶対に
オープンソースで」というと、オブジェクト形式での配布を認める
Ms-PL に抵触してると解釈される?
それとも、ソースを公開・非公開にするかについて規定のない

0413デフォルトの名無しさん2009/10/11(日) 20:09:43
(途中での書き込みすまん)

ソースを公開・非公開にするかについて規定がないから
抵触しないとみなせるの?

その辺がわからないんだよー。
0414デフォルトの名無しさん2009/10/11(日) 20:17:17
ライセンススレでやれ
0415デフォルトの名無しさん2009/10/11(日) 23:23:24
>>411
今ちょっとAA管理プログラム作ってて、大きさバラバラなTextBlockを一律64x64のサムネイル表示させてるのよ
いちいちスケール計算するのもなんだからVisualBrush
でもこれだと場合によっては表示されるまで10秒くらいかかる
コレクションバインドだと順次出すことも大変みたいだし困ってる
0416デフォルトの名無しさん2009/10/11(日) 23:34:36
じゃあRenderTargetBitmapでキャッシュ
WPFだからこそVisualBrushみたいな便利なものが使えるけど
一般的にはそういうアプローチを採るのが普通じゃないの
0417デフォルトの名無しさん2009/10/12(月) 01:21:20
>>416
やっぱそうか
GPU支援に期待し杉たかね
0418デフォルトの名無しさん2009/10/12(月) 12:30:22
いやGPU支援以前にVisualBrushがTextBlockを更新させてるせいだと思う
0419デフォルトの名無しさん2009/10/12(月) 20:21:36
WPFの最新開発環境整えるのにいくらかかるんだ?
0420デフォルトの名無しさん2009/10/12(月) 20:33:41
「最新の」なら0円だろ
「最高の」なら話は別だが
0421デフォルトの名無しさん2009/10/13(火) 10:04:40
コントロールを描画するのに必要なパラメータとして、依存関係プロパティ A,B,C があります。
A,B,Cの内どれかが変更されたら、それを元にコントロールの内容も更新に反映させたいのですが
A だけ変わってB,Cはそのままの場合や、A,B,C全部が変更される場合もあります。
更新回数を最低限にしたいのですが、こういう場合、描画のトリガーとしてどういう方法を用いるのが
理に適っているんでしょうか?
0422デフォルトの名無しさん2009/10/13(火) 14:32:18
必要なときにUpdateメソッドでも自力で呼んでやるのがいいんじゃね?
0423デフォルトの名無しさん2009/10/13(火) 16:18:41
普通に描画を無効にすれば、適当なタイミングで勝手に再描画してくれるでしょ
04243532009/10/13(火) 17:32:42
アプリ起動時には無い、あとから動的に追加した要素のアニメーションをXAMLで記述することってできますか?
やはりコードで記述するしかないんでしょうか。方法あればヒントだけでもいいので教えてください
0425デフォルトの名無しさん2009/10/13(火) 17:33:46
レス番消すの忘れてた恥ずかしい
0426デフォルトの名無しさん2009/10/13(火) 17:43:36
リソースとして記述しとくぐらいはできると思うが
0427デフォルトの名無しさん2009/10/13(火) 18:15:02
うろ覚えでXAMLReaderとかなんとか言うのを見た気がする
XAMLファイル生成して後から読むとか出来るかも知れない
0428デフォルトの名無しさん2009/10/13(火) 20:20:38
ファイル生成しなくてもXamlReaderならStringから直接読める
でも動的に生成したXAMLを読むとかでなければリソースに書いとくのがベター
0429デフォルトの名無しさん2009/10/13(火) 20:29:06
なるほど、通常はリソースで、
生成したXAMLを読み込む場合はXamlReaderですね。どうも
0430デフォルトの名無しさん2009/10/13(火) 21:48:14
プログラムのスキンをXAMLで書かせるってのはあり?
0431デフォルトの名無しさん2009/10/14(水) 20:42:59
スキンの作成者に.NETやWPFについての知識を要求してもいいなら。
VS2010はXAMLでカスタマイズできるみたいだけど,そもそも開発者のためのツールだから話が別。
0432デフォルトの名無しさん2009/10/14(水) 22:41:52
新しいスキン、ニュースキン
0433デフォルトの名無しさん2009/10/14(水) 22:46:26
不親切だよね
0434デフォルトの名無しさん2009/10/14(水) 23:24:54
叩き台のXAMLを用意しとけば画像変えたりボタンの位置やサイズ変えたりくらいは
開発者でなくてもできるだろうけど,もっと弄りたかったら自分でMSDN読めというのはちょっとなあ
0435デフォルトの名無しさん2009/10/15(木) 02:49:23
どこまで自由度の高いスキンにするかに依存すると思う。

画像変えたりボタンちょろっと弄ったりする程度ならXAMLを弄らせる必要はないけど
もっと弄って根本からUI変更したいならXAML弄らせるのが一番だろう。
どこまでやるかによるけど、専用のUIマークアップ言語用意するのって結構手間かかるからねぇ
0436デフォルトの名無しさん2009/10/15(木) 10:05:45
つWPF Themes
0437デフォルトの名無しさん2009/10/15(木) 13:02:08
RichTextBoxでMS Pゴシック指定しても等幅表示されてるぽいのはなんでだ?
0438デフォルトの名無しさん2009/10/17(土) 18:08:27
むしろいまだに等幅がデフォじゃないのにイラつく
0439デフォルトの名無しさん2009/10/17(土) 18:32:43
普通のTextBoxならまだしもRichTextBoxで等幅がデフォルトとかないわー
0440デフォルトの名無しさん2009/10/17(土) 20:26:10
HTMLリファレンスみたなXAMLリファレンス本ってないかなあ
0441デフォルトの名無しさん2009/10/17(土) 20:58:00
網羅したらとんでもない厚さになるぞ
MSDNで引いたほうが早い
0442デフォルトの名無しさん2009/10/17(土) 21:34:10
Bindingとコントロール作成の概要をみっちり抑えた本を出してほしい。
じゃないと作って動いてくれても不安たっぷりものしかできない
0443デフォルトの名無しさん2009/10/17(土) 21:40:06
Bindingの書き方変わるとか変わらないとか
0444デフォルトの名無しさん2009/10/17(土) 21:41:53
まずBlendに自動コード補助っていうのか、Visual Stadioについてるコード補助を付けてくれたらもっとましになる気がする。
あとBlendのエディタもVSと同じように見やすくしてほs・・・

ここでいうことじゃないか
0445デフォルトの名無しさん2009/10/17(土) 21:43:37
Blend3のコードエディタはIntelisence効いてた気がする
0446デフォルトの名無しさん2009/10/17(土) 21:47:44
VS2008だとバインディングの記述とか補完してくれないから不便だな
0447デフォルトの名無しさん2009/10/17(土) 22:51:06
コードビハインドでnullチェックしなきゃいけないのがうざい
0448デフォルトの名無しさん2009/10/18(日) 19:23:42
>>445
マイクロソフトのサイトを読むとBlendのインテリセンスはC#とVBだけで
C++は機能しないみたいな書き方なんだよね。どう思う?

>XAML、C#、VB に対応した Intellisense を実装したコードエディタを搭載しているため、
>Expression Blend 内で直接コード編集をすることが可能です。
http://www.microsoft.com/japan/products/expression/products/blend_overview.aspx

VS2010にしても、開発担当者が「マイクロソフトは今後もVC++を重視する」みたいな発言を
わざわざしているところからして、どうもVC++の雲行きが怪しいんだよね。
まぁ、C++はもう終わりかな。
0449デフォルトの名無しさん2009/10/18(日) 19:41:23
C++はネイティブコードに力を入れるらしいよ
もともとC++/CLIってネイティブコードと.NETの相互運用のためだけに作られた言語であって
WPFなんか使えたって意味がない
0450デフォルトの名無しさん2009/10/18(日) 21:31:50
WPF+CPPとか使ってる奴いないと思う
てか、もとからBlendはVB、C#(SLはJavaScript)のみだ
0451デフォルトの名無しさん2009/10/18(日) 23:14:47
WPFをC++/CLIで使ってる奴なんて居ないだろw
0452デフォルトの名無しさん2009/10/18(日) 23:17:46
つまり、マイクロソフトがWindows GUIのスタンダードとしてWPFを採用することになると
ますますVC++は使い物にならなくなっていくってことだな?
.NETへの傾倒が強まれば必然的にVC++はあの世行きか。
0453デフォルトの名無しさん2009/10/18(日) 23:19:00
>>452
何年か前に見た夢だな。
現実になればいいが。
0454デフォルトの名無しさん2009/10/18(日) 23:23:40
>>452
そこはまあ上手く役割分担していくんだろう
C#もVBも高速化していったら終わりだが
0455デフォルトの名無しさん2009/10/19(月) 00:38:46
ここに1人いるぞ、WPF + C++/CLI。
いやまあ、HwndHostとかD3DImageとかの部分に使ったことがあるだけで、WPF部分はほとんどXAML/C#だけどね。
0456デフォルトの名無しさん2009/10/19(月) 00:51:33
.NETじゃサービスとかデバイスドライバとか書けないんだからC++が死滅するとかアリエナーイ
0457デフォルトの名無しさん2009/10/19(月) 01:08:24
Windowsサービスなら書けるが、どのサービスのことだ?
0458デフォルトの名無しさん2009/10/19(月) 01:08:40
どの種類のXAMLファイルでも分離コードは使えますか?たとえばResourceDictionaryのXAMLファイルとか。
というのもプロパティに値を代入するのにバインディングを使うのが面倒なのでそこだけコードでやりたいのです。
0459デフォルトの名無しさん2009/10/19(月) 08:49:16
依存プロパティはどう見ても設計ミス。
0460デフォルトの名無しさん2009/10/19(月) 10:07:47
>>456
http://www.xlsoft.com/jp/products/windriver/support/tech_docs/td128.html
0461デフォルトの名無しさん2009/10/19(月) 15:10:40
で結局WPFは実アプリでの使用に足るパフォーマンスのでる汎用的なプラットフォームになったのかね?
未だに向き不向きとかある?
0462デフォルトの名無しさん2009/10/19(月) 16:35:35
ブラウザアプリケーションはWPFのXBAPは衰退してシルバーライト使ってくださいにかわっていくと思う
0463デフォルトの名無しさん2009/10/19(月) 16:46:51
既にそうなってるよな。
0464デフォルトの名無しさん2009/10/19(月) 18:43:32
むしろ設計ミスは依存プロパティのようなニーズを想定できなかったCLRやC#の方だろ
0465デフォルトの名無しさん2009/10/19(月) 21:45:28
XAMLの要素のプロパティ名を設定したポリシーに従って並び替えてくれる機能ありませんか?
0466デフォルトの名無しさん2009/10/19(月) 21:52:32
自作
XMLだから簡単だろ
04674582009/10/19(月) 22:01:35
hoge.xamlに対し、hoge.xaml.csファイルを用意して、
hoge.xamlのルート要素にx:Class="testApp.hoge"のようにhoge.xaml.cs中のクラスを指定。
hoge.xaml.cs中のクラスはpartialにしてコンストラクタにInitializeComponent();を追加すれば
うまくいきました。hoge.xaml.g.csはどのタイミングでかはわかりませんがVSが自動で作成してくれます。
0468デフォルトの名無しさん2009/10/20(火) 11:35:32
Toolbar 内に
<button Command="{Binding XXXCommand}">
 <Image />
</button>
みたいな感じでボタンを作りました。
CanExecute()==false のとき、クリック不可に
なるんですが、あわせてグレイアウト(もしくは
半透明に)したいんですが、どうすれば
よいでしょうか?
0469デフォルトの名無しさん2009/10/20(火) 12:11:19
デフォルトで白くなるはずだけど
それじゃダメってことならTemplateいじることになる
0470デフォルトの名無しさん2009/10/20(火) 14:24:38
白くなんのはIsEnableでね?
とうろ覚えてみる
0471デフォルトの名無しさん2009/10/20(火) 14:34:18
IsEnabledでも画像は変わらない
0472デフォルトの名無しさん2009/10/20(火) 15:07:17
そうか、画像か
Buttonの子はGridにして、そのGridの中にImageとRectangleを配置
でRectangleのFillは#9fffとかそんなのにして
Rectangle.StyleのTriggersにDataTriggerでButton.IsEnabledの変化時にRectangle.Visiblityを設定
とかどう?
ちなみにCanExecuteがfalse返すときはIsEnabledもfalseになるよ
0473デフォルトの名無しさん2009/10/20(火) 15:44:41
「WPFの文字表示はWindows標準のClearTypeから更に進化して、
横方向にはサブピクセルの、縦方向にはグレースケールのアンチエイリアスがかかる!」
というのがさかんに宣伝されてますが、実際表示させてみると(少なくともメイリオは)
縦方向のアンチエイリアスがかかってないような気がします。
http://uproda11.2ch-library.com/206376sm7/11206376.png

こういうものなんでしょうか?
0474デフォルトの名無しさん2009/10/20(火) 15:53:16
>>472
そこまでするならテンプレートでVSM使った方がいい
0475デフォルトの名無しさん2009/10/20(火) 17:59:37
>>473
今んとこそう言うもの
ぶっちゃけバグつか未実装部分
0476デフォルトの名無しさん2009/10/20(火) 23:11:53
>>473
メイリオの特性。Y軸アンチエイリアスは実装されているよ。
MSゴシックあたりで試すといい。
0477デフォルトの名無しさん2009/10/21(水) 17:55:38
ダウンロードの詳細 : Visual Studio International Feature Pack 2.0
ttp://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=7d1df9ce-4aee-467f-996e-bec826c5daa2
0478デフォルトの名無しさん2009/10/22(木) 00:14:17
単一のResourceDictionaryオブジェクトを、複数のリソースにMergedDictionariesしても大丈夫なんですか?
一応問題なく動いているようなんですが・・・
0479デフォルトの名無しさん2009/10/22(木) 00:40:51
その心配なるほど。
あんま心配してなかったし何も起きていない気がする。
ImageとかFreezableなオブジェクトも大丈夫なはずだよね?よね?
0480デフォルトの名無しさん2009/10/22(木) 16:35:08
深刻なメモリリークに悩まされるWPF
ttp://www.infoq.com/jp/news/2009/10/WPF-Memory-Leak
0481デフォルトの名無しさん2009/10/22(木) 16:38:51
まぁ、出たての技術だから仕方あるまい。
0482デフォルトの名無しさん2009/10/22(木) 16:59:56
アニメーション移動なんてするとき、せっかくコードが分離できるっていってんのに
俺はいまだに「このイベント呼ばれればこのストーリーボードを呼べ!」といったコードを書いてしまう。
というかこっちの方がまだ簡単で読みやすいと思ってしまうんだけど、みんなはどうしてる?
0483デフォルトの名無しさん2009/10/22(木) 20:59:13
コードからBeginしたほうがわかりやすいですよね。
量が増えると どうかというのがありそうですが、
その前にあんまアニメーション使わないw
0484デフォルトの名無しさん2009/10/22(木) 22:19:05
アニメーションのきっかけになるようなイベントを出してそれをアニメーションにつかうかはXAMLで定義って感じかね。
まぁどこまで分離出来るようにするかによるんだろなー

アニメは適度に使うとUXあがるとは思う。
0485デフォルトの名無しさん2009/10/23(金) 01:15:05
みんなBeta2入れた?
一部の奴が騒いでたビットマップフォントが表示されるようになったんだが。
0486デフォルトの名無しさん2009/10/23(金) 01:40:05
いま入れてる途中なんだが時間かかるな

0487デフォルトの名無しさん2009/10/23(金) 01:42:20
WPF4.0の「公約」だったもんね
http://blogs.msdn.com/text/default.aspx
0488デフォルトの名無しさん2009/10/23(金) 01:47:16
うん、普通に嬉しく思うよ
0489デフォルトの名無しさん2009/10/23(金) 02:13:30
MenuのPopupやComboBoxでClearType有効になったのもかなり嬉しいね。
0490デフォルトの名無しさん2009/10/23(金) 08:05:06
ListView のヘッダとかスクロールバーとかのデザイン(マウスがあると青く
立体的になるところ)を変えたいんですが Triggers で Background 変える
だけだと一瞬だけ変わってすぐに元の青いものになってしまいます。
ControlTemplate でやるのかなのかなと思うのだけどうまくできなくて
どこかにサンプルありませんか。
msdn のやつはみたんですが解説が少なくてポイントがよくわからないです
0491デフォルトの名無しさん2009/10/23(金) 09:00:09
MSDNのListView ControlTemplateの項に載ってるリファレンス実装を丸ごとListView.ControlTemplateにコピペして改造
どう弄ればいいかはそのテンプレート見ればだいたいわかる
0492デフォルトの名無しさん2009/10/23(金) 22:37:52
>>491
そのレベルに達していなくてmsdnのやつはStyleそのものしかないので
ListView のどこにそれぞれTemplateとかStyleとかで追加したらいいかわからないです
0493デフォルトの名無しさん2009/10/23(金) 23:56:10
ListViewは複雑でかなり変わったコントロールなのでまずはButtonなどで練習したほうがいい
button wpf controltemplate でググれ
0494デフォルトの名無しさん2009/10/24(土) 01:32:58
CodePlex に WPF Model-View-ViewModel Toolkit というのがある
これを使用した解説が欲しい

http://wpf.codeplex.com/wikipage?title=WPF%20Model-View-ViewModel%20Toolkit&ProjectName=wpf
0495デフォルトの名無しさん2009/10/24(土) 08:23:56
>>494
WPFはMVVMがメインストリーム。MSDNに有名な記事があるだろ。
0496デフォルトの名無しさん2009/10/24(土) 08:31:37
VMはそのVに特化したMの薄皮って認識で大体あってる?
0497デフォルトの名無しさん2009/10/24(土) 10:04:00
外れている。
0498デフォルトの名無しさん2009/10/24(土) 12:48:15
( ̄д ̄)エー
0499デフォルトの名無しさん2009/10/24(土) 13:53:39
public static readonly DependencyProperty DataProperty =
DependencyProperty.Register(
"Data",
typeof(ObservableCollection<string>),
typeof(testcon),
new PropertyMetadata(new PropertyChangedCallback(OnDataPropertyChanged)));

とやってバインド元のObservableCollectionにADDしてもPropertyChangedCallbackが
呼ばれないのはなんでなんだぜ?
これが単なるStringだったりintだったりすると問題ないんだけど。

そもそもやり方が間違ってるとして、ObservableCollectionから追加や削除の通知を
受けたい場合はどうすりゃいいん?
0500デフォルトの名無しさん2009/10/24(土) 14:40:33
.Data.Add("hoge"); // Data 自体は変わってないのでOnDataPropertyChangedは呼び出されない
.Data = new ObservableCollection<string>(); // ここでOnDataPropertyChanged呼び出し

ObservableCollection<T>.CollectionChangedを使う
0501デフォルトの名無しさん2009/10/24(土) 21:45:00
>>500
おお、ありがとう。
こういうことでいいんかな?

public static readonly DependencyProperty DataProperty =
DependencyProperty.Register(
"Data",
typeof(ObservableCollection<string>),
typeof(testcon),
new PropertyMetadata(new PropertyChangedCallback(OnDataPropertyChanged)));

private static void OnDataPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
testcon tc = d as testcon;
tc.Data.CollectionChanged += new NotifyCollectionChangedEventHandler(tc.OnDataCollectionChanged);
}

private void OnDataCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
// Dataに追加や削除があったら呼ばれるよ
}
0502デフォルトの名無しさん2009/10/24(土) 23:09:44
test
0503デフォルトの名無しさん2009/10/25(日) 00:43:56
MediaElement.SpeedRatio に値を代入しても
無視されるんだが、なんでだろ〜?
エラーはなんにもでないんですが。
0504デフォルトの名無しさん2009/10/25(日) 08:43:25
ファイル形式によってできるもんとできないもんがあるが
Windows Media Playerで再生速度変えられる?
0505デフォルトの名無しさん2009/10/25(日) 16:31:15
WPF4のWhat's NewにD3DやXNAとのInteroperabilityがない…
05065032009/10/25(日) 22:22:34
>>504
そういう方法で確認できるのか。ご指摘の通り、
WMP でもだめだったよ。ありがとう。
0507デフォルトの名無しさん2009/10/25(日) 22:32:43
>>505
D3Dに関してはD3DImageでもまだ駄目?なんだよね……。
0508デフォルトの名無しさん2009/10/25(日) 23:30:51
Grid のうえに Button を配置して両者の Background を Black にしました。
すると、Button のワクだけが残ってしまいました。
この枠を消しつつ、その他の動作はデフォルトのままにする方法はありますか?
ControlTemplate は設定してみたんですが、マウスオーバーとかの動作も
消えてしまったので・・・。
0509デフォルトの名無しさん2009/10/26(月) 01:12:24
自分も悩んでてBlendでButtonを解体したりしていろいろ試してみたんだけど
そのワクは「Microsoft_Windows_Themes:ButtonChrome」っつーコントロールが描画してて
BorderBrushを変えようが何しようがどうにもならないので、
自前でこのページを手本にControlTemplateを手作りするしかないんじゃないですかね
http://msdn.microsoft.com/ja-jp/library/ms753328.aspx

Blendなら「SimpleButton」を元に自分で改造していくとか
0510デフォルトの名無しさん2009/10/26(月) 07:33:58
>>508
クリックやマウスオーバーに反応させるだけならCanvasでもなんでもいいのでは?
0511デフォルトの名無しさん2009/10/26(月) 08:46:40
>>508
枠も黒にすればいいとかそういう話ではなくて?
05125082009/10/26(月) 12:12:19
みなさん、レスありがとうございました。

>>509
やっぱ ControlTemplate 手作りですか・・・。その方向で検討します。

>>510
Canvas を使うって方法は思いつきませんでした。
ただ、MVVM で作ってるんで、Command プロパティが欲しいので
その方法はむりかも。

>>511
Style で BorderBrush を Black にしても無視されます。
うちは VS2008SP1 ですが、バージョンによって挙動が違うのかな?


0513デフォルトの名無しさん2009/10/26(月) 12:15:51
FormattedText の Geometory を取得して、g.GetWidenedPathGeometry
すると、もとの文字にはない余計な線が一本入ってしまってるんですが、
("X" を取得すると "/X" みたいに)
↓のプログラムどこか間違ってますか?

var ft = new FormattedText("X",
 CultureInfo.CurrentCulture,
 FlowDirection.LeftToRight,
 FontFamily.GetTypefaces().ElementAt(0),
 16,
 Brushes.Black);

var g = ft.BuildGeometry(new Point(0, 0));
g = g.GetWidenedPathGeometry(new Pen(Brushes.Blue,1));
var path = new Path();
path.Data = g;
path.Stroke = Brushes.Blue;
path.StrokeThickness = 3;
grid.Children.Add(path);
0514デフォルトの名無しさん2009/10/27(火) 01:29:27
3Dの球体にボタンやテキストを配置してくるくる回転させながら操作するアプリを作ってみた
だからどうってわけじゃないがw
05154582009/10/27(火) 13:45:53
うp
0516デフォルトの名無しさん2009/10/27(火) 13:46:36
あーまたやっちゃったよ。もう嫌になるなあ
0517デフォルトの名無しさん2009/10/27(火) 16:03:01
>>514
それ、タッチパネルデバイスならありじゃないのか
WM7はWPF動くのかのう
0518デフォルトの名無しさん2009/10/27(火) 17:03:09
>>517
動かなかったらVS2010できないではないか
0519デフォルトの名無しさん2009/10/27(火) 18:14:19
よくSFである、3D映像によるタッチパネルとかかっこいいかもな

それか、シムズみたいな3Dの部屋があって、テレビクリックすると
ズームして映像が流れるとか
0520デフォルトの名無しさん2009/10/27(火) 18:34:07
3Dとか生かしたナイスなアプリはいつでてくるかなー
自分的にはイノセンスの最後に出てきたロボット製造工場みたいのキボン
0521デフォルトの名無しさん2009/10/29(木) 02:26:39
Refrector 使って確認したんですが、
現行の WebBrowser は Navigating イベントで
postData を見ることができないようです。

VS2010 で、この点が改良されるかどうかご存じのかたが
いらっしゃいましたら教えてください。
0522デフォルトの名無しさん2009/10/29(木) 23:35:52
MatrixTransformで変形する要素をアニメーション化したいんですが、
行列のアニメーションってttp://msdn.microsoft.com/ja-jp/library/ms742524.aspx
ここみるとサポートされてるの離散方式だけなんですよね。
滑らかにアニメーションさせたいんですがどういう方法がありますか?
0523デフォルトの名無しさん2009/10/31(土) 19:28:08
TransformGroupで回転とスケーリングと一様歪みと平行移動を組み合わせる
MatrixKeyframeを継承してキーフレームを自作してしまうこともできそうだけど単純な線形補完では意味ないから余計に難しいと思う
0524デフォルトの名無しさん2009/11/03(火) 00:04:01
動画プレイヤーを作ってます。
DockPanel の中央に動画、下部にボタンのならんだツールバーのある普通の配置です。

この画面をフルスクリーン表示にしたときは、ツールバーを非表示にして、
マウスを画面下部に持って行ったらツールバーが出てくるようにしました。

現在は、Height を調整しているのでが、そうするとツールバーが出てくると、動画のサイズが変わってしまいます。
ツールバーを表示しても動画のサイズを変えないようにするにはどうしたらよいでしょうか?

わかりにくい文章ですみません。
0525デフォルトの名無しさん2009/11/03(火) 01:52:06
同じパネルに入れないで、かつZオーダーいじってみたらどうだ
0526デフォルトの名無しさん2009/11/04(水) 01:23:21
まずなんで動画プレイヤーなんて作ろうとするのか理解できない。
Media Playerで十分。
05275242009/11/04(水) 02:17:59
>>525
なるほど。その方法ためしてみます。
ありがとございました。
0528デフォルトの名無しさん2009/11/06(金) 02:34:13
SplitButtonを再現したくて試行錯誤してるがどうもうまくいかない…
自分でユーザーコントロール/カスタムコントロール作ろうとすると
とたんに難易度が跳ね上がって今の自分の手には負えない
誰かいい方法を知りませんか?

つーか自分の所のUXガイドライン(http://msdn.microsoft.com/ja-jp/library/aa511453.aspx)
に載せてるコントロールくらいは標準で持っていて欲しい
0529デフォルトの名無しさん2009/11/07(土) 02:22:15
1つのプロパティにおいて、アニメーションを合成することってできる?
例えば、すばやく右へ平行移動してる最中にクリックすると左への平行移動も始める(結果、減速してるように見える)
ってなことを1つのRenderTransformでやる。
Canvasなんかのコンテナ用意して別々のRenderTransformに適用すればうまくいきそうだけど、
できるなら1つのでやってみたいなあ、と。あんまり意味ないかな?
0530デフォルトの名無しさん2009/11/07(土) 09:29:24
TransformGroupでどうだ?
0531デフォルトの名無しさん2009/11/07(土) 11:14:42
WPF,compizとかと比べるとダメダメじゃね(´・ω・`)
0532デフォルトの名無しさん2009/11/07(土) 11:42:22
なんで全く関係の無いものを比べてんの?

compizと対応するのはDesktop Window Managerだろ?
WPFと対応するのはGTKやQTだろ?
0533デフォルトの名無しさん2009/11/07(土) 12:10:24
>>528
ttp://www.codeproject.com/KB/WPF/WpfSplitButton.aspx
  ググレカス [ Gugurecus ]
  ( 2006 〜 没年不明 )
      , イ)ィ -─ ──- 、ミヽ
      ノ /,.-‐'"´ `ヾj ii /  Λ
    ,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
   ノ/,/ミ三ニヲ´        ゙、ノi!
  {V /ミ三二,イ ,  /,   ,\  Yソ
  レ'/三二彡イ  .:ィこラ   ;:こラ  j{
(省略されました・・全てを読むにはここを押してください)
0534デフォルトの名無しさん2009/11/07(土) 13:32:56
>>530
なんで気づかなかったんだろう
TranslateTransform2つ用意したらできたよ!ありがとう
0535デフォルトの名無しさん2009/11/12(木) 03:03:20
ある TextBlock のフォントサイズは、別の TextBlcok のフォントサイズの
1/2っていう指定を xaml でしたいんだけど、IValueCoverter を実装する以外に
方法ないかな?
0536デフォルトの名無しさん2009/11/12(木) 15:17:09
>>535
ないとおもわれる。
05375352009/11/12(木) 17:05:12
>>536
できれば xaml だけですませたかったんだけど、やっぱ無理なんだね。
ありがとう。IValueConverter実装で行ってみる。
0538デフォルトの名無しさん2009/11/13(金) 10:05:13
>>537
まあ、根本的な解決にはなってないが、どうしてもXAMLだけで済ませたいならRendarTransformで描画を半分にしちゃうとかw
0539デフォルトの名無しさん2009/11/15(日) 19:16:29
WPF使ってる人なんていんの?
0540デフォルトの名無しさん2009/11/15(日) 19:33:07
いっぱいいるぞ??
0541デフォルトの名無しさん2009/11/15(日) 19:37:32
日本に限定しなけりゃね。Visual Studio 2010が出れば状況が変わるかもしれんが、
いかんせん今では日本語では資料がないし、良い図書がない。

WinFormならいきなり新人に触らせてもググりながら覚えていけるだろうがWPFは無理。
本もEssential WPF程度しかない。アレはある程度C#/WPFの知識がある人じゃないと読めないだろ。
0542デフォルトの名無しさん2009/11/15(日) 20:07:09
MVVMもなんか色々面倒だしなぁ。

βさわってないからなんともいえないけど
Expression BlendみたいなのがMS製品で存在する以上、
VS2010でもフォームいじりは今一な感じになりそうな気がするよ・・・
0543デフォルトの名無しさん2009/11/15(日) 20:23:07
WinForms相当の見た目でいいなら2008のデザイナでも十分だろ
0544デフォルトの名無しさん2009/11/15(日) 20:28:15
Blendたけーしなあ
SVGならInkscapeあるしこれをXAMLに変換できれば画像はなんとかなる?
0545デフォルトの名無しさん2009/11/15(日) 20:29:36
>>543
プロパティの説明が出なかったりXAML直接編集しないと出来ないこと多かったりで
なんか完成度低くない?
0546デフォルトの名無しさん2009/11/15(日) 20:59:04
VS2010のWPFデザイナは進化してるんだっけ?
Freamwork4の見どころのPallarelは3.5でも使えるようだし
今Blend3+VS2008な人は2010に移行する必要ないよね
0547デフォルトの名無しさん2009/11/15(日) 21:12:43
ttp://www.atmarkit.co.jp/fdotnet/scottgublog/20091111wpf4/wpf4.html
WPF4自体はかなりいろいろ改善されてるみたいだよ
やっぱりVS2010に使われたのが大きいんだろうな
0548デフォルトの名無しさん2009/11/15(日) 21:16:20
Blend3におけるWPF4のサポをSP以外にしたら絶対に許さないよ
0549デフォルトの名無しさん2009/11/15(日) 21:19:45
CLR4で作り直さないといけないからSPでは無理だろ
アップロードに金がいるかどうかは別だが
0550デフォルトの名無しさん2009/11/15(日) 21:20:19
しかしながら
多くの人がインスコを渋っていた.NET3.5もWin7ではプリインスコになったってことで
気軽にWPFを使う気になったが
WPF4&.NET4でまた「動かない」「入れたくない」云々のご意見を頂戴することになるのか・・・
0551デフォルトの名無しさん2009/11/15(日) 21:45:30
タブブラウザのメニューリスト式タブ切り替えのようなものを作ってるのですが、
例えばこのようなクラスがあるとして、
public class Tab{
public bool IsCurrent{ get; set; } //今表示されてるタブか否か
public String Title{ get; set; } //タブのタイトル
}
これをObservableCollectionに突っ込んだクラスを作って、
public class Tabs{
public ObservableCollection<Tab> TabsList { get; set; }
}
これをXAMLでContextMenuのItemsSourceとバインディングして、
DataTemplateを作ってあげて複数のTitleが一覧表示されるところまではうまくいったのですが、
:
<ContextMenu DataContext={(略)} ItemsSource={Binding(略)}>
<ContextMenu.ItemTemplate>
 <DataTemplate><Grid><TextBlock Text="{Binding Title}"/></Grid></DataTemplate>
</ContextMenu.ItemTemplate>
:
ItemsSourceから生成されているはずの
各々のMenuItem要素のプロパティにアクセスするにはどうすればいいのでしょうか?
IsCheckedプロパティをIsCurrentとバインドさせたいと思っています
0552デフォルトの名無しさん2009/11/15(日) 21:50:24
SPでランタイムが配布されるまでは3.5で頑張るさ・・・
0553デフォルトの名無しさん2009/11/16(月) 12:24:29
AllowTransparencyを有効にしてるとウィンドウ枠が消えるけど
任意にリサイズさせたいときはどうしてる?やっぱりCanResizeGripしかない?
0554デフォルトの名無しさん2009/11/16(月) 12:45:31
>>553
それが一番手っ取り早いと思うけど。
0555デフォルトの名無しさん2009/11/16(月) 12:55:36
>>554
やっぱりそうなのかあ
ZuneSoftwareみたいな、ドロップシャドウを出しつつ全方向からリサイズできたらかっこいいなあなんて思った
0556デフォルトの名無しさん2009/11/16(月) 21:29:43
>>551
ContextMenu.ItemContainerStyleでスタイルを設定するのが楽かな
0557デフォルトの名無しさん2009/11/17(火) 17:54:24
質問です。

[前提]
 Gridにbackground、foregroundという名前の二つのListViewを重ねて表示しています。
 両方ともItemsPanelをCanvasに設定し、それぞれ任意の位置に図形を表示します。

[やりたいこと]
 foreground上の図形がクリックされた場合それを選択するのですが、
 クリックしたポイントに図形がない場合、background上の図形を調べ選択したい。

[現状]
 foreground、backgroundの順でHitTestしているのですが、なんだか二度手間のような気がします。
 
ご教示お願いします。
0558デフォルトの名無しさん2009/11/17(火) 18:57:36
>>556
できました。ありがとうございます
BlendだとContextMenuのプロパティをGUIから新規作成するのが容易にできないので見落としてました
0559デフォルトの名無しさん2009/11/17(火) 19:37:21
>>557
つTunnelイベント
0560デフォルトの名無しさん2009/11/17(火) 21:31:56
Setterっていうの邪魔だで削ってちょ
0561デフォルトの名無しさん2009/11/17(火) 22:44:01
>>541
ある程度ってどの程度?
今日本屋さんで注文しちゃったよ
ウワーーーーン
0562デフォルトの名無しさん2009/11/18(水) 00:01:58
なんで名前空間がURLなの?
わけわかんない
0563デフォルトの名無しさん2009/11/18(水) 00:05:05
むしろその発言がわけわかんない
0564デフォルトの名無しさん2009/11/18(水) 00:19:17
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
こういうの気持ち悪い
わけわからん
アクセスしてもThe page cannot be foundってでるし
0565デフォルトの名無しさん2009/11/18(水) 00:20:44
たぶん、XML名前空間のことだろ
とりあえず、XMLの基礎知識なのでスレチ
0566デフォルトの名無しさん2009/11/18(水) 02:34:23
BimapEffect は重いらしいんで、Effect に使用と思ったら、
OuterGlowBitmapEffect がないんだけど、
これは BitmapEffect 使ってろってこと?
0567デフォルトの名無しさん2009/11/18(水) 02:56:51
SP1でBitmapEffectもハードウェアアクセラレーションされるようになったらしいよ?
0568デフォルトの名無しさん2009/11/18(水) 03:19:14
ttp://karlshifflett.wordpress.com/2008/11/04/wpf-sample-series-solution-for-the-obsolete-bitmapeffect-property-and-rendering-an-outerglowbitmapeffect/
DropShadowEffectでおk だそうだ
0569デフォルトの名無しさん2009/11/18(水) 14:47:31
IsEditableがtrueなComboBoxでIMEをオフにするにはどうすればいいんですか?
TextBoxならInputMethod.IsInputMethodEnabled="False"でできるんですが…
0570デフォルトの名無しさん2009/11/18(水) 16:27:09
>>561
C#2.0の機能すらよくわからない俺でもそれなりに読めるけど
けっこうちんぷんかんぷん。
「こんな機能を実装しました。他にも同様の手段がありますがこうこうこういう理由でこれを選びました。」
「従来のだとこういう風なことはこういう理由で実現しづらいものだった。
なのでWPFではこういう手法でこの機能を用意しました」
「なぜこのオブジェクトが必要なのかはこういう理由で・・・」
みたいな事を詳しくいっぱい書いてるものだと思ってたけど、期待したほどでもなかったな。
まだコントロールの章を読んでる途中だけど
0571デフォルトの名無しさん2009/11/18(水) 16:52:28
>>569
Blendを使っている場合は、テンプレートの編集→コピーして編集 を行い、
Blendを使用していない場合は、
ttp://msdn.microsoft.com/ja-jp/library/ms752094.aspx
に書かれているComboBoxのスタイルを<Window.Resources></Window.Resources>タグがなければ記述し、このタグ内にコピペする。
あとは、PART_EditableTextBoxというのがComboBoxの入力コントロールとなるのでこれにInputMethodを設定すれば
いけると思われ。(ごめん今は検証できる環境がないので未検証)
0572デフォルトの名無しさん2009/11/18(水) 19:39:59
>>559
ありがとうございます。

foregroundのMouseDownなりをキャッチして、
e.OriginalSourceがnullならbackgroundをHitTestという理解でいいでしょうか。
0573デフォルトの名無しさん2009/11/18(水) 20:37:33
>>541
IntelliSenseが最良のC#参考書と言われるのと同じように、
結局Blendであちこちいじってみるのが一番の習得法だったりする、というのが実感
でも参考書代わりにするにはちょっと高すぎる

Blend Expressが欲しいなあ
MSとしてはそこの領域はVS(Express)2010のXAMLデザイナに任せるということなのかもしれないけど
0574デフォルトの名無しさん2009/11/18(水) 20:54:54
>>570
あの本は重要な部分の説明がさりげなくボロっと落ちてたりする。
各種機能を一回触ってある程度使って中身を分かっている人なら理解できるだろうが、
ゼロベースで読んだらかなり苦戦すると思う。
05755692009/11/18(水) 22:29:10
>>571
スタイルはまだよく理解できてないので、添付プロパティで対処しました。
ttp://codepad.org/31OfMdr2
Loaded後じゃないとPART_EditableTextBoxが見つからないみたいです。
ありがとうございました。
0576デフォルトの名無しさん2009/11/18(水) 23:04:51
MergedDictionariesってなによ
最初から全部MergedDictionariesにしとけよ
いちいち書かせるなよ
めんどくせーな
0577デフォルトの名無しさん2009/11/19(木) 00:04:49
<ContentControl Content="{Binding}">
 <ContentControl.Style>
  <Style TargetType="ContentControl">
   <Style.Triggers>
    <DataTrigger Binding="{Binding Hoge}" Value="{x:Null}">
     <Setter Property="ContentTemplate" Value="{StaticResource temp1}" />
    </DataTrigger>
   </Style.Triggers>

   <Setter Property="ContentTemplate" Value="{StaticResource temp2}" />
  </Style>
 </ContentControl.Style>
</ContentControl>

Bindingの値によって表示するコントロールを変更するXAMLなんですが、こんなやり方でいいんでしょうか?
もっとスマートなやり方ないでしょうか?
05785662009/11/19(木) 00:46:10
>>568
ありがとう。助かった。
0579デフォルトの名無しさん2009/11/19(木) 13:02:07
XAMLプログラミングって読んだほうがいい?
0580デフォルトの名無しさん2009/11/19(木) 13:16:21
>>579
スタイルやテンプレート、バインディングに関してあまり自身がないなら
読んだほうがいいかも。
3Dのことに関しても書かれているが、興味なければ読み飛ばしてOK。
0581デフォルトの名無しさん2009/11/19(木) 13:19:31
>>580
やさしい人ありがとう
0582デフォルトの名無しさん2009/11/19(木) 16:04:01
ttp://gigazine.net/index.php?/news/comments/20091119_internet_explorer_9/
WPF4.0製か?w
0583デフォルトの名無しさん2009/11/19(木) 16:19:39
D2Dを直接使ってるんじゃね
0584デフォルトの名無しさん2009/11/19(木) 21:05:16
直接ってWPFがDirect2D使うことはないでしょ
Direct2DってDirect3Dのラッパーみたいなもの
立ち位置としてはWPFと同じようなものなので使う意味がない
0585デフォルトの名無しさん2009/11/19(木) 22:59:08
WPFアプリからDirectWriteを扱う必要性もない
0586デフォルトの名無しさん2009/11/19(木) 23:33:47
その辺勘違いしてる人多いよな
D3DXみたいなものに過ぎない
0587デフォルトの名無しさん2009/11/19(木) 23:51:36
IE9の描画にWPF使ってるのか?って話に対して
(WPFを使わず)Direct2Dで描画しているのだろうと書いたわけだけど?
0588デフォルトの名無しさん2009/11/19(木) 23:53:17
それが現実的にありえないという話では?
0589デフォルトの名無しさん2009/11/19(木) 23:55:44
??
IE9の描画にWPF使ってるんじゃね?
→WPF使わなくてD2D使ってるんじゃね?
→WPFがD2D使うわけないじゃん(????)

ってことだよな。
0590デフォルトの名無しさん2009/11/19(木) 23:57:29
で、おまいらWPFつかってるの?
なんか昔は柔軟だけどもっさもさだった気がしたんだが、その辺は使えるレベルになったんでしょうか?
0591デフォルトの名無しさん2009/11/19(木) 23:58:27
>584
この人の読解力がダメダメって事でFA。
0592デフォルトの名無しさん2009/11/19(木) 23:59:35
XPだともっさもさ
0593デフォルトの名無しさん2009/11/20(金) 00:15:45
7とVistaだけサポートするからたぶん大丈夫
0594デフォルトの名無しさん2009/11/20(金) 00:15:49
WPF使ってることがうりになるぐらいだから
まだ普及したとは言えないよなぁ
Silverlightだけ生き残ったりして
0595デフォルトの名無しさん2009/11/20(金) 00:28:26
正直SilverlightはDrawingVisualだけ実装して欲しい。
0596デフォルトの名無しさん2009/11/20(金) 00:37:43
WPFってVisual表現の最終形な感じがする。
扱いにくいのがアレだが
0597デフォルトの名無しさん2009/11/20(金) 00:43:45
http://blogs.msdn.com/directx/archive/2009/11/18/internet-explorer-announces-to-use-directwrite-direct2d.aspx
0598デフォルトの名無しさん2009/11/20(金) 00:45:02
がーんだな
0599デフォルトの名無しさん2009/11/20(金) 00:46:11
>>585
>WPFアプリからDirectWriteを扱う必要性もない

ん?
.NET 4 beta2のWPFアプリではdwrite.dllがプロセスに読み込まれてるよ。
実際どこかでDirectWriteを使うって話も読んだ気がする。
0600デフォルトの名無しさん2009/11/20(金) 00:51:02
確かに似たようなもんだが、Direct3Dとの相互運用がマシになるなら
WPFがD2D/DWriteをインフラに使うのは十分ありじゃね?
0601デフォルトの名無しさん2009/11/20(金) 01:44:38
>>599
あ、そうだったんですか。
「DirectWriteはWPFが自前で行ってるテキスト処理と同等の表現を
Win32アプリからでも扱えるAPI」だと聞いてたもんで。

じゃあWPF4ではテキスト処理をDirectWriteに委任することになったってことですかね?
0602デフォルトの名無しさん2009/11/20(金) 06:23:02
んーそこら辺の処理を両方で実装することないから、WPFは2Dに関してはそっちを呼び出すことにしたって事じゃないかね?
0603デフォルトの名無しさん2009/11/20(金) 07:53:14
>>597
URL見ただけでどんな記事かわかるってのはいいなw
0604デフォルトの名無しさん2009/11/20(金) 12:32:58
Direct2DやWriteを取り入れて
これまでより速くなることを期待してもいいのかな?
0605デフォルトの名無しさん2009/11/20(金) 12:46:29
描画で落ちてるか、パース過程やその他の処理で落ちているのか。
そこ問題が明らかでない限りなんともいえないでしょ。
0606デフォルトの名無しさん2009/11/20(金) 13:04:12
描画で落ちてるからDirect2Dを使うんだろ
0607デフォルトの名無しさん2009/11/20(金) 13:41:48
GDIからD2Dにスイッチしてfpsが上がるデモをやってる位だから
少なくとも地図ぐりぐりスクロールみたいなAJAXアプリでは
描画がボトルネックになってると認識してるんでしょう。
あとテキスト描画エンジンを一新したいという意図もあるだろうし。
0608デフォルトの名無しさん2009/11/20(金) 20:46:48
マネージドでGDI+で描画してたのってD2Dで速度アップとかするんだっけ?
0609デフォルトの名無しさん2009/11/20(金) 20:53:02
http://www.itmedia.co.jp/enterprise/articles/0911/20/news077.html
VS2010はともかくOffice2010はWPFアプリじゃないだろう…
0610デフォルトの名無しさん2009/11/20(金) 21:00:53
>>604
それは間違い
取り入れたというより,WPFの低レベルな部分をC++からも使えるようにしたようなものを
Direct2DやDirectWriteと呼ぶことにしただけ
0611デフォルトの名無しさん2009/11/20(金) 21:07:17
>>610はどう読んだらそういうレスになるんだろう?
0612デフォルトの名無しさん2009/11/20(金) 21:14:49
WPFの話なんだかIEの話なんだかごっちゃになってないか??
◯(IEに)D2Dを取り入れて速くなることを期待
×(WPFに)D2Dを(ry
0613デフォルトの名無しさん2009/11/20(金) 21:20:56
WPFのWebBrowserはどうなるんだろ
D2D使うんだったら空域分けずにWPFのサーフェスに直接描画することもできそうなもんだけど
0614デフォルトの名無しさん2009/11/20(金) 21:49:05
>>612
それは逆だろう。
>>599の「.NET4ではDirectWriteを使っているらしい」という
レスから話が繋がってる。
0615デフォルトの名無しさん2009/11/20(金) 21:49:59
WPFはアプリケーションをHTMLでつくっちゃおうというものと考えていいですか?
HTMLの勉強を先にしたほうがいい?
0616デフォルトの名無しさん2009/11/20(金) 21:51:44
そんな何も調べないで真っ先にこんなところで聞くようじゃ
何やっても身に付かないよ。
0617デフォルトの名無しさん2009/11/21(土) 00:16:44
WPF、なんかいまいち波に乗り切れてないような・・・
なんでだろね。ハードル高いのか?必要ないのか?

ちまたではLinuxの奴の方がすごいとかも聞くんだが、どうなんだろ?
アーキテクチャ的に、あとプログラミングモデル的に両者の違いとか教えてたもれ。
0618デフォルトの名無しさん2009/11/21(土) 00:19:57
まったくの別物なんだから「使ってみろ」としか言えん
0619デフォルトの名無しさん2009/11/21(土) 00:42:37
何も手を動かさないでうわべだけの評論を繰り返す典型例 >>617
0620デフォルトの名無しさん2009/11/21(土) 02:08:04
自由に移動拡大のできる2Dのグリッドを表示したいんですがこういうのWPFで扱うときどうするのが正解なんでしょう?
0621デフォルトの名無しさん2009/11/21(土) 02:27:03
>>617
個人的には「遅いから」のひとことに尽きるような。
0622デフォルトの名無しさん2009/11/21(土) 02:50:37
Vista/7なら速いです、はい
0623デフォルトの名無しさん2009/11/21(土) 02:54:32
>621
言うほど遅くもないだろ。

.NETの技術は業務利用されてナンボだと思うんだけど、まだ一部にWin2K端末が
残ってる企業は多々あるから、積極的に採用しづらいんじゃね?少なくともウチはそう。
来年〜再来年あたりは状況が変わってくると思うけどね。

バインディングシステムが強力なので、個人的にはすぐにでも乗り換えたい。
0624デフォルトの名無しさん2009/11/21(土) 05:09:06
WindowsFormに比べると、相当に重たいでしょ。

AtomのNetbookにWPFアプリは使いものにならないレベル
0625デフォルトの名無しさん2009/11/21(土) 06:12:24
Vista世代(XP後期)以降の普通のデスクトップPCをターゲットに開発してるから、そんな貧弱な環境はどうでもいいや
2kと同様に切り捨ててる。
0626デフォルトの名無しさん2009/11/21(土) 08:28:04
切り捨てるって判断できるのはお客さんだからなぁ。
PC 入れ換え代込みで納得してもらえる程 WPF を積極的に押せる説得材料が思いつかない。
0627デフォルトの名無しさん2009/11/21(土) 08:56:27
官公庁に景気対策だって言ってやればいい
0628デフォルトの名無しさん2009/11/21(土) 09:00:43
>623
INotyfyPropertyChangedは書くのが正直めんどくさい。

>625
まじっすか・・・
Linuxで3Dぐにょぐにょやってるやつは速そうなのに、あれとはやってることが別物なの?



0629デフォルトの名無しさん2009/11/21(土) 09:16:20
ゲームならスペック上げるのもまあ納得してもらえるかもしれないけど
業務アプリは難しいだろうね。
作り易いら工数下ります!って言えるほど習熟してないしなぁ・・・

ところで将来的にWindowsFormは廃止されるのかな?
0630デフォルトの名無しさん2009/11/21(土) 11:14:26
WPF使われないのは開発環境が貧弱だからだ、ってーのはM$も認識してる
VS2010待ちだな
0631デフォルトの名無しさん2009/11/21(土) 11:42:47
>628
確かに最初は面倒臭いけど、フォームクラスにイベント処理をぐちゃぐちゃ
書くより全然マシだと思う。
透過プロキシ使うとか、INotyfyPropertyChangedの実装を楽にする方法が
無いわけじゃないし。
0632デフォルトの名無しさん2009/11/21(土) 12:52:45
WPFが使われない理由って、(それなりにちゃんとした)デザインが面倒だからじゃないの?
0633デフォルトの名無しさん2009/11/21(土) 13:15:23
XAMLのできが悪いからに決まってる
0634デフォルトの名無しさん2009/11/21(土) 13:38:40
BlendにVS並みのコード補助が効かないのが致命的
0635デフォルトの名無しさん2009/11/21(土) 17:32:22
WPFで作られたVisualStudio2010が悲惨な出来だからなあ
0636デフォルトの名無しさん2009/11/21(土) 17:38:44
betaは伝統的に重いって聞いたけど
正式版に期待
0637デフォルトの名無しさん2009/11/21(土) 20:05:26
WPFってイントラじゃ致命的なぐらいおよびじゃない気がする
0638デフォルトの名無しさん2009/11/21(土) 20:25:13
イントラっていうか、普通の業務システムではいらんな。
BIやエンジニアリング分野にはいいかもしれんけど。
0639デフォルトの名無しさん2009/11/21(土) 20:34:48
eコマースなら出番があるかもしれん
Panel系がどんな環境下でもそれなりに崩れずに見えるんなら、だが
0640デフォルトの名無しさん2009/11/21(土) 21:09:40
Panel系はバカ正直な動作しかしない
崩れるかどうかは使い方の問題
0641デフォルトの名無しさん2009/11/22(日) 00:27:14
>>632
個人的には、これが正解かな。
WinFormは、ど素人でも見た目はそれなりの形になるのがいいところ。
0642デフォルトの名無しさん2009/11/22(日) 00:52:26
起動が遅いよ。
0643デフォルトの名無しさん2009/11/22(日) 00:52:28
まぁFormsは外部からコントロール持ってこないか作らない限りちょっと何かやろうとすると破綻するわけだが。
0644デフォルトの名無しさん2009/11/22(日) 01:24:42
WinFormはいまのままでいいよ。それ以上はWPFの出番だね。

WPFぐらいになるとWinForm使えるレベルの人材では絶対無理な領域なんだよなぁ。
生産性求めるというより、ある程度お金賭けてでも視覚化すること効果のある分野が普及しそうに思う。
0645デフォルトの名無しさん2009/11/22(日) 01:43:12
美的感覚を要求されるからな
0646デフォルトの名無しさん2009/11/22(日) 04:28:20
http://stackoverflow.com/questions/561029/scroll-a-wpf-flowdocumentscrollviewer-from-code
ここのやり方で ScrollViewer は取得できたけど、
1000行くらいの FlowDocument を C# コードで作って
FlowDocumentScrollViewer.Document = document;
としたあとすぐに ScrollViewer.ScrollToEnd() すると300行くらいの
中途半端なところでスクロールが止まってしまうorz
ドキュメントの最後を表示させたいんだけど何か方法はない?
0647デフォルトの名無しさん2009/11/22(日) 09:19:40
とりあえずポトペタでも書けるわけだし、遅いのはPCの性能があがれば解決するし。
VCのデザイナがWinFormと同レベルぐらいになって
カスタムコントロールが出揃えば業務システムなんかでも使われるようになるんじゃないかね。
0648デフォルトの名無しさん2009/11/22(日) 10:41:32
客の環境で遅いのは致命的な問題
非開発系の環境ではXP + Celeron1Gあたりが普通に使われている

そういうマシンが全部死ぬまで簡単には普及しないんじゃないか?
0649デフォルトの名無しさん2009/11/22(日) 11:11:43
今のところ、客の発想がWinFormsレベルだから、WPFの出番がないのだと思う。

フリーソフトやマイクロソフトの製品でWPFがある程度使われるようになれば
客からWPFでないと実現しにくいような要求が出てきて、
自然とWPFが採用されるんじゃないかな?
0650デフォルトの名無しさん2009/11/22(日) 11:52:19
Formの上でWPFの様なことが出来る仕組みを作ったうちの会社は勝ち組(´・ω・`)
0651デフォルトの名無しさん2009/11/22(日) 14:37:35
業務システムと言えば、Formにコントロールを100個も200個も貼り付けて
「なんか重いんですけど」とか「なんかちらつくんですけど」となるのが
WinFormのFAQだった気がする。

最近はあまり見ない気もするけど、
WPFじゃなくてWebアプリに持って行かれたのかねぇ。
0652デフォルトの名無しさん2009/11/22(日) 14:42:24
Webアプリでも10000件のレコードを表示してくれ、
それぞれボタンを押して処理させてくれ、
画面遷移は少なくしてくれだのなんだので
結局、重くなるループ。
0653デフォルトの名無しさん2009/11/22(日) 15:02:00
コントロールの動作の細かいところでプロパティがない
とか用意されてないやつを変えたいというのも FAQ だよ
なぁ。API を使ってこのメッセージを…みたいに返すやつ。
WPF ならすぐだなってのも多い
0654デフォルトの名無しさん2009/11/22(日) 16:35:10
>>652
ajaxでクリアできる問題ばかりだな
0655デフォルトの名無しさん2009/11/22(日) 18:02:13
そうなんだよな。
ただなんかWebアプリっていうよりajaxってなんかひ弱な感じがしない?
バッドノウハウの塊ってのはいいすぎだけど
ライブラリが乱立しすぎてなんか怖い
0656デフォルトの名無しさん2009/11/22(日) 18:07:36
ここでSilverlightですよ
0657デフォルトの名無しさん2009/11/22(日) 18:10:06
>>654
ああ、要件上は解決できるさ。要件上はな。
0658デフォルトの名無しさん2009/11/22(日) 18:22:24
Silverlightへの力の入れ方は異常
そのうちWPFも吸収されるんじゃね
0659デフォルトの名無しさん2009/11/22(日) 18:23:58
デベロッパの期待がSilverlightのほうが上なんだろうね
0660デフォルトの名無しさん2009/11/22(日) 22:14:01
HTML5やSilverlightで
X-Windowは完全に死んだね
0661デフォルトの名無しさん2009/11/22(日) 22:33:08
生きてたことってあったか・・・?
0662デフォルトの名無しさん2009/11/22(日) 22:49:19
尊厳死の話か?
0663デフォルトの名無しさん2009/11/23(月) 00:17:28
Grid で任意のセルに割り当てられた UIElement を取得するにはどうしたらいいの?

uiEle.SetValue(Grid.RowProperty, y);
uiEle.SetValue(Grid.ColumnProperty, x);

で割り当てはできたんだけど、grid.GetUIElementAt(x,y) みたいなメソッドを
見つけられないんだ。
0664デフォルトの名無しさん2009/11/23(月) 00:23:18
ないよそんなの
同一のRow&Columnに複数の要素入れることもできるんだから
Grid.ChidrenをループしてRowとColumnを取得して判断したら?
あ、RowSpan/ColumnSpanの考慮も必要か

それから普通Grid.SetRow/SetColumnメソッド使う
0665デフォルトの名無しさん2009/11/23(月) 00:26:42
セルに要素を割り当ててるんじゃなくて要素にセルを割り当ててるんだし
Gridのレイアウトに使うだけの情報だから取得が必要な使い方をするのが間違ってる
0666デフォルトの名無しさん2009/11/23(月) 00:27:17
WPFのバインディングって目玉機能みたいに言われてるけど
昔のアプリでも似たようなこと実現できてるよね。
WPFからアプリ開発はじめた身としては以前とどう違うのかさっぱりわからん
かといっていまさらWinFormとかやりたくないしな
0667デフォルトの名無しさん2009/11/23(月) 00:32:23
スライダー動かしたらテキストボックスの値が変わるとか
WPFなら一瞬でできるけどWinFormsだとデータソースとかいちいち介さないといけなくて余計に面倒で普通にコード書いたほうが早い
0668デフォルトの名無しさん2009/11/23(月) 02:26:20
・WinFormsは、一部の非Control(MenuItemなど)にバインドできないのがいまいち。
 IBindableComponentを実装すればいいんだけど、面倒くさい。サンプル少ない。
・FormatイベントやParseイベントよりも、IValueConverterのほうがスマートだと思う。
0669デフォルトの名無しさん2009/11/24(火) 03:10:42
TabControlのTabItemをItemsSourceで生成して、
ContentTemplateにいろいろコントロール入れてもインスタンスは1個しか作られないんじゃん
テキストボックスに入力した内容なんかが全部のタブで同じになっちゃうじゃん
それじゃ使えないじゃん
0670デフォルトの名無しさん2009/11/24(火) 13:57:39
ListViewのGridLines="True"ってどこにかきこめばいいのでしょうか?
XAML初心者17才女子高生です
0671デフォルトの名無しさん2009/11/24(火) 14:09:14
16才以上は女じゃないのでいりません

普通に
<ListView GridLines="true" ... >
でいいと思うけど。
0672デフォルトの名無しさん2009/11/24(火) 14:14:45
ありがとう>>671さん

Expression Blend3だと

メンバー"GridLines"が認識されないか、アクセスできません。

とでます
0673デフォルトの名無しさん2009/11/24(火) 14:51:17
GridLinesなんてプロパティは存在しないからな
セルって意識があんまりないGridViewじゃ無理じゃないかなぁ
0674デフォルトの名無しさん2009/11/24(火) 16:32:48
何か激しく間違っているかもしれないが、以下のようにするととりあえずグリッドラインっぽいものを表示することが可能。
<!--Resource-->
<Style x:Key="MyItemContainerStyle" TargetType="{x:Type ListViewItem}">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="VerticalContentAlignment" Value="Stretch" />
</Style>

<!--ListView-->
<ListView Name="lv" ItemsSource="{Binding}" ItemContainerStyle="{DynamicResource MyItemContainerStyle}">
<ListView.View>
<GridView>
<GridViewColumn Header="col1">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Border BorderBrush="#FF000000" BorderThickness="1,0,1,1" Margin="-6,0,-6,0">
<StackPanel>
<TextBlock Text="{Binding col1}"/>
</StackPanel>
</Border>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
0675デフォルトの名無しさん2009/11/25(水) 11:15:57
WPFのチャンピオンベルト奪取するよ(´・ω・`)
0676デフォルトの名無しさん2009/11/26(木) 00:35:55
>>669
DataTemplateの制約だろうね。
タブ付きMDIの代わりはまだ自作するしかない。
0677デフォルトの名無しさん2009/11/27(金) 13:54:08
XAMLプログラミングって絶版なのかな
売ってないね
0678デフォルトの名無しさん2009/11/27(金) 14:24:39
WPFってGUIの部分だけなの?本体のコードはC#で書かないとだめなの?
0679デフォルトの名無しさん2009/11/27(金) 14:28:18
やらせる内容による
でもエスパー発動するとC#で書かないとだめ
0680デフォルトの名無しさん2009/11/27(金) 14:34:49
アニメーションするかどうかをユーザーが決められるようにする場合、
アニメーション定義はXAMLかコードどっちがいいですか?
というかXAMLでできるのかな・・・
0681デフォルトの名無しさん2009/11/27(金) 14:44:24
>>677
あの本いまさら価値無いと思うけど
0682デフォルトの名無しさん2009/11/27(金) 14:53:27
今ならどの本がいいの?
エッセンシャル WPF?
0683デフォルトの名無しさん2009/11/27(金) 15:24:46
エッセンシャルも3.0時代のだし少し古いね
翻訳がおかしいのか説明不足なのか、内容がいまひとつわかりにくいし
他の書籍はわからん
0684デフォルトの名無しさん2009/11/27(金) 21:26:03
WPFで開発した画面のサイズより小さな解像度のディスプレイで
画面を描画すると、そのディスプレイの画面サイズに
自動調整されてしまい、画面の見た目が切れてしまうの
ですが、これを回避する方法はどうすればよいのでしょうか?
0685デフォルトの名無しさん2009/11/27(金) 22:08:39
知らんがな
画面に収まらないものはどうしようもないだろ
折り返すなり省略するなり縮小するなり好きにしろ
使い方の問題であって一般にどうこう言えるような問題じゃない
0686デフォルトの名無しさん2009/11/28(土) 00:36:42
あるサイズ以下はサポートを打ち切るってのも手ではあるな。
0687デフォルトの名無しさん2009/11/28(土) 00:42:28
良ければちょっと画面キャプチャあげてみ
0688デフォルトの名無しさん2009/11/28(土) 01:14:55
そういうのをセンス悪いっていうね
0689デフォルトの名無しさん2009/11/28(土) 03:11:19
スクリーンサイズより大きなウィンドを表示したいって言ってるんだよね?
考えれ。
0690デフォルトの名無しさん2009/11/28(土) 03:25:41
まぁ常識的に考えてパネル内にスクロールバー付けて表示だな
0691デフォルトの名無しさん2009/11/28(土) 22:10:59
マイコミジャーナル
http://journal.mycom.co.jp/articles/2009/09/01/3ddigitalclockforwpf/
0692デフォルトの名無しさん2009/11/29(日) 12:30:39
Blend使うと何ができるの?
0693デフォルトの名無しさん2009/11/29(日) 14:27:45
デザインが簡単になったりコントロール作ったりするのが楽になったりする
んじゃなかったっけ?
0694デフォルトの名無しさん2009/11/29(日) 14:36:38
VSのXAMLエディタと比べると、「テンプレートの編集」で
コントロールを解体して中身が覗けるのが一番大きい違いだなあと使ってて思う
0695デフォルトの名無しさん2009/11/29(日) 15:36:53
ContentPresenterてなんだよ必要なのかよお〜
0696デフォルトの名無しさん2009/11/29(日) 18:02:58
XAMLって無駄に覚えること増やしてるよね
そんなの裏でやっちゃえよ、っていいたくなるのがたくさんある
0697デフォルトの名無しさん2009/11/29(日) 18:35:08
テンプレート編集とか見るXAML大きすぎてキモイよなw
細部まで手入れできるって点では進化なんだろうけど。

単純に形にするという点では難しい。

とりあえずUIとかのスタイルを、荒い粒度でいいから、
ボタン一発とかで切り替わって、ある程度のデザインの品質になってくれれば
良いなぁとも思う。
0698デフォルトの名無しさん2009/11/29(日) 18:49:20
カスタム自由度が高いのは悪いとことじゃない
ただ今のIDEの性能が低すぎて事実上Formより退化してる
Ver.3からマトモになるジンクスの崩壊とも言うな
4.0は話聞く限りはやっと使い物になりそうだが果たして
0699デフォルトの名無しさん2009/11/29(日) 19:00:48
普通にVSで作ったプログラムのGUI部分を、WPFを使った物に変更できるもんなの?
それともそんなツールとか用意されているの?
0700デフォルトの名無しさん2009/11/29(日) 19:01:52
>Ver.3からマトモになるジンクスの崩壊とも言うな
>4.0は話聞く限りはやっと使い物になりそうだが果たして

WPFもXAMLも.NET 3.0で登場して3.5でさらに改良されたわけで
期待するなら4.0で合っているんでは?
0701デフォルトの名無しさん2009/11/29(日) 19:11:25
WinFormsからマイグレーションするようなツールは今のところないんで無いかな。
ぜんぜん別物なんでその必要が無いのだと思うけど。
0702デフォルトの名無しさん2009/11/29(日) 19:22:57
WinFormsとWPFを両方使うことは可能なの?
ある部分だけWPFを使って、その他は従来通りみたいな。
0703デフォルトの名無しさん2009/11/29(日) 19:30:27
両方向に相互運用可能だよ、一応
デザイナとかがどこまで対応してるかは知らないけど
0704デフォルトの名無しさん2009/11/29(日) 19:32:45
>>702
できる。その逆もしかり。

現状あえてWPF使わなきゃいけない事情がないから
そんなことしたことないけど。

WPF使ってるときに必要なカスタムコントロールが無いから
Formsのを使う、ってことはこれから先ありそうだけど。
0705デフォルトの名無しさん2009/11/29(日) 19:50:56
そうですか。
次の仕事のGUIをどうしようか調査していたんですが、
まあ先を見越してWPFをメインにして、ない部分はFormsを使うようにしたいと思います。
0706デフォルトの名無しさん2009/11/29(日) 19:51:21
WPF on WForm on WPFはだめらしい(´・ω=E`)ショボーン
WForm on WPF on WFormもだめらしいマタ(´・ω・`)ショボーン
0707デフォルトの名無しさん2009/11/29(日) 21:00:22
まるでわからんぞな、もし

ユーザーコントロールで使ってるtextBlockの内容を
そのユーザーコントロール使ってるWindowからいぢるにはどうしたらいいぞね?
0708デフォルトの名無しさん2009/11/29(日) 21:08:45
Nameが付けてあればuserControl1.textBlock1のようにしてアクセスできるはずだけどそれが許されるのはVB厨だけ
ユーザーコントロールにプロパティを定義するのが正しい
0709デフォルトの名無しさん2009/11/29(日) 21:30:22
やっぱりわからんぞな;;
あきらめるぞな;;
0710デフォルトの名無しさん2009/11/29(日) 21:48:20
VB最強だな(´・ω・`)
0711デフォルトの名無しさん2009/11/29(日) 21:48:35
UserControlに依存関係プロパティを付けてそれ経由でアクセスするのは
WPFの基礎テクニックだと思うのでこれを機にしっかり勉強した方がいい
Visual StudioでUserControl.xaml.csを開いて「propdp」と入力して2回Tabを押すと簡単

正直、依存関係プロパティとINotifyPropertyChangedは
書く量が多い割に内容はコピペなのでもうちょっとシンプルに書かせて欲しい気もする
0712デフォルトの名無しさん2009/11/29(日) 21:53:45
だなぁ。自動実装プロパティ並のシンタクスシュガーはあっても良いんじゃないかと思うんだよなぁ。
0713デフォルトの名無しさん2009/11/29(日) 23:15:25
あるスレッドでdoubleの値を不定期に変更してそれをTextBlockで観測したいんだがなにやればいいんだ?
0714デフォルトの名無しさん2009/11/29(日) 23:16:36
INotifyPropertyChangedあたりはVSの機能で、
Excelライクな表に入力すれば生成されるとかでいいよもう。
0715デフォルトの名無しさん2009/11/29(日) 23:34:19
できた

UpdateSourceTrigger=PropertyChanged

しるか、ボケ
Binding入れた時点で自動で用意してくれ
0716デフォルトの名無しさん2009/11/29(日) 23:54:10
Expression Blend 3 から VisualStudioよびだしてそちらでxamlに変更したら
その変更がExpression Blend3に反映されなかった
これはバグでしょうか?
0717デフォルトの名無しさん2009/11/30(月) 08:24:51
Visual Stadio側で変更ファイルを保存したか?
0718デフォルトの名無しさん2009/11/30(月) 08:31:11
もちろんした
0719デフォルトの名無しさん2009/11/30(月) 09:09:46
新規プロジェクトでWPFアプリを選ぶと、最初にWindow1とAppのファイルが自動で出来るのですが、どう使い分けるのでしょうか?
コールバック関数などはWindow1の方に記述されるようですが。
0720デフォルトの名無しさん2009/11/30(月) 14:17:15
依存関係プロパティ作ってみてそれに値を代入しようとすると
作ったスレッド以外ではだめと言われエラー終了してしまいます
なぜでしょう?
INotifyPropertyChangeだとエラーにならないんですけど
依存関係プロパティはINotifyPropertyChangeに比べどういうメリットがありますか?
0721デフォルトの名無しさん2009/11/30(月) 15:32:27
バインディングのターゲットにできるのが一番の特徴かな
あとはCoerceが簡単にできる
添付プロパティもあるけどこれはかなり別件だな

ざっくり言えば
XAMLでインスタンス作るようなのはDependencyObject(やFrameworkElement)で
コードでインスタンス作るようなのはINotifyPropertyChangedで
ぐらいの感じ?
0722デフォルトの名無しさん2009/11/30(月) 20:22:32
あえてWPFでドット絵ゲー作る事に明確なメリット・デメリットがあれば御教授お願いします。
0723デフォルトの名無しさん2009/11/30(月) 21:23:09
ゲームなら,複雑なUI使わないんだったら特にメリットがないんだよなあ
Direct3DやXNAと比べて手間もそんなに変わらないと思う
どうせならSilverlight使ったら?
0724デフォルトの名無しさん2009/11/30(月) 21:43:15
XNAはWin上で動かす場合でもXBOX360のコントローラしか使えないって時点でなんかちょっとね。
Silverlight は結構真面目にアリだと思う。WPFで書くよりそっちの方が未来がありそうだ。どうせ似てるし。
0725デフォルトの名無しさん2009/11/30(月) 21:45:08
Silverspriteなんて無理やり感漂うものもあるけどな
でも結構動いてくれて使える奴です
0726デフォルトの名無しさん2009/11/30(月) 22:40:43
>>724
>XNAはWin上で動かす場合でもXBOX360のコントローラしか使えないって時点でなんかちょっとね。

XNAで初めて.NETに触った人は、ここにすごい拒否反応を示す人が多いみたいね。
でも実際はWin版のXNAって何か厳しいサンドボックスがあるわけじゃないので、
単にjoyGetPosをDllImportすれば済む問題だったりする。
ttp://msdn.microsoft.com/ja-jp/library/cc410473.aspx

元々.NETでデスクトップアプリを作っていた人は
「XBOX360のコントローラしか使えない」なんて思っていないんじゃないかな。
>>724はXNAで.NET始めたの?
0727デフォルトの名無しさん2009/11/30(月) 22:48:31
ゲ開のXNAスレがゲハに荒らされてるのを見るからに、XBOX360という文字に拒否反応を起こして思考停止してる人たちがXNAを使えないものと言いたがっている
0728デフォルトの名無しさん2009/11/30(月) 23:01:52
>>726
フレームワークで用意されてる入力読取が使えないってのってなんか気持ちわるくない?
なんで DirectInput をそのまま使えるようにしなかったのかがよくわからんのよねぇ。

>>727
あそこは既にXNAの技術的な話が出来る場所じゃなくなってるからなぁ・・・
0729デフォルトの名無しさん2009/11/30(月) 23:08:38
>>728
>フレームワークで用意されてる入力読取が使えないってのってなんか気持ちわるくない?
>なんで DirectInput をそのまま使えるようにしなかったのかがよくわからんのよねぇ。

その程度は笑って対処できないとデスクトップアプリではやっていけないよ。
WinFormのころからDllImportが必要になったことなんて山のようにあったじゃない。

このスレ的には、
「通知領域がWPFでサポートされていないのってなんか気持ちわるくない?」
「なんでSystem.Windows.Forms.NotifyIconをそのまま使えるようにしなかったのかがよくわからんのよねぇ。 」
てな感じかな。
0730デフォルトの名無しさん2009/11/30(月) 23:14:02
そういやなんで NotifyIcon をそのまま使えるようにしなかったんだろ?
0731デフォルトの名無しさん2009/11/30(月) 23:18:38
「Jumplist使ってくださいねv」
0732デフォルトの名無しさん2009/11/30(月) 23:21:14
Windows7時代には、通知領域より
ジャンプリストとオーバーレイアイコン使ってくださいってことじゃね?
MSN Messengerももう通知領域には常駐してないし
0733デフォルトの名無しさん2009/11/30(月) 23:22:45
きっと現実の世界で甲が死んだことを受け入れられない人の心を読めるヒロインが引きこもりになって常夏の仮想世界を作ってですね・・・
0734デフォルトの名無しさん2009/11/30(月) 23:23:45
XNA 使うより SlimDX 使った方が正直色々面倒が無いと思うんだけどな。
箱◯でも動かしたいなら XNA 一択だけど。
0735デフォルトの名無しさん2009/12/01(火) 00:00:22
MSとしては、
ハードに対するイニシアチブを握っておきたいが、
かといって自分で生産するようなリスクは避けたい立場。

特にPCは規格がオープンだからみんな参入可能なためリスキー。
ゲーム機はクローズドだから自分で作ったんだろう。

XNAのコントローラの問題は、ハードはこうあるべきだ、
という主張ないし囲い込み戦略の一端では。
0736デフォルトの名無しさん2009/12/01(火) 07:16:03
SlimDXは安定度どうなのよ
0737デフォルトの名無しさん2009/12/01(火) 07:40:33
いいかげんスレチじゃね?
どこかに誘導してやってよ
0738デフォルトの名無しさん2009/12/01(火) 07:59:48
【Xbox 360】 XNA Game Studio その10 【C#】
http://pc11.2ch.net/test/read.cgi/gamedev/1254356087/

【C#】 Managed DirectX 【.NET】
http://pc11.2ch.net/test/read.cgi/gamedev/1195136419/

C# C# C♯でゲームを作ろう Part1
http://pc12.2ch.net/test/read.cgi/tech/1212972014/
0739デフォルトの名無しさん2009/12/01(火) 09:27:59
http://www.japf.fr/silverlight/mvvm/index.html
07407382009/12/01(火) 09:41:16
訂正
C# C# C♯でゲームを作ろう Part1
× http://pc12.2ch.net/test/read.cgi/tech/1212972014/
○ http://pc11.2ch.net/test/read.cgi/gamedev/1212989813/
0741デフォルトの名無しさん2009/12/01(火) 13:03:27
Canvas上でMouseMoveをつかまえたいんですけど
Canvas上のControlの上(ボタンとかラベルとか)でしか
MouseMoveイベントが発生して無いようなんですけど
こういう仕様じゃないですよね?
WPFはじめたんですけどどうもFormの頭を引きずってしまっていて・・・w
0742デフォルトの名無しさん2009/12/01(火) 20:35:21
WPF ToolkitのDataGridで行番号を表示させるにはどうすればいいでしょう?
0743デフォルトの名無しさん2009/12/02(水) 03:32:35
コマンドの作り方が分からない
ICommand, RoutedCommand, CommandBinding, CommandBindings, 定義済みのコマンド…
キーワードが多くてどこから手を付ければいいのか頭の中がグチャグチャになる
0744デフォルトの名無しさん2009/12/02(水) 06:19:07
そこまでMSの流儀につきあわんでもよいとおもうがなぁ。
MSは結構やっちゃった的な実装してるのもあるし。INotifyPropertyChangedの実装とか最悪だろ。
0745デフォルトの名無しさん2009/12/02(水) 06:44:48
>744
そうか?
実装が面倒なのは否めないが、リフレクション等黒魔術系のテクニックを駆使して
コード量を減らすという方向よりは、素直かつ汎用性があって納得のいく解だと
思ったんだけど。どんな実装が良かったと思ってる?
0746デフォルトの名無しさん2009/12/02(水) 07:36:59
>>743
基本はICommand。
その上で動いているのがRoutedCommand。
0747デフォルトの名無しさん2009/12/02(水) 08:43:57
INotifyPropertyChanged はもう言語に手を加えてもっと簡単に利用出来るようにすりゃいいのにって
ときどき思う
0748デフォルトの名無しさん2009/12/02(水) 08:57:43
なんかよう分からんけど、xamlのコードビハインドにイベントハンドラを書くのは
良くないっぽいことらしいので、CAL真似してDelegateCommand<T>使ってる。
0749デフォルトの名無しさん2009/12/02(水) 09:09:29
ObservableCollectionでどの要素が削除されたかって知る方法ありますか?
0750デフォルトの名無しさん2009/12/02(水) 09:46:55
CollectionChangedイベントで取れるけど
質問に背景がありそうだな
0751デフォルトの名無しさん2009/12/02(水) 10:11:09
>745
手動でプロパティ名を文字列で使って同じようなコード延々と書かなきゃいけない時点でだめかと。
言語的なサポート、もしくはヘルパー的なクラス、通知をサポートするスマートオブジェクトでもかまわんのだが。
0752デフォルトの名無しさん2009/12/02(水) 11:23:16
んなものスニペット使え
0753デフォルトの名無しさん2009/12/02(水) 12:24:03
スニペット使えって結局コピペで済ませってこととほぼ同意でしょ。
書いててなんか洗練されてないなあとは思うわ。

カスタム属性あたり使ってシンプルに使えないものかと思ってるんだけど
なかなかうまくまとまらない。
0754デフォルトの名無しさん2009/12/02(水) 12:39:54
>>750
ありがとうございました
他のことで解決したです
背景は内緒(はずかしい)
0755デフォルトの名無しさん2009/12/02(水) 15:13:37
>>744
てことは、Button1_Clickにベタベタと処理を書いていく
VB的な(?)書き方もアリってことですかね?

でもまあ、それはMVVM的に美しくないし
ボタンからでもメニューからでもキー入力からでも
統一された方法で処理が呼べるってのは便利そうなのでもうちょっと頑張って勉強してみようと思います
0756デフォルトの名無しさん2009/12/02(水) 15:33:11
>>755
ボタンでしかしない処理ならそこに書けばいいし
共通して使うのであれば どっかにまとめちゃう

ただそれだけのような気がする・・・
0757デフォルトの名無しさん2009/12/02(水) 18:55:35
>>741
CanvasのBackgroundを透明以外に設定してみて
0758デフォルトの名無しさん2009/12/02(水) 20:52:47
>>742
行番号の列を追加すればいいだけなのでは?
0759デフォルトの名無しさん2009/12/02(水) 21:00:13
>>758
やっぱりそれしかないですか
ランキング表示(リアルタイムに変動)をさせようとしてて行番号が自動でつくと楽だなぁとおもったもんで
0760デフォルトの名無しさん2009/12/02(水) 21:47:15
StyleとTemplateの違いがよくわからない
0761デフォルトの名無しさん2009/12/02(水) 22:26:52
テンプレートというのはコントロールの外観を定義する実装の詳細なんだよ。
WPFのコントロールはそれ自身は外観というものを持ってなくて,たとえばボタンなら
クリックされたらイベントを発生させる」という機能と,ボタンを意味付けるコンテンツ(文字列でも画像でも何でもいいんだけど)
を持った抽象的な存在。具体的にそのボタンやコンテンツがどのようにして画面に表示されるかはテンプレートで定義される。
スタイルは単にコントロールのプロパティ設定をまとめたもの。
0762デフォルトの名無しさん2009/12/02(水) 23:01:56
その違いを明確にしたくてわざわざSetterつくったのか
エッセンシャルWPFみたらStyleでSetter使わない記述も検討してたらしいけど
ていうかよく見るとそう書いてるな、この本にも
0763デフォルトの名無しさん2009/12/02(水) 23:02:24
ぶっちゃけ、みんなwpf使ってるの?
いつも今回こそはとwpfプロジェクト選んで挑戦するんだけど、GUIをなんとか
するので手間ばっかりかかって、結局はformで作り直すことが多い。
もちろん、まだ自分自身が不慣れって言うのもあるんだろうけれど、よほど凝った
概観、たとえば従来ならownerdrawでなんとかしよう、みたいな例外的なケース
でもないかぎり、まったくメリットが見出せないんだが…。全般的にアーキテクチャは
すっきりしているはずなんだけれど、使おうとするとひどくわかりにくいという、非常に
ちぐはぐな印象がある。

0764デフォルトの名無しさん2009/12/02(水) 23:06:46
ぶっちゃけ使ってないなぁ。
勉強のためにちょこちょこ小さいプログラム書き捨てしてるぐらいだわ。


0765デフォルトの名無しさん2009/12/02(水) 23:08:03
俺も横目で見ている感じだな。勉強はしているけど。
0766デフォルトの名無しさん2009/12/02(水) 23:41:11
面白い事が出来るのはわかってるけど正直つかいにくいです
0767デフォルトの名無しさん2009/12/03(木) 00:01:40
WPF使ったVisual Studio2010が悲惨な出来だからなあ
0768デフォルトの名無しさん2009/12/03(木) 00:06:25
PCがしょぼいだけなんじゃないの?
0769デフォルトの名無しさん2009/12/03(木) 00:09:18
>>767
全然悲惨じゃないけど?
0770デフォルトの名無しさん2009/12/03(木) 00:19:24
ウィンドウ内に画像をたくさん張り付けるときは明らかに速いね
拡大縮小が絡むとさらに
0771デフォルトの名無しさん2009/12/03(木) 00:34:22
VS2010は想像してたより全然使えそうなレベルで正直びっくりした
0772デフォルトの名無しさん2009/12/03(木) 00:43:52
デジャブかな?
この流れ、何か見たことあるぞ…
0773デフォルトの名無しさん2009/12/03(木) 01:29:31
WPFはVS2010出てからでしょ
WinForms並みの生産性があればいいけどね。
正直、今の状況は手を出しにくい。
0774デフォルトの名無しさん2009/12/03(木) 01:53:17
WinForms並みの生産性っていうけれど、
WinFormsのRAD全開のアプリってめちゃめちゃ保守性悪くないか?
0775デフォルトの名無しさん2009/12/03(木) 02:02:06
保守性は全く悪くないです
0776デフォルトの名無しさん2009/12/03(木) 02:07:17
ポトペタで作ってたら保守性悪いだろうね。
0777デフォルトの名無しさん2009/12/03(木) 02:08:25
VSで作ってる人と、Blendで作ってる人で
生産性の感じ方に違いがあるような気がする
0778デフォルトの名無しさん2009/12/03(木) 02:12:51
サンプルプログラムがネット上で容易に手に入るようになったから、それを元にして作ることは出来るんだけど、
いざ全くゼロから作ろうとすると、全然出来ないことに気づくんだよな(´・ω・`)
0779デフォルトの名無しさん2009/12/03(木) 02:18:20
0から大きな物作るのは大変だよね
俺も3年目にしてやっと一人で100万ステップ以上のソフトを設計実装できるようになったよ…
0780デフォルトの名無しさん2009/12/03(木) 02:20:39
>>776
それ逆
ポトペタで再利用出来るように作らない人程保守性は悪い
0781デフォルトの名無しさん2009/12/03(木) 02:27:25
>>780
再利用性を高くするためにコンポーネントの粒度を小さくすると
今度はポトペタそのものが大変になって、結局
「UI構築用の専用言語くれよ!」になっちゃう。なんだかんだでXAMLは使いやすいよ。
0782デフォルトの名無しさん2009/12/03(木) 02:36:38
正直使いにくいです…
まるで.net出たての頃のようです
著名人のブログみても使いこなせねぇという言葉しか見えない…
0783デフォルトの名無しさん2009/12/03(木) 02:45:46
XPでWPFアプリのフォントが汚いのはどうにかして欲しい
0784デフォルトの名無しさん2009/12/03(木) 02:49:12
HTMLメモ帳で書くような人種にはXAML使いよく見えるかも知れんが
大抵のプログラマはインテリセンスもロクに効かないような言語に用はない
既存コントロールの貧相さを自由度とかいって誤魔化すなと
次の4.0でそこらが解消できなきゃマジオワタ
0785デフォルトの名無しさん2009/12/03(木) 02:53:09
Blendだとインテリセンス効いたりするんだろか。
VSEEしかもってない貧乏人だからなあ。体験版さわってみるかなぁ
0786デフォルトの名無しさん2009/12/03(木) 03:08:18
うにょうにょ動いて凄いなとかバインドって便利だなとまでは思うのだけれど、
こんなコントロールどうやって作るのって所で俺、終了w
0787デフォルトの名無しさん2009/12/03(木) 07:19:58
WPF、XAMLの質問だと回答ないことも多いのに
使えない、って話になると盛り上がるのな、このスレ
0788デフォルトの名無しさん2009/12/03(木) 07:32:34
見た目キャッチーなのに、仕様が初心者キラーだからねえ
0789デフォルトの名無しさん2009/12/03(木) 08:59:21
だねぇ。
WPFプログラミング(XAMLプログラミング)ものすごくしんどい。
0790デフォルトの名無しさん2009/12/03(木) 10:00:17
最近ようやっとXAMLの嬉しさが理解できてきた。
0791デフォルトの名無しさん2009/12/03(木) 10:52:28
なんだかんだいって結局難しいの一言に尽きるような
0792デフォルトの名無しさん2009/12/03(木) 11:29:54
工数増えるのもなんかいやだ
winapi使ってゴリゴリ書いてる時を思い出す
0793デフォルトの名無しさん2009/12/03(木) 15:30:10
ロジックの分離ってのがなんか体感しづらい
XAMLはハードコーディングでやってくのは楽だけどそこから脱却しようとしたら
バインディングだのコマンドだのでわけわからんっす。
0794デフォルトの名無しさん2009/12/03(木) 15:46:20
ノートPCでSynapticsのタッチパッド使ってると
全てのWPFアプリの全てのScrollViewer(を含むListBox, ListView, FlowDocument…)で
タッチパッド隅を使ったスクロールが効かない
外付けマウスのホイールだと全く問題ないんだけど

VS2010だとスクロールできるからWPF4.0じゃ改善されてんのかな?
0795デフォルトの名無しさん2009/12/04(金) 04:08:36
ある程度単純なものは良いんだが、TabControlの実装とか見ると萎える
見た目を整えるのにそれを実現する構成を考えるのが難しく感じるな
0796デフォルトの名無しさん2009/12/04(金) 08:13:50
>795
実装みてないんだが、全部XAMLでやろうとしてるって事?
手続き型で書くところを宣言的に書こうとしてる故の無理加減?
0797デフォルトの名無しさん2009/12/04(金) 09:57:39
WPF toolkitのChartの凡例を非表示にするにはどうしたらいいんでしょ?
0798デフォルトの名無しさん2009/12/04(金) 11:00:53
できた

<charting:Chart.LegendStyle>
  <Style TargetType="datavis:Legend">
  <Setter Property="Width" Value="0"/>
  <Setter Property="Height" Value="0"/>
 </Style>
</charting:Chart.LegendStyle>
0799デフォルトの名無しさん2009/12/04(金) 12:57:18
WPFで点を打つのはどうやればいい?
0800デフォルトの名無しさん2009/12/04(金) 13:03:42
点はベクタ的には幅高さが0だから見えない
代わりに1x1のRectangleでも置けば
0801デフォルトの名無しさん2009/12/04(金) 14:21:56
Silverlightの名前をWPF/Eに戻してくれないかなあ
ググるのに二度手間
0802デフォルトの名無しさん2009/12/04(金) 14:39:59
出てくる情報がまぎらわしくなるだけだろ
0803デフォルトの名無しさん2009/12/04(金) 15:12:04
WPFの情報少ないからSilverlight参考にしてますが何か問題でも?
0804デフォルトの名無しさん2009/12/04(金) 15:38:45
いっそ全部Silverlightで・・・
0805デフォルトの名無しさん2009/12/04(金) 16:38:56
ttp://msdn.microsoft.com/ja-jp/library/aa969768.aspx
ここ読んでも論理フォーカスがさっぱり理解できないんだけど、
どういうもんなんですかこれ?
0806デフォルトの名無しさん2009/12/04(金) 16:47:12
左右をパネルで分割したとする それぞれいくつかテキストボックスなどを含む
でこの左右のパネルをそれぞれフォーカスのスコープを持たせた
左のパネルの上から三つ目のテキストボックスにフォーカスがあった
でそこから右のパネルの適当なテキストボックスにフォーカスを移動させた
その後右のパネルから左のパネルにフォーカスが移ってきたとき
左のパネルの論理フォーカスは上から三つ目のテキストボックスに残っているので
このテキストボックスにフォーカスが当たる

とこんな感じ
0807デフォルトの名無しさん2009/12/04(金) 17:03:19
日本語で頼む
0808デフォルトの名無しさん2009/12/04(金) 17:05:59
左右を羽目板で分割したとする それぞれいくつかの文書入力箱などを含む

飽きた
0809デフォルトの名無しさん2009/12/04(金) 17:07:19
>>806
なるほど。
>キーボード フォーカスを持つ要素は論理フォーカスも持ちますが、
>論理フォーカスを持つ要素は必ずしもキーボード フォーカスを持ちません。
これは論理フォーカスを持っててもキーボードフォーカスを今持ってるとは限らんよ。ってことで、
キーボードフォーカスを持てない要素でも論理フォーカスを持ってることもあるよ。
ってことじゃないんですね。
0810デフォルトの名無しさん2009/12/04(金) 17:20:11
ゲシュタルト崩壊させる気かw
0811デフォルトの名無しさん2009/12/05(土) 00:22:38
>>806
説明うまいな
0812デフォルトの名無しさん2009/12/05(土) 01:00:06
「Expression Blend Preview for .NET 4」って
Blend3のSPなのか?Blend4なのか?
http://blogs.msdn.com/expression/

そりゃMSDNサブスクリプションの人はいいけどさ…
こうポンポンバージョンアップされるとホビープログラマにはきつい
0813デフォルトの名無しさん2009/12/05(土) 02:13:00
>>812
Blend3だろ。でてそんなに経ってないし
0814デフォルトの名無しさん2009/12/05(土) 08:29:26
>>811
エェー
>でこの左右のパネルをそれぞれフォーカスのスコープを持たせた
何を言ってるのか全然解らないんですけど
0815デフォルトの名無しさん2009/12/05(土) 10:49:39
>>813
http://pc12.2ch.net/test/read.cgi/tech/1244812356/988
0816デフォルトの名無しさん2009/12/05(土) 20:31:38
Silverlightのほうが盛り上がってる
0817デフォルトの名無しさん2009/12/06(日) 01:37:18
VSTO で取得したオブジェクトを Binding すると Outlook が終了しないね。
WPF のバグなんだろか。VS2010 で直ることを祈る。
0818デフォルトの名無しさん2009/12/06(日) 02:09:35
メモリリークしてんじゃね?WPF関係ない気がする。
0819デフォルトの名無しさん2009/12/06(日) 02:12:42
これじゃないかと
ttp://social.msdn.microsoft.com/Forums/ja-JP/vbgeneralja/thread/eea6b862-e0fd-4cfb-a5d1-5be7c01ffa43
08208172009/12/07(月) 00:04:49
>>818
メモリリークってどの部分の?
DataContext に代入する1行をコメントアウトすると、outlook が終了するんだよ。
だから、Wpf 内部の Binding の処理を行ってる部分が間接参照を作ってて
そこを解放してないんじゃないかと予想してるんだが・・・。
まぁ、外れてるかも。

>>819
すまん、それ長くてどこがポイントかよくわからない。
質問者も質問して返事がないので、解決したのかどうかもわからんし。
Quit() はしてるし、プログラム内で参照してる部分に null を代入して
GC.Collect() もやってみた。でも、終了しないんだよなぁ。
0821デフォルトの名無しさん2009/12/07(月) 00:08:25
ReleaseComObject()
0822デフォルトの名無しさん2009/12/07(月) 00:16:49
何をバインディングしてるか知らんけど、OfficeアプリのCOM参照って明示的に
開放してやらんとメモリリークするんじゃなかったっけ?
かつてC#でExcelのオートメーション使ったアプリ作ったとき、取得したCOMオブジェクト
(Sheetとか)を全部自前で開放してやらんとExcelのゴーストプロセスが残って
「なんじゃこの糞仕様は」と思った覚えが。
0823デフォルトの名無しさん2009/12/07(月) 00:33:47
説明書に「使用後はリセットボタンを押すこと」って書いてないか確認しる
08248172009/12/07(月) 01:32:27
>>821
VSTO って ReleaseComObject しなくていいんじゃないの?
と思ってググってみると、
ttp://blogs.msdn.com/eric_carter/archive/2004/04/07/108898.aspx
> you typically don't ever have to use ReleaseCOMObject
って書いてあるな。英語だからよくわからんが、
Binding したら ReleaseCOMObject が必要になるのかな?
あとでちょっと試してみる。

>>822
それをいちいちしなくて良くするために VSTO があるらしいんだが・・・。
上のブログに "typically" ってあるのが気になる。暇なときにゆっくり読んでみる。

>>823
Office のマニュアルにも VS のマニュアルにもそんなことは書いてないみたいだ。
自作アプリのマニュアルにその一文を加えるかは検討してみる。
0825デフォルトの名無しさん2009/12/07(月) 02:05:41
> それをいちいちしなくて良くするために VSTO があるらしいんだが・・・。
ほんとう?
0826デフォルトの名無しさん2009/12/07(月) 09:43:36
Binding の Converter にパラメータを複数渡す方法ってある?
0827デフォルトの名無しさん2009/12/07(月) 13:14:26
Tuple
0828デフォルトの名無しさん2009/12/07(月) 14:40:58
MultiBindingとIMultiValueConverter
0829デフォルトの名無しさん2009/12/08(火) 01:55:45
ConverterParameterのことだろ
0830デフォルトの名無しさん2009/12/11(金) 02:49:04
WPFでいうメタデータってなんですか?
0831デフォルトの名無しさん2009/12/11(金) 02:58:43
色々あると思うが
どういう文脈の話よ
0832デフォルトの名無しさん2009/12/11(金) 13:21:45
VS2005ProとWinSDK環境なんだですけどWPFアプリプロジェクトのビルドはMSBUILDじゃないとダメですか?
0833デフォルトの名無しさん2009/12/11(金) 19:13:39
>>831
カスタムコントロールをVSで作ったときに、そのクラスの
静的コンストラクタ内にDefaultStyleKeyProperty.OverrideMetadata(...)
なんてのがあって、それについて調べてるんです。
0834デフォルトの名無しさん2009/12/12(土) 01:09:09
>>832
多分そう
xamlのコンパイルとかはmsbuildの担当っぽい

>>833
質問が漠然としてて要領を得ない
取り敢えずOverrideMetadataの引数に渡す型とそのメンバをMSDNで調べてみたら?
もちろんその派生クラスのもな
0835デフォルトの名無しさん2009/12/12(土) 13:21:00
FrameworkPropertyMetadataでぐぐれ。
0836デフォルトの名無しさん2009/12/12(土) 20:40:14
ttp://msdn.microsoft.com/ja-jp/library/ms771362%28VS.80%29.aspx
ここにあるサンプルをVS2008EEでビルドするとエラーになるんですが、原因と解決策を教えてもらえませんか?

エラー 1 ソース ファイル 'wpfcalculator\csharp\Properties\Resources.Designer.cs' を開くことができませんでした ('エラーを特定できません ')。 wpfcalculator2
エラー 2 ソース ファイル 'wpfcalculator\csharp\Properties\Settings.Designer.cs' を開くことができませんでした ('エラーを特定できません ')。 wpfcalculator2
警告 3 ファイル 'Properties\Resources.resx' を処理中に、カスタム ツール 'ResXFileCodeGenerator' が失敗しました。
警告 4 ファイル 'Properties\Settings.settings' を処理中に、カスタム ツール 'SettingsSingleFileGenerator' が失敗しました。
0837デフォルトの名無しさん2009/12/13(日) 04:36:29
プロジェクトがバグってるから作り直せ

デザイナで開いて保存すれば*.designer.csは作成されるけど、それが解決しても別のエラーが出るし
0838デフォルトの名無しさん2009/12/13(日) 09:44:08
>>837
レス、ありがとうございます。
プロジェクトを作り直してみます。

MS公式のサンプルなのになあ・・・
0839デフォルトの名無しさん2009/12/14(月) 17:30:35
公式サンプルはWinSDKのプロンプトでmsbuildのやつじゃないか?
0840デフォルトの名無しさん2009/12/14(月) 18:00:32
msbuildでも駄目だったぜ
まあ、MSDNのサンプルなんて「大体こんな感じ」というものだから
0841デフォルトの名無しさん2009/12/14(月) 19:46:50
wpfcalculator2.csprojが壊れているというか別物が入ってる。
AvalonCalculator2とか初期の開発コードが残ってるし、
バージョン管理に失敗して古いソースをかぶせてしまった感じ。
VS2008で新しくプロジェクトを作ったほうが早い。
0842デフォルトの名無しさん2009/12/14(月) 19:58:07
WPFアプリケーションをWPFCalculatorの名称で新規作成してそのまま保存して終了。
App,xaml
App.xaml.cs
Window1.xaml
Window1.xaml
を上書き。
mytextbox.cs
appicon,ico
をコピーして既存の項目の追加。
リソースは使ってないのでProperties\の下はそのままでいい。

以下はオプション。省略してもいい。
Properties\AssemblyInfo.csだけProperties\にコピー。
プロジェクトのプロパティで対象のフレームワークを3.0に設定。
アイコンとマニフェストでアイコンをappicon.icoに設定。
08438362009/12/15(火) 10:56:01
>>842
詳しい情報ありがとうございます。
その通りにやってちゃんとビルドできました。
0844デフォルトの名無しさん2009/12/15(火) 17:12:56
マイクロソフトのGUIはこれからこれで行くらしい。ぐらいの知識でちょっと調べてみようと思うんだけど、
WPFアプリで帳票とかの印刷しようとするとどうすればいいか説明している本とかないでしょうか。
0845デフォルトの名無しさん2009/12/15(火) 17:40:49
>>844
オライリーかな。
0846デフォルトの名無しさん2009/12/15(火) 17:45:03
洋書はきっついなぁ
オライリーは早く和訳してくれないかな
0847デフォルトの名無しさん2009/12/15(火) 18:49:51
すいません。教えてください。
WPFにSystem.Windows.Forms.Screen.AllScreensのようなモニタ情報をすべて取得できるヤツってありますか?
SystemParametersにプライマリモニタの情報を取得できるところまでは調べたのですが、モニタ情報を一覧で取得する方法がわかりません・・・

0848デフォルトの名無しさん2009/12/15(火) 20:54:41
>>846
上カルビ一皿で3ページ訳してあげよう
0849デフォルトの名無しさん2009/12/15(火) 23:26:32
>>847
ないのでFormsを使ってるよ
0850デフォルトの名無しさん2009/12/16(水) 00:06:35
マルチモニタでどうなるのか知らないけど、WMIのWin32_DesktopMonitorとかは?
0851デフォルトの名無しさん2009/12/16(水) 00:35:48
WinFormsのアセンブリ参照を追加したほうが楽じゃん
0852デフォルトの名無しさん2009/12/16(水) 01:43:41
下でやってること同じ?だしな
0853デフォルトの名無しさん2009/12/16(水) 04:08:01
FlowDocumentの表現力が一見高いように見えて
実はむちゃくちゃレイアウトの自由度が低くて泣きそうになる
かといってInlineUIContainerでGridとかBorderとかTextBlockとか入れちゃうと
「範囲選択してテキストをコピー」できなくなるし…
0854デフォルトの名無しさん2009/12/16(水) 14:49:47
>>847 です。

>>849
>>851
おとなしくアセンブリ参照をいれてFormsを使います。
WPFのクラスでなにかあるのかなーと思いいろいろとサイトをあたって探してみましたが、
めんどくさくなった(ってか無いようですので)ので教えて頂いたようにFormsで取得するようにします。

プライマリ情報はSystemParametersってやつにもってるのになぁ・・・
08558172009/12/16(水) 22:32:48
MVVM なアプリを作っています。
ViewModel の処理で時間がかかるため Dispatcher を使用したいのですが、
どうしたら使用すべき Dispatcher を取得できるでしょうか?

現在は App.Current.MainWindow.Dispatcher を使用してるんですが、
これだと、MainWindows 固定なんで汎用的な方法があれば知りたいなと
思いまして。
0856デフォルトの名無しさん2009/12/16(水) 22:37:35
そもそもVMに時間がかかる処理を記述してるのがおかしいのでは。
普通はありえないと思うんだけど。
0857デフォルトの名無しさん2009/12/16(水) 23:18:31
VMはAdapterみたいな処理しかしない筈だよね
0858YSDYSO2009/12/16(水) 23:46:41
Main(GUI)スレッドのDispatcherなら
 Application.Current.Dispatcher
現在のスレッドのなら
 Dispatcher.CurrentDispatcher.
どちらも静的なクラスメソッド
08598552009/12/17(木) 00:03:29
>>858
ありがとう。
Application.Dispatcher = GUI のスレッドだったのか。

>>856
>>857
え?そうなの?
時間のかかる処理は、Model が持つべきなの?
Model ≒ データ(今作ってるアプリではシリアライズの対象となる部分)
View = UI
ViewModel = 上記以外の部分(データをごにょごにょするのはここ)
と割り振ってたんだけど、Model の認識が狭すぎた?

そうすると、
1.Model 内で時間のかかる処理を Thread 作って実行
2.処理終わったら ViewModel に通知
3.ViewModel 内で Dispatcher 使って Action 起動
4.その Action 内で OnPropertyChanged 使って View に通知
って処理する必要があるってこと?

よかったら後学のため教えてください。
0860デフォルトの名無しさん2009/12/17(木) 00:20:44
ぶっちゃけ入力画面ってBind使うとVとVMVにならね?
入力された蓄積されたデータ公開に対してはMVVMになるけどさ
0861デフォルトの名無しさん2009/12/17(木) 00:37:04
>>859
そう。
0862デフォルトの名無しさん2009/12/17(木) 01:05:04
>>859
ModelはフロントエンドのUIやスクリプト操作から独立したデータ操作単位でなくちゃ。
例えば、「発注」という操作は、それが時間がかかろうがどうだろうが、それを利用する
WPFのアプリからでも、SilverlightのWebアプリからでも、WebService経由でも
同じインタフェースで呼び出せる独立クラスにしましょ、という考え方ね。
0863デフォルトの名無しさん2009/12/17(木) 07:41:19
>>859
そういう流れか

WPF Line of Business – Introduction
This post is targeted to those that are new to MVVM or don’t have a full understanding of WPF LOB layers.
http://karlshifflett.wordpress.com/mvvm/wpf-line-of-business-introduction/

WPF Starter Ki
http://wpfstarterkit.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=35301

上がMSのプログラムマネージャ、下がMSのコンサルね
08648552009/12/17(木) 23:52:53
>>861
そうかぁ。最初はそういう認識でやってたんだけど、
ViewModel が、
 public object Value{
  get{ return _model.Value; }
  set{ _model.Value = value; }
 }
みたいな記述ばかりになってしまって、
「あれ、俺間違ってる?」
と思って 859 の割り振りにしたんだけど、
ViewModel ≒ Adopter のつもりでいいのね。

>>862
その考え方って汎用な Model と、固有の特性を持つ ViewModel、
両者をつなぐ Adopter として ViewModel って感じ?
でも、そういわれてみると、今作ってるプログラムは Windows プラットフォーム
にべったり依存してて、WPF でしか動かないから MVVM 化する意義が
ない気がしてきた。やばいぞ揺らいできた。

>>863
教えていただいて恐縮だが英語は苦手なので、
あとでゆっくり読む。
08658552009/12/18(金) 00:16:48
連投スマソだが、なんで揺らいじゃうかというと、
V-VM 間は ICommand & Binding がそこそこ手間無しでうまくつなげられるんだが、
VM-M 間はめんどくさくね?

VM->M 方向は依存してていいだろうから、普通にメソッド呼び出しでOKだと思うけど、
M->VM 方向はやっぱイベント?イベントって、EventArgs のサブクラス作って、
delegate 宣言して、event 宣言してって結構面倒なのよね。
面倒でもこれが王道?これをやるべき?

手を抜くには、INotifyPropertyChanged を実装した Model にするとか、
イベント代わりに Action 使うとかできるかとは思うけど、
そうすると「汎用性ないのに、VM と M 分ける意味ある?」
って気がしてしまう。

それとも INotifyPropertyChanged を実装した Model は「割と普通」
だったりする?それとも俺が知らないだけで楽にイベント実装する方法が
あるの?
そのあたりがわかんね。

質問ばかりですみません。
0866デフォルトの名無しさん2009/12/18(金) 00:29:40
結局、依存関係プロパティの実装に終始するはめになるのが
VM-M 間の接続だと思ってる。

なんだか楽してんだか苦労してんだかわかんなくなる瞬間。
08678552009/12/18(金) 00:39:06
ごめん、 863 の "WPF Line of Business ? Introduction" のモデルのとこだけ
あわてて読んでみた。Model も INotifyProperyChanged でいいんだ?
せっかく教えてくれたのに読むのあと回しにしてすまん。

おかげさまで、M-VM 間もそんなに手間と思わずに分割可能になりました。

残った疑問は、ViewModel ≒ Adopter だとすると、新規に作るプログラムで Model
を分離したとしても再利用できなさそうな場合に ViewModel と Model を分離する
意義があるか?ってことです。

Model を分離しておけば、WPF が廃れても次のUIに適合させやすいであろう
くらいは想像できますが、それ以外になにかありますか?

>>860 と同じ考え方になってます)
0868デフォルトの名無しさん2009/12/18(金) 00:47:06
個人的な意見というか勘だが、
いわゆるイベントで通知するときは、用途によって通知したい情報が異なるのだから
おそらくEventArgsあたりは、継承ではなくGenericsに似た方式が望ましいのだと思う。

VとVMは悩ましいが、VMあたりは言語表現よりはXAMLで記述する範囲がスッキリ収まると思う。
0869デフォルトの名無しさん2009/12/18(金) 01:58:26
こんなのを見つけた。特にModel=databaseをラップしたものと勘違いしてる人は多い気がする。
* Model (database)
- no, Model is the OO representation of your business entities, including the data that defines them.
to say 'database' gives the wrong impression. Database is just a repository to store relational data.

* Controller (business logic)
- no, Controller is the intermediary between your Model and your View. Controller is the manager
which determines what goes on in your website, but the business logic is the definition of
what the system is about.

* View (what you see + view logic)
- absolutely.

Model-Controller(ViewMode) で分離するのは使い回しよりもModelのユニットテストに重要だと思う。
小規模なものでテストに問題ないのであれば、コピペコードだらけにしてまで無理して分離せんでも
いいんじゃないかな。結局ソフトの品質を維持するための設計技法にすぎないのだから。
0870デフォルトの名無しさん2009/12/18(金) 02:10:01
結局のところ、Modelだけでアプリケーションのエンジンの部分は完結していなければならない、
ということだね。
0871デフォルトの名無しさん2009/12/18(金) 10:48:33
操作がともなってないただのラッパーみたいなモデル作っちゃうのをドメインモデル貧血症っていうんだそうな

ドメインモデル貧血症
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?AnemicDomainModel

でもあえてこれで行くって宣言してる人も結構いるんだよね
スケーラビリティのある設計なんてのは夢だと思っとけってことかねえ
0872デフォルトの名無しさん2009/12/18(金) 10:59:33
ドメインモデル貧血症はまたちょーっと違う意味のような気がしないでもない。

あと VM と M の分離は再利用目的っていより仕様の分離、テストのしやすさが目的だと思ったけど。
0873デフォルトの名無しさん2009/12/18(金) 11:11:21
「ビジネスロジックの状態管理」と「アプリケーションロジックの状態管理」が
ちゃんと整理されてなくてごっちゃになっていると、ロジック全部をModelかViewModelに
押し込んで、もう片方を単なるラッパにして形だけ繕っているようなものを作りがち。

アプリケーションロジックが、本質的にビジネスロジックのサービスを1個か2個呼ぶ
程度で済んでしまうことも結構あるから、そういうときは自信もってViewModelを
薄い層にすればいいんじゃない?
0874デフォルトの名無しさん2009/12/18(金) 12:51:10
設計に王道なし
0875デフォルトの名無しさん2009/12/18(金) 16:52:25
VMだけ管理すればいいようにするのがMVVMなの?
0876デフォルトの名無しさん2009/12/18(金) 17:24:48
MVVMは実際どうなんだろうね
RIA Servicesはn層アプリを2層アプリに近づけようとしている
そんな流れがくるんじゃないかと思ったりもする
0877デフォルトの名無しさん2009/12/18(金) 20:17:42
MVVMの定義や例が知りたいならググったサイトを熟読した方がいいような。
2chだとどうしても断片的な解説で終りがちだし。
0878デフォルトの名無しさん2009/12/18(金) 21:02:11
俺もRIA ServicesでMVVMをどうするかが気になっているんだけど。
まあ、VMは作ると思うけど。
0879デフォルトの名無しさん2009/12/18(金) 23:24:15
VSはDSL近辺で頑張ってもらいたいかな
0880デフォルトの名無しさん2009/12/18(金) 23:27:01
通常は平面でマウスホバーで膨らむボタンってどうやって作るの?
クラシックテーマのメニューみたいな感じ
0881デフォルトの名無しさん2009/12/18(金) 23:29:26
テンプレート書く
0882デフォルトの名無しさん2009/12/19(土) 11:56:39
ぶっちゃけIValueConverterを駆使すればVMいらない気がするけど。
まぁレイヤーを綺麗にする意味では良い。
0883デフォルトの名無しさん2009/12/19(土) 12:26:43
View周りの状態遷移などの管理はVMでやるしかないんじゃないか?

IValueConverterは値を変換できない場合の扱いが問題になる。
V-VM-Mで、Vの値を型変換してMにセットできない場合、VMはどちらの値に同期すべきか?
V-VMの同期ができないとVの値がVMの値に勝手に変わることが発生しうる(大抵それはうれしくないだろう)。
V-VMは常に同期し、VM-Mは同期は保証しないならこれは防げる。
しかし、IValueConverterで例外が発生しうるとV-VMの同期は保証できない。
0884デフォルトの名無しさん2009/12/19(土) 23:39:16
下記のコードで TreeViewItem の背景が Aqua にならない
理由だれか教えてください。

<TreeView>
  <TreeView.ItemTemplate>
    <DataTemplate>
      <StackPanel>
        <TextBlock Text="{Binding Header}" Background="Aqua"></TextBlock>
      </StackPanel>
    </DataTemplate>
  </TreeView.ItemTemplate>
  <TreeViewItem Header="Foo" IsExpanded="True">
    <TreeViewItem Header="Bar">
    </TreeViewItem>
    <TreeViewItem Header="Baz">
    </TreeViewItem>
  </TreeViewItem>
</TreeView>
0885デフォルトの名無しさん2009/12/19(土) 23:50:32
ItemTemplateはItemsSourceを使って自動的に作成されるTreeViewItemに対して適用されるテンプレート。
明示的に作ったTreeViewItemには関係ない。
0886デフォルトの名無しさん2009/12/20(日) 04:38:42
WMPのプレイビューのリストウィンドウ領域(曲名と再生時間の一覧が表示されてる奴)
みたいな感じ(の曲名が長い場合のパターン)っていえば分かりやすいでしょうか、
以下のようなListBoxItemを作りたいと思います。
・左詰で可変長の文字列を表示するTextBlock
・右詰で固定長の文字列を表示するTextBlock
・両方を表示しきれない場合、左のTextBlockの末尾を省略表示する

<DataTemplate>
  <Grid>
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="*"/>
      <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <TextBlock Grid.Column="0" HorizontalAlignment="Left"
        Text="{Binding 可変長}" TextTrimming="CharacterEllipsis"/>
    <TextBlock Grid.Column="1" HorizontalAlignment="Right"
        Text="{Binding 固定長}"/>
  </Grid>
</DataTemplate>

幅固定ならこれで左側のTextBlockにWidthを設定すれば実現できるんですが、
WMPのと同様にGridSplitterでListBoxの幅を可変にしたいのです。
なにかうまい方法はないでしょうか?
0887デフォルトの名無しさん2009/12/20(日) 04:53:50
あ、ちなみにこれも書いてます
<ListBox.ItemContainerStyle>
  <Style TargetType="{x:Type ListBoxItem}">
    <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
  </Style>
</ListBox.ItemContainerStyle>
0888デフォルトの名無しさん2009/12/21(月) 11:37:41
何が出来ないと言ってるのかよくわからない

http://msdn.microsoft.com/ja-jp/bb546954.aspx
0889デフォルトの名無しさん2009/12/21(月) 11:51:08
左側のTextBlockと右側のTextBlockの幅の合計がListBoxの幅を超えたとき、
ListBoxに横スクロールバーが出てしまうんですよ。
そして右側TextBlockがスクロール先にはみ出てしまう。

そうじゃなくて、幅合計がListBoxを超えたとき
左側TextBlockを末尾省略(TextTrimming="CharacterEllipsis")して
ListBoxの横スクロールバーは出さないようにしたいんです。
0890デフォルトの名無しさん2009/12/21(月) 12:47:25
<Grid Width="{Binding ListBoxのWidth}">?
0891デフォルトの名無しさん2009/12/21(月) 13:07:06
<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled">
で出来たわ
0892デフォルトの名無しさん2009/12/21(月) 13:19:08
>>890
レイアウトに異様に時間が掛かった上に変なレイアウトになりました…

>>891
おおすげー! ほんとだ!
添付プロパティとして使えるとは思わなかったです…

おかげさまで解決です、どうも皆さんありがとうございました。
0893デフォルトの名無しさん2009/12/22(火) 04:05:47
なんでそこでScrollViewerを参照できるのかってのがまだ良く分かってないんだよな俺
0894デフォルトの名無しさん2009/12/22(火) 04:50:56
>>893
ScrollViewer.SetHorizontalScrollBarVisibilityがあるから
0895デフォルトの名無しさん2009/12/22(火) 05:43:50
まぁそうなんだが、暇なんでサンプル

<Button Content="Test" ScrollViewer.VerticalScrollBarVisibility="Visible">
 <Button.Template>
  <ControlTemplate TargetType="{x:Type Button}">
   <Grid>
    <ScrollViewer>
     <ScrollViewer>
      <ContentPresenter/>
     </ScrollViewer>
    </ScrollViewer>
   </Grid>
  </ControlTemplate>
 </Button.Template>
</Button>
0896デフォルトの名無しさん2009/12/22(火) 05:47:37
VerticalScrollBarVisibilityをいろいろ変えてみると面白いかもね
0897デフォルトの名無しさん2009/12/22(火) 06:40:11
読み取り時のRenderSize.WidthとActualWidthの区別がわけわかめ
0898デフォルトの名無しさん2009/12/22(火) 07:05:34
FrameworkElement.ActualWidthの実装
public double ActualWidth {
get {
return base.RenderSize.Width;
}
}
0899デフォルトの名無しさん2009/12/22(火) 14:53:24
>>889-895の様な事はMSDNのどこら辺に書いてあるんでしょうか?
0900デフォルトの名無しさん2009/12/22(火) 18:57:35
依存関係プロパティのとこ
09018992009/12/22(火) 19:55:38
>>900
ttp://msdn.microsoft.com/ja-jp/library/ms752914.aspx
ListBoxとScrollViewerの関係が書いてないんですけど
何か見落としてますかね?
0902デフォルトの名無しさん2009/12/22(火) 22:40:34
あ、もっと具体的なことかな?

ListBox ControlTemplate の例
http://msdn.microsoft.com/ja-jp/library/ms754242(VS.80).aspx
0903デフォルトの名無しさん2009/12/22(火) 23:09:24
結局のところ、xamlって必要だったのかね、とふと思うときがある。
xamlだけでなるべくいろんなことが出来るようにするあまり、xaml自体の仕様が
汚くてわかりにくい上、わかりやすかったはずの.Net Fraworkにもキモイしくみが
ごちゃごちゃと持ち込まれ過ぎて、system.windowsの体系が複雑怪奇な収拾の付
かないようなもんになってしまったように思えるんだが。
一番キモイのがレイアウトの仕様。デバイスコンテキスト非依存という方向性は
いいとして、なんであんなにわかりにくく使いづらい、設計なんだ?
0904デフォルトの名無しさん2009/12/22(火) 23:16:57
そうだな
xamlでかくのはPanelにぺたぺた貼りつけるところまででいい
0905デフォルトの名無しさん2009/12/22(火) 23:21:30
できるだけでしなくてもいいのがいいところ
0906デフォルトの名無しさん2009/12/22(火) 23:22:31
さらに言えば、Blendみたいなツールはもっと普及すべきで
XAMLをメモ帳でゴリゴリ書く文化が続いていたのが問題
こういうカオスな実装は、見る必要がある時だけ見るべきだ
0907デフォルトの名無しさん2009/12/22(火) 23:28:06
Blendってそんなに便利なの?
0908デフォルトの名無しさん2009/12/22(火) 23:29:52
>>907
PNGエクスポート機能がほしいくらい便利よ
0909デフォルトの名無しさん2009/12/23(水) 00:05:41
>>902
いろいろ実験してみたんだけど

<ContentControl ScrollViewer.VerticalScrollBarVisibility="Disabled">
 <ContentControl.Template>
  <ControlTemplate>
   <ScrollViewer>
    <TextBlock Text="aaa" />
   </ScrollViewer>
  </ControlTemplate>
 </ContentControl.Template>
</ContentControl>

<ContentControl ScrollViewer.VerticalScrollBarVisibility="Disabled">
 <ScrollViewer>
  <TextBlock Text="aaa" />
 </ScrollViewer>
</ContentControl>

前者だとScrollViewer.VerticalScrollBarVisibilityが反映されて
後者だと反映されないのはなんでだろう?
ttp://msdn.microsoft.com/ja-jp/library/ms753197.aspx
これとは違う仕組みなの?
0910デフォルトの名無しさん2009/12/23(水) 00:46:40
BlendでFormsみたいにTabIndexを一括で指定する機能があればいいのにと思う
0911デフォルトの名無しさん2009/12/23(水) 03:27:20
他人の書いたXAMLってめちゃくちゃ読みにくいよな…
元々論理的な構造を表すものではないし、書き方によっては
「処理の途中までXAMLで実現したけど後はViewModelに任せています」とか、
「ViewModelがこの型で返すから、えーっとデータテンプレートを探して…どこだ?」とか
「ココのデータコンテキストは四階層上のアレ?あ、二階層上で変わっている」とか、もうねw。

どうすりゃ他人が読めるXAMLをかけるんだろうか?設計ドキュメントとかどうすればいいんだろうか?
0912デフォルトの名無しさん2009/12/23(水) 10:43:31
まず//を使えるようにすることだな
場所によってはコメント入れにくくて作業効率ダウン
0913デフォルトの名無しさん2009/12/23(水) 13:52:26
<!-- -->これは使いにくい
0914デフォルトの名無しさん2009/12/23(水) 14:09:02
まあ、xamlは従来のForm1.Designer.cs部をわざわざXML形式で表現したような
もんなんでしょ?
window1.InitializeComponent()の「定義に移動」すると、window1.g.i.csってファイルが
生成されてるけど、本来これに当たるもんなんだろ。RADツールが面倒見るべきもんであって
テキストでガリガリ書いたりソースをいじったりするべきもんじゃない。

VSがそこら辺をうまく隠蔽してxamlを直接見る必要は殆どないような形にしないと
wpfの普及はありえないと思うんだがなあ。そうなったらそうなったで、なんでわざわざ
UIをXMLで表現する必要があるのかっていう根本的な疑問にブチ当たるけれど…。
0915デフォルトの名無しさん2009/12/23(水) 14:36:03
レイトバインドは楽だけどな
前もリフレクションで似たようなこと出来たけどね
0916デフォルトの名無しさん2009/12/23(水) 14:41:27
もうちょい作業が軽快に出来るなら文句はないよ
VSにしろBlendにしろもっさりしすぎ
0917デフォルトの名無しさん2009/12/23(水) 14:47:37
>>883
MにIEditableObjectを実装するという手もあるけど。
まぁ、VMで実装したほうがよいinterfaceではあるな。
0918デフォルトの名無しさん2009/12/23(水) 14:54:06
>>914
そう、本来は隠蔽すべきところ。XAML導入の本来の目的はデザイナとプログラマの仕事の分離だから。
プログラマが決めたViewModelとデザイナが決めたViewがあればくっつけばbindで動く。

…はずだった。MSはその予定だった。
プログラマにとっては部品がないとか、機能が足りないといった問題を解決するため
頭が痛くなるようなXAML構造をひたすらテキストエディタで書くハメになり、
デザイナはその難解なXAMLを理解し"動かしても正しく働く"スタイルを考えなきゃならない。

結局は全く分離できず両者の作業量だけが増える。まさに、誰得
0919デフォルトの名無しさん2009/12/23(水) 15:06:23
XAMLの複雑さなんてHTML+CSSと比べればかわいいものだと思うが。WPFユーザーはHTML書けない人ばかり?
UserControlやTemplateのおかげで生のHTMLより部品化しやすい(SSIなんて誰もつかわん)し。
ちゃんとデザイン上の細部をStyleに切り出していればUI構造はすっきり見通しの良い状態を維持できるぞ。

>>914
>UIをXMLで表現する必要があるのかっていう根本的な疑問
むしろ条件分岐やループなどのロジックが不要なUI初期化を、あえてコードで表現することのほうが問題かと。
たとえば「すべてのFormのフォントサイズの初期値を一括変換するツールがほしい」なんて言われたときに
C#のコードをparseして書き換えるのとXAMLをparseして書き換えるのではどちらが楽か。
0920デフォルトの名無しさん2009/12/23(水) 15:14:03
中の人乙
0921デフォルトの名無しさん2009/12/23(水) 15:28:22
> C#のコードをparseして書き換えるのとXAMLをparseして書き換えるのではどちらが楽か。

どっちが楽かなんてにたようなもんだろ。そもそもソースをパースして書き換えるなんて
バカなことしてる時点でアウト。何十枚も画面があるのにすべての画面をwindowから直接
派生して作るなら設計がアホ。きちんとした基底クラスを作ってそこから派生させれば
別にどうって事ないだろ。
0922デフォルトの名無しさん2009/12/23(水) 15:34:42
>>921
で、例外的に「この画面のフォントだけは」とかいう要件が出てきて・・・
そこで初めてUIの分離が必要ってはなしになるんだろ
先祖帰りしてどうする
0923デフォルトの名無しさん2009/12/23(水) 15:38:58
ぶっちゃけHTML+CSSのほうがノウハウあるから楽勝
XAMLやってるとMSDNをフル印刷したくなる衝動に駆られていやになるわ
0924デフォルトの名無しさん2009/12/23(水) 15:50:14
CSSならVS2008の手厚い支援があるだろが
周辺機能が足りてないからXAMLは誰得だっつーてるのに何言ってんだか
0925デフォルトの名無しさん2009/12/23(水) 15:53:08
blendでいいじゃん
0926デフォルトの名無しさん2009/12/23(水) 16:03:12
誰得ちゃんはみんなメモ帳使ってコーディングしてると思っちゃったのか
0927デフォルトの名無しさん2009/12/23(水) 16:19:58
>>921
XAMLをいじるツールとC#をいじるツール、どちらが作りやすいかという話なんだが似たようなものというのか。
C#のコードを操作できなくてもXMLのDOMを操作できる人間は見渡せば周りにいくらでもいるが。

そもそもツールの作りやすさの話をしているのに、いきなり継承にまで話が飛ぶのも変だし。
そういう用途に継承を使うのも気に食わんが。。

アドホックに解決するのは悪いことじゃないし
他人が作ったひどいアプリを保守することもあるんだから、選択肢は多いほうがいい。
「きちんとした基底クラスから派生しないなんて設計がアホ」と歯ぎしりすることもなく
となりのPython使いを捕まえて「昼飯おごるからXMLいじるちょっとしたコード書いてくれ」と言える。
0928デフォルトの名無しさん2009/12/23(水) 16:24:13
XAMLはXMLでなくて独自の記法を導入しても良かったかもしれないね。
javaFXなど最近ではそういう流れもある。
0929デフォルトの名無しさん2009/12/23(水) 16:34:39
> 例外的に「この画面のフォントだけは」

それだけなら、デフォルトフォントを帰るのになんの苦労もいるまい。
0930デフォルトの名無しさん2009/12/23(水) 16:36:48
> アドホックに解決するのは悪いことじゃないし
> 他人が作ったひどいアプリを保守することもあるんだから、選択肢は多いほうがいい。
> 「きちんとした基底クラスから派生しないなんて設計がアホ」と歯ぎしりすることもなく
> となりのPython使いを捕まえて「昼飯おごるからXMLいじるちょっとしたコード書いてくれ」と言える。

そういうくだらん目的のためにXAMLって生まれたわけね
0931デフォルトの名無しさん2009/12/23(水) 16:43:00
>>929
「それだけなら」ってわかってる癖にw
0932デフォルトの名無しさん2009/12/23(水) 17:58:37
>>930
XML標準にのっとっているためツールを書きやすいということが「くだらん」とは思わないが。
そもそもUI定義言語をもっていないUIフレームワークのほうが珍しいんじゃない。
古くはWin32のrcから、FirefoxのXUL、Mac OSXのCocoa、GTKのgrade
どちらかというとWinFormsが異色なんだよなぁ。
0933デフォルトの名無しさん2009/12/23(水) 21:29:20
Xamlを理解できないのは自分が悪いんじゃなく
Xamlがいけないのだと言って八つ当たりしてるように見えるな。
まあ実際触り初めの頃は情報量が少なすぎてWpf糞杉とか思ったけど。
0934デフォルトの名無しさん2009/12/23(水) 21:35:22
.NET で生産性が高いのに WPF で泥沼にはまったかんじがするから使うきが失せていくのも事実
>>933 みたいにまじめに勉強したやつが馬鹿を見そうで怖い
0935デフォルトの名無しさん2009/12/23(水) 21:42:56
デザイナーと協業図るような若者は最初っからxamlだろ
別にお前が心配する筋合いじゃない
0936デフォルトの名無しさん2009/12/23(水) 22:19:25
デザインが絡まなければ泥沼ってほどではないと思うけどなぁ
Formsだって凝ったことやろうとすると泥沼とも言える訳だし
0937デフォルトの名無しさん2009/12/23(水) 23:19:28
WinFormsと比べたら糞の固まりから腐葉土の固まりくらいになったと思うよ。
0938デフォルトの名無しさん2009/12/24(木) 00:31:06
いまさらFormsは学びたいと思わんな
0939デフォルトの名無しさん2009/12/24(木) 01:02:12
XAMLを導入して楽になるか?
俺は(ノウハウが足りないという点が解決したとしても)
コードが増えるばかり、問題と手間が増えるばかりで全然だと思うが。
0940デフォルトの名無しさん2009/12/24(木) 01:49:28
そりゃformsベースで考えた仕様を一人で構築すんならxamlなんて弄る必要もないよ
当たり前じゃんそんなの
wpfを活かすつもりで考えてグラフィック要素をxaml以外で受け取って構築するの?
大変そうだね頑張って
0941デフォルトの名無しさん2009/12/24(木) 01:56:10
XAMLに文句を言う人は一度DataTemplateをコードで書いてみるといいよ。笑っちゃうから。
0942デフォルトの名無しさん2009/12/24(木) 02:07:05
Formsで実現できるLook&FeelやエフェクトとWPFじゃ次元が違うから
どっちが楽とか比較がアホらしいわ
0943デフォルトの名無しさん2009/12/24(木) 08:26:24
高次元のエフェクトなんていらん。楽に目的を実現できればそれでいい。
そんな用途もある。
0944デフォルトの名無しさん2009/12/24(木) 09:56:58
その程度なら使い慣れたWinForms使えばいいじゃん。君、馬鹿なの?
0945デフォルトの名無しさん2009/12/24(木) 12:25:26
その程度の目的でもWpfは優位だと思うけどなあ。
0946デフォルトの名無しさん2009/12/24(木) 13:24:09
WinFormsよりはマシだが、もっとうまいやり方があったんじゃないの?って話だろ
0947デフォルトの名無しさん2009/12/24(木) 14:43:40
未来に期待
それともいいアイデアあるの?
0948デフォルトの名無しさん2009/12/24(木) 20:12:14
これ(http://calcium.codeplex.com/)試してみようと思ったんだが、
日本語版のVS2008には対応してないんかな?
インストールしても新規プロジェクトにCalcuim ModuleとCalcium Projectがでないわ。
0949デフォルトの名無しさん2009/12/24(木) 20:36:45
>>948
Video見たけど、何するものかわからんかった
どういうものなの?
0950デフォルトの名無しさん2009/12/24(木) 21:13:37
CAL(Prism)の学習用アプリケーション…だと思ってます。
WPFの複合アプリを作る際のフレームワークと考えていいのかな。
0951デフォルトの名無しさん2009/12/25(金) 22:03:13
WPFって普及してますか?
0952デフォルトの名無しさん2009/12/25(金) 22:50:16
正直してるとはいいがたい。
Silverlightでいいじゃんって気がしてる。
0953デフォルトの名無しさん2009/12/25(金) 22:51:47
Silverlightは同期通信できないから
WPFのほうがはやるよ
0954デフォルトの名無しさん2009/12/25(金) 22:59:39
AJAXも非同期だから、そこを問題にする人は昔より少ないと思う
0955デフォルトの名無しさん2009/12/25(金) 23:05:39
普及の基準はどこらへんなのか
0956デフォルトの名無しさん2009/12/25(金) 23:12:09
vectorの新着とかで適当に選んでDLしたソフトがWPF製かどうかとか。
0957デフォルトの名無しさん2009/12/25(金) 23:15:04
>>954
XHRでは同期通信も可能だぞ
0958デフォルトの名無しさん2009/12/25(金) 23:18:01
あ、そういえば同期もあったな でも処理が止まるからなぁ
0959デフォルトの名無しさん2009/12/25(金) 23:19:06
フォーカス移動に絡めたりするときに非同期しかないと死ねる
0960デフォルトの名無しさん2009/12/25(金) 23:22:44
AIR製のアプリの方がまだ見掛かける気がする。
登場時期の違いってのもあると思うけど。

VS2010が出たらちょっとはかわるのかな。
0961デフォルトの名無しさん2009/12/26(土) 00:16:23
マルチプラットフォームはAdobeの競合技術のほうが進んでる気がするなあ
.NETってLinuxとかMacは実装ちょっと遅れてるでしょ?
なのでAdobeの方選ぶ人は少なくないんだと思う。

俺はWindowsしか使わないから割とどうでもいいんだけどな
0962デフォルトの名無しさん2009/12/26(土) 00:29:03
それをいうならMacやLinuxのFlashもたいがい酷い
0963デフォルトの名無しさん2009/12/26(土) 00:37:41
大概酷いが、まぁ多少不安定なところに目を瞑ればそれなりに使えるからなぁ…
Mono(Moonlight)に比べればまだいいさ。
0964デフォルトの名無しさん2009/12/26(土) 01:01:24
Adobeは普及してるんだが実装がMSより遙かにクソなのがちょっふじこ
0965デフォルトの名無しさん2009/12/26(土) 10:54:41
どうでもいいネタだが、モニターを横に寝かせて縦長にすると(もちろん、表示は270度回転して)
すごく開発がしやすくなった。特にXAMLのデザイナとコードエディタが広くとれるのがいい。
今度買うときは回転式のにしよ。
0966デフォルトの名無しさん2009/12/26(土) 11:56:41
ClearTypeがきれいに出ないじゃん
0967デフォルトの名無しさん2009/12/26(土) 12:07:41
>>965
デュアルモニタでいいじゃん
0968デフォルトの名無しさん2009/12/26(土) 12:09:37
俺はコーディング用には安物液晶しか買わないからチルトしたら見えなくなる
0969デフォルトの名無しさん2009/12/26(土) 12:10:33
XAMLの縦分割のやつって分離できたっけ?
0970デフォルトの名無しさん2009/12/26(土) 13:09:17
WPFは起動の遅さがネックだよなぁ。
0971デフォルトの名無しさん2009/12/26(土) 13:14:19
Formsよりはましじゃないか?
0972デフォルトの名無しさん2009/12/26(土) 13:49:10
Formsのほうが圧倒的に速いよ。
VSTOでプラグイン作るとよくわかる。
0973デフォルトの名無しさん2009/12/26(土) 13:54:08
WPFはあと、ほんのちょっと、起動の遅さ、XAMLの使い難さ、VSによる支援の足りなさ、コントロールの不足、
資料/前例の足りなさ、バインド含む処理の重さと、リソースの使用量がどうにかなればなぁ。
色々あるメリット、例えばオサレとかオサレとかオサレとか、あとオサレとかが活かせるんだけどなぁ…
0974デフォルトの名無しさん2009/12/26(土) 13:54:47
XPまではFormsのほうが早いだろうな
ま、リッチなインターフェースだし適材適所だな
0975デフォルトの名無しさん2009/12/26(土) 14:06:25
Windows7に乗ってるいろいろなアプリはもうWPFばかりなの?
MSが移行してるかどうかが重要だな。
0976デフォルトの名無しさん2009/12/26(土) 14:07:21
ngenは効果が薄いといわれるが、wpfアプリには効果が大きいね。
0977デフォルトの名無しさん2009/12/26(土) 14:08:45
>>976
へーそうなんだ
いいこと聞いた
なんか比較できる資料とかあったら教えて
0978デフォルトの名無しさん2009/12/26(土) 14:13:23
FormsのくそだっさいUIから脱却出来るだけでも魅力的なんだからがんばれWPF
0979デフォルトの名無しさん2009/12/26(土) 14:22:11
>>975
MS謹製でWPF使ってるのなんてあるのか? .NETですらかなり少ないと思うのだが。

WPFはVista以降のWindows専用と考えるとかなりいい環境なんだけど、
Monoがサポートしないのが難点だよなあ。
Formsも事実上使えないから、Gtk#とかwx.NETとか使う羽目になる
0980デフォルトの名無しさん2009/12/26(土) 14:30:32
VS2010…
0981デフォルトの名無しさん2009/12/26(土) 14:32:30
Monoをそんなに重要視する必要ある?
0982デフォルトの名無しさん2009/12/26(土) 14:33:34
Expression EncoderやBlendなんかはWPF
VS2010もWPFを使ってる

クロスプラットフォームでのWPFの扱いは、SWTみたいな感じになるんじゃないかなぁ
0983デフォルトの名無しさん2009/12/26(土) 14:34:34
>>981
仕事のほうではさっぱり使わないが、
フリーソフト作ってる身だとC#の快適さ+マルチプラットフォームはかなり恩恵が大きい
0984デフォルトの名無しさん2009/12/26(土) 14:36:05
MSがWPF使ってるのは、WPFを使わざるを得ないWPF開発環境とその周辺製品だけ
0985デフォルトの名無しさん2009/12/26(土) 14:36:59
おまえらどんどん作れよ
0986デフォルトの名無しさん2009/12/26(土) 14:39:15
XAML使うのはパネルまわりだけでいいと思う
0987デフォルトの名無しさん2009/12/26(土) 16:43:53
>>984
Windows7にはPowerShell ISEというのがあってだね・・・
0988デフォルトの名無しさん2009/12/26(土) 16:44:50
エッセンシャルWPFを片手にポチポチ勉強始めました。
考え方は非常に理にかなっている様に感じますが、だんだん複雑になってくると
こんがらがってしまいます。特にバインディング周りのデータテンプレートのネスト
とか階層データテンプレートのあたりは、一応理解は出来るんだけどいざ自分で書いて
見ようとすると、インテリセンスが効かないこともあって全然書けないです。
テンプレートの探索で型によって自動的に適用されるというような、探索のルールも
いろいろあって今ひとつよく分からないです。

ここら辺をスパッとわかり易く解説したサイトとかありませんか?
0989デフォルトの名無しさん2009/12/26(土) 16:53:10
XAMLエディタでインテリセンス使えるようになるだけで
なんか大分楽になるような気がする。
0990デフォルトの名無しさん2009/12/26(土) 18:11:40
XAMLデザイナはまだアルファ版て感じだな。
致命的なバグも残ってるし。
0991デフォルトの名無しさん2009/12/26(土) 19:36:15
ようつべに色々とWPFやBlendをつかって作ったプログラムを晒している動画があるな。結構、参考になる。
0992デフォルトの名無しさん2009/12/26(土) 20:11:58
>>991
結局まだその段階ってことなんだよね。
WPF使ってみました!!ってのが売りになるっていうか。
WPF使っててあたりまえ、まではまだまだ先だよねえ。
0993デフォルトの名無しさん2009/12/26(土) 20:15:17
そもそも商用のコンシューマ向けだと.netが当たり前になってないからなあ
0994デフォルトの名無しさん2009/12/26(土) 20:35:26
そーかー?
当たり前ってほどではないが、新興のソフトウェアだと結構.NETあるぞ
0995デフォルトの名無しさん2009/12/27(日) 03:24:56
当たり前より売りになるぐらいの方がよくね?
0996デフォルトの名無しさん2009/12/27(日) 10:59:07
次スレ
http://pc12.2ch.net/test/read.cgi/tech/1261879110/
09979922009/12/27(日) 11:10:37
>>995
売りになるっていうのは適当な表現じゃなかった。

たとえば、よくあるTwitterクライアントをWPFで作ってみました(Twitter部分はしょぼいです)
とか
よくある2chブラウザをWPFで作ってみました(ブラウザ部分はWPFの練習なので適当です)
みたいな、WPFで作ってみたことだけが目的のようなのばっかりみたいな。
0998デフォルトの名無しさん2009/12/27(日) 12:05:38
(*´∀`*)
0999デフォルトの名無しさん2009/12/27(日) 12:06:21
(*´∀`*)
1000小倉優子 ◆YUKOH0W58Q 2009/12/27(日) 12:07:02
1000ならジュースでも飲むか
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。