WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/06/19(金) 13:08:09.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:050003デフォルトの名無しさん
2009/06/19(金) 23:07:43ContainerStyle は下記のようにしました。
<Style x:Key="menuItemStyle" TargetType="{x:Type MenuItem}">
<EventSetter Event="Click" Handler="MenuItem_Click" />
</Style>
サブメニューがない項目ではクリックイベントが発生するのですが、
サブメニューがある項目でもクリックされたことを知りたいのですが
どうすればよいのでしょうか?
0004デフォルトの名無しさん
2009/06/20(土) 02:18:400005デフォルトの名無しさん
2009/06/20(土) 12:06:48なんて恐ろしい子ww
0006デフォルトの名無しさん
2009/06/22(月) 00:09:480007デフォルトの名無しさん
2009/06/22(月) 17:34:161000なら、Visual Stido 2010が開発失敗して発売大幅延期、
WPFが使い物にならないと証明される
1001 名前:1001[] 投稿日:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
0008デフォルトの名無しさん
2009/06/22(月) 18:28:070009デフォルトの名無しさん
2009/06/22(月) 19:45:57いまのところ開発で XAML 使ってないから大丈夫だけど
0010デフォルトの名無しさん
2009/06/22(月) 19:47:210011デフォルトの名無しさん
2009/06/22(月) 19:49:04eはどっからでてきた
0012デフォルトの名無しさん
2009/06/22(月) 20:55:22The ML とも通じるからな。ただの音遊びだが
0013デフォルトの名無しさん
2009/06/22(月) 21:17:12ある本には
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:130016デフォルトの名無しさん
2009/06/22(月) 23:10:53どの程度のCPUなら快適に使えるんだろう?
人によって快適さの基準は違うと思うけど、
新しいPCを買う時の参考にしたいので、使ってるPCと快適さを教えて欲しい
0017デフォルトの名無しさん
2009/06/23(火) 00:06:27i7だけど重いよ
Blendの方が1億倍マシ
0018デフォルトの名無しさん
2009/06/23(火) 00:21:57Blend3でIntelliSenseもサポートされるみたいだし、VS1本でやるのは諦めるか・・・
0019デフォルトの名無しさん
2009/06/23(火) 00:32:540020デフォルトの名無しさん
2009/06/23(火) 00:46:060021デフォルトの名無しさん
2009/06/23(火) 01:09:47XAMLはそんなに違わない。
0022デフォルトの名無しさん
2009/06/23(火) 07:14:05xamlのスレだろ
>>15に答えてください
お願いします
0023デフォルトの名無しさん
2009/06/23(火) 10:04:090024デフォルトの名無しさん
2009/06/23(火) 10:24:32数時間格闘した結果自己解決したから
お前ら役に立たないな
0025デフォルトの名無しさん
2009/06/23(火) 10:24:49やりたい事は、ユーザーにxamlで画面を作成してもらい、C#でそれを読み込み表示するアプリを作りたいです。
色々と調べてみたのですが、イマイチピンときません。
宜しければ何かヒントを頂けると助かります。
0026デフォルトの名無しさん
2009/06/23(火) 10:41:48イチから勉強したほうが
0027デフォルトの名無しさん
2009/06/23(火) 17:47:02なんだxamlを書いてもらうのか、つまらん
002825
2009/06/23(火) 23:39:57ただ、xamlをの頭の部分をWindowsからCanvas等へ多少手直ししないといけないみたいで、
少しやりたい事多少外れてしまいます。
>>26さんや>>27さんの反応から簡単にできるっぽいので引き続き勉強してみたいと思います。
0029デフォルトの名無しさん
2009/06/24(水) 00:08:34外観の自由度もさることながら、
コントロールの組み合わせも自由なところが。。
ただ、どういう組み合わせが魅力あるUIなのか想像できない。
ComboBoxとかListBoxなんかはWrapPanelの中にImage+TextBlockでとかでいいとか
ありきたりな想像は出来るんですけど、それ以上のアイデアがないというか(見たことないからか..)
ただ、DataGridコントロールのグループ化とか詳細表示のような機能には期待している。
0030デフォルトの名無しさん
2009/06/24(水) 00:23:09ボタンの中身を画像とか、やろうと思えばとことんカオスな事ができるからねぇ。
そういやその自由度を使って、VS2010を痛IDEに、ってやってたところがあったようなw
インテリセンスのポップアップの見た目をアニメキャラにしていたとオモタ。
でも、カオスにできすぎて、他人の書いたxamlは大抵読むのに苦労するw
0031デフォルトの名無しさん
2009/06/24(水) 00:29:230032デフォルトの名無しさん
2009/06/24(水) 00:38:25ボタンの中身をテキストボックスとかのほうが恐ろしい。
0033デフォルトの名無しさん
2009/06/24(水) 09:51:35ちょw その組み合わせはまずいでしょう
質問ですが、WPFとSilverlightのコントロールの差異がぱっと見 わからないんですが、
この辺の一覧表とかあったりするんでしょうか?
自分でコツコツ調べるしかないかしら・・・
(例)
WPF Silverlight 備考
Label ○ ○ 同等
TextBox ○ ×
ListBox ○ ○ Silverlight側は○○が無い
ComboBox × ○
ViewBox ○ ○ WPF側は○○が無い
:
:
0034デフォルトの名無しさん
2009/06/24(水) 11:32:05でコントロール以外も含めたWPFとSilverlightの違いが解説されている。
が、あまりにも違いが多いため、69ページのPDFになっているので注意。
0035デフォルトの名無しさん
2009/06/24(水) 11:38:55ありがとうございます。
0036デフォルトの名無しさん
2009/06/24(水) 23:10:55うんざりですね
0037デフォルトの名無しさん
2009/06/25(木) 16:53:57Width,Heightに値を入れてもすぐには変化してくれません
0038デフォルトの名無しさん
2009/06/25(木) 21:50:58<car>
<maker>トヨタ</maker>
</car>
<car>
(以下略)
<cars>
みたいな xml の maker を ListBox にバインドしました。
トヨタ車はいっぱいあるので重複して表示されてしまうのですが、
重複をのぞいて表示するにはどうしたらよいですか?
0039デフォルトの名無しさん
2009/06/25(木) 22:17:020040デフォルトの名無しさん
2009/06/25(木) 23:06:360041デフォルトの名無しさん
2009/06/26(金) 17:38:52果報は寝て待て
0042デフォルトの名無しさん
2009/06/26(金) 19:06:51<RowDefinition Height=rd.Heght />
のようなこと出来ないんですか?
0043デフォルトの名無しさん
2009/06/26(金) 19:28:38<RowDefinition Height="{Binding ElementName=rd, Path=Height}" />
0044デフォルトの名無しさん
2009/06/26(金) 19:50:11まだ悩んでる?
0045デフォルトの名無しさん
2009/06/26(金) 19:59:560046デフォルトの名無しさん
2009/06/27(土) 13:58:140048デフォルトの名無しさん
2009/06/27(土) 15:00:20> person[sex='man']
みたく書けないみたいだけど、
ノードの絞り込みしたいときはどうするの?
0049デフォルトの名無しさん
2009/06/27(土) 15:16:34Binding.XPath のサンプルにある コメントアウトされてるけど
0051デフォルトの名無しさん
2009/06/28(日) 12:56:08というデータを表示しようとして下記の 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:12005351
2009/06/28(日) 19:30:11<maker>光岡自動車</maker>
でお願いします。
0054デフォルトの名無しさん
2009/06/29(月) 00:10:14とすると、バインディングされてるデータが
<List>
<Item>Foo</Item>
<Item>Bar</Item>
</List>
のとき、FooBar と表示されます。
これを Foo/Bar と表示したい(間に文字を入れて連結したい)んですが、
Converter を作る以外に方法ありますか?
0055デフォルトの名無しさん
2009/06/29(月) 09:52:380056デフォルトの名無しさん
2009/07/09(木) 07:41:07作成時に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:10CDocument的なものはどこに置くべき?
ウィンドウのコードに依存プロパティとして実装?
もうWPFわけわからんw
0058デフォルトの名無しさん
2009/07/12(日) 10:56:230059デフォルトの名無しさん
2009/07/12(日) 10:57:59質問が分かりにくくてすまん。
そのインスタンスはどこに保持するのかって質問なんだ。
0060デフォルトの名無しさん
2009/07/12(日) 11:06:21http://msdn.microsoft.com/ja-jp/magazine/dd419663.aspx
更新のない一方向の情報なら
XmlDataProviderを使って直接バインドしてしまうことも出来る。
0061デフォルトの名無しさん
2009/07/12(日) 11:09:26なかなか難しいな
頑張って解読してみる
ありがと!
006257
2009/07/12(日) 16:17:29読んでみた
Model-View-ViewModelでやると、
ViewModel同士の同期が非常に煩雑になる気がするんだがそうでもない?
(>>60のサンプルでも煩雑になってる気がする)
本屋に行ってWPFの本を探してみたが
どれも簡単なコントロールやスタイルの組み方までしか書いてねぇ。
0063デフォルトの名無しさん
2009/07/12(日) 19:00:240064デフォルトの名無しさん
2009/07/12(日) 20:09:070065デフォルトの名無しさん
2009/07/12(日) 20:39:27俺も綺麗なやり方が分からず悩みどころ。
あとVとVMの連携が必要な所も酷いことになる。
例えば、ボタンを押したらダイアログを表示、をやろうとしたら
ダイアログに対応するVMを作るのと、ダイアログの表示処理は誰がやるんだろう?
選択肢を選んだら即時ダイアログを閉じる場合、VMへの値の反映をバインドでやるとすると
ダイアログを閉じるのはどうやるんだろう?
って感じで複雑な物を作ろうとするとV→VMが依存しまくり。
うまく行く設計方針とかないのかしら。
006657
2009/07/12(日) 22:06:24それともフレームワークのようなものを作れば
MVVMでも多少ましになるのかな。
0067デフォルトの名無しさん
2009/07/13(月) 01:16:24コマンドは使ってるんだよね?
>例えば、ボタンを押したらダイアログを表示、をやろうとしたら
>ダイアログに対応するVMを作るのと、ダイアログの表示処理は誰がやるんだろう?
Vはコマンドを発行するだけ(VM側の実装を知らなくていい)
コマンドを受け取って、ダイアログのV,VMを作って呼び出すのはVMの役目。
>選択肢を選んだら即時ダイアログを閉じる場合、VMへの値の反映をバインドでやるとすると
>ダイアログを閉じるのはどうやるんだろう?
その程度のやつならVで閉じちゃえば?
妥当性検証をパスして、OKボタン押すまでソースへの通知を遅らせたい(CANCEL時に無かった事にしたい)時とかはVMがないと見通し悪くなる。
0068デフォルトの名無しさん
2009/07/13(月) 01:25:55前者は、コマンドは使っているけれど
> ダイアログのV,VMを作って呼び出すのはVMの役目。
これって不味いのでは?
「V→VMの依存関係を一方向にすれば、テスト楽だよ」ってのがMVVMの味噌な気が。
VMがVを作ると、VM単体で単体テストしにくくなって不味いかと。
後者は、自分が選んだのもその方法(コードビハインドで全部処理)だけど、
コマンドを使うところと使わない所が出来るってのがちょっと嫌な感じ。
自分のMVVMのやり方じゃ7割ぐらいまでは綺麗に適応できるけど
3割ぐらいは外れるか、アドホックに汚いやり方で誤魔化しちゃってます。
0069デフォルトの名無しさん
2009/07/13(月) 14:15:50http://www.codeplex.com/miniuml
0070デフォルトの名無しさん
2009/07/13(月) 16:35:36おお、いい記事を紹介してくれた。ありがとう。
0072デフォルトの名無しさん
2009/07/14(火) 00:06:15トン、俺も読んでみる
0073デフォルトの名無しさん
2009/07/17(金) 20:17:07WPFと同じような使用例ばかり出てきて、WPFはどうしたいのかわからなくなる
0074デフォルトの名無しさん
2009/07/17(金) 20:52:480075デフォルトの名無しさん
2009/07/17(金) 20:56:16ホストアプリを何にするかの違いだけ。
0076デフォルトの名無しさん
2009/07/19(日) 00:06:09ListBoxとかで作ったほうがすっきりするかしら・・・
0077デフォルトの名無しさん
2009/07/19(日) 00:33:11自分の場合、Enumと合わせるなら他の人も作っている
EnumBooleanConverterをパクって使っている。これはかなり楽。
Enum以外のデータ、他の特に可変個数のデータ数の選択の場合は、
自作ViewModelクラス(選択肢の表示内容や対応付けられたデータを保持し
選択されたらイベントを飛ばす)を使っている。
0078デフォルトの名無しさん
2009/07/21(火) 08:26:500079デフォルトの名無しさん
2009/07/21(火) 15:33:39キャッシュとしてローカルのディスクにデータとか書き込めるのかね・・・。
0080デフォルトの名無しさん
2009/07/21(火) 19:26:592番目は IsolatedStorage でSL2の段階で出来る
ローカル実行は俺も知りたい
0081デフォルトの名無しさん
2009/07/24(金) 13:08:02Silverlightと違ってGotoStateを明示的に呼び出す必要がないとか。
なのでCommonStatesグループを作って、Pressedのステートを作ってみたが無反応。
どうやったら使えるかな?
0082デフォルトの名無しさん
2009/07/25(土) 20:56:49特に作法みたいなのがさっぱりだ。
MVVMのテンプレートでコマンド登録する場合って、
ViewModelに起動させたいコマンドの数だけ、延々と
登録していくもの?
なんか同じコードばっかり書いてる気がする。
0083デフォルトの名無しさん
2009/07/26(日) 17:11:49MainView上のボタンを押してダイアログを表示の場合、
Vはコマンド発行するだけだよね?
コマンドの受け取り側のVMが新規ウィンドウのVとVM作ったら、
複雑になってMVVMにはならないのは理解できるんだけど、
もしそうなら、コマンドの受け取り側はどこに実装したらいいん?
コマンド用のVMを作って、コマンドは全部コマンド用VMを経由させるん?
0084デフォルトの名無しさん
2009/07/28(火) 21:15:33VMとVをきっちり分けるとなると、
1. Vに登録したICommand(VM)で操作を受け取って、
2. VMで表示するダイアログのVMを生成して
3. VMがVにデリゲート経由でダイアログのV生成を依頼して
4. Viewがデリゲート経由で受け取ったダイアログのVM+自分で作ったVで表示
全く美しくないw
0085デフォルトの名無しさん
2009/07/28(火) 21:43:24Command(ViewModel)でファイルダイアログを呼び出してるけどね。
RelayCommandでは、ViewModelにメソッドを書けるのが利点なので、
新しいダイアログはViewModelで生成するいいんでないの?
ユニットテスト的にその部分の評価がしずらいのかもしれんけど。
0086デフォルトの名無しさん
2009/07/28(火) 22:07:49Composite Application Guidanceのほうも勉強してみるかぁ。
0087デフォルトの名無しさん
2009/07/28(火) 23:18:580088デフォルトの名無しさん
2009/07/28(火) 23:26:01てのは結構重要なことだと思うんだ。
0089デフォルトの名無しさん
2009/07/28(火) 23:52:17論理的にテストできるってのは意味は大きいと思う。
0090デフォルトの名無しさん
2009/07/29(水) 01:10:110091デフォルトの名無しさん
2009/07/29(水) 01:58:39UIを華やかにする目的で流すならViewかな。
動画はVMとView間で何を渡せばいいんだろう。
0092デフォルトの名無しさん
2009/07/29(水) 05:05:03強いて言えばコンテンツ本体にあたるストリームなり、動画ファイルそのものやURI,またその選択に至るための検索要件とかがM,VMにあたんじゃまいか。
それによる選択イベントを受けて再生する何かをViewがごにょごにょすればいい。M,VMはそれが再生されてることすら知らんと。
動画周りの処理とかをごにょごにょやる必要あるときはその処理周りまでがM,VMに入ってくるんだろうね。
いずれにしろ枠にはめようとするのがおかしな元かと。
0093デフォルトの名無しさん
2009/07/29(水) 22:33:00ViewModel-Modelのデータ構造の二重持ち(とその同期のとり方)とか、
チェックロジックのViewModelとModelの二重持ちとか、
色々と実際に適用しようとすると頭の痛い所だらけで困る
0094デフォルトの名無しさん
2009/07/29(水) 23:58:04IValueConverterを実装したクラスがあれば、ViewModelなくてもいいと思ったりするけどね^^
0095デフォルトの名無しさん
2009/07/30(木) 00:10:29チェックロジックの2重持ちも阿寒と思う。
Lazyとかつかえばうまくまとまりそうな気もする。
0096デフォルトの名無しさん
2009/07/30(木) 00:27:13確定したらModelに書き戻す(キャンセルしたらロールバックする)って使い方が多いのでは?
となると編集中の状態がある場合、データ自体は二重に存在する気が。
# IDataErrorInfoを使う場合は、大抵これに該当すると思うけど
あとViewModelはModelに渡せないデータが渡された時に
エラーを表示したりModelに渡さないようにするためにチェックするし、
Modelも当然チェックする。となると必然的に両方がチェックをすることになるのでは?
処理自体はModelに持たせてViewModelがModelに問い合わせるという手はあるだろうけど、
チェック自体はなくせないと思う。
0097デフォルトの名無しさん
2009/07/30(木) 11:32:26一緒なんだったらチェック内容もModelのメソッドとかにまとめるべきかと。
0098デフォルトの名無しさん
2009/07/31(金) 01:10:41ViewModelはそれを知ることはできないよね?
値変更時にそれを取り消せる「取消」ボタンを作ったけど、
ViewModelがView上の値の変更を知ることができず使い物にならなかったw。
Bindムズカシイ。
0099デフォルトの名無しさん
2009/07/31(金) 17:13:33>Viewが入力を受けたときにConverterで例外が発生しても、
コンバータで想定外の型または値の場合は下記を返却するようにしてみては?
DependencyProperty.UnsetValue
>ViewModelがView上の値の変更を知ることができず使い物にならなかったw。
Binding ModeをTwoWayにしてる?
0100デフォルトの名無しさん
2009/07/31(金) 19:49:17Backgroundの値を変更しても変わらないのですが、これはどのバックグラウンドを変更しているのでしょうか
0101デフォルトの名無しさん
2009/07/31(金) 19:57:09TabItem.Background変更したら普通にタブヘッダ部分の背景色変わったけど
0102デフォルトの名無しさん
2009/07/31(金) 20:28:01Silverlightの場合は、Template内のRectangleのFill値を変更しないとダメぽいが。。
0103デフォルトの名無しさん
2009/07/31(金) 20:29:20変更した色が白っぽい色だったので違いに気がつきませんでした、本当にすみませんでした。
ところで、タブがアクティブになっているとき?のタブヘッダの背景色の変更はどうすればいいのでしょうか
0104デフォルトの名無しさん
2009/07/31(金) 20:46:06TabItem ControlTemplate の例 を参考に
0105デフォルトの名無しさん
2009/07/31(金) 23:39:28やってみます
0106デフォルトの名無しさん
2009/08/01(土) 00:17:36どもです。ちょっと手元に環境がないのですが
> コンバータで想定外の型または値の場合は下記を返却するようにしてみては?
なるほど。デフォルトコンバータ前提で考えてました。
自前でコンバータを作ってしまえば自由にできますね。
いっそViewModelのI/Fを例外が発生しないような型にしておいて、
ViewModelで変換までしてしまうという手もありかも。
> Binding ModeをTwoWayにしてる?
TextBoxに数値をBindしてMode未設定でしたが、これはデフォルトでTwoWayになっている気が。
View→Converter→ViewModel、のConverterの時点で例外が発生すると
ViewModelには全く処理が飛んでこないのでは?
デフォルトコンバータは、ViewとViewModelの整合が必要(=編集可能な値をBind)
かつConverterで例外が発生しうる状態では使えないか…うーん
0107102
2009/08/01(土) 13:34:29ViewModel側には例外を取得できないですね。そういった場合はView側で対処するのかも。
ValidationOnException=trueにすると、テキストボックス自体にはエラーになりますね。
(例)
<TextBox Margin="0" Text="{Binding Age,ValidatesOnExceptions=true}" />
0108デフォルトの名無しさん
2009/08/01(土) 18:57:04任意のパスから読み込みんだり保存するにはどうすればいいのでしょうか?
0109デフォルトの名無しさん
2009/08/01(土) 20:51:57画面上のImageクラスに表示している画像データを
Effectを利用して描画結果を変換したものを
さらに画像データとして次のImageクラスに設定したいのですが
この場合RenderTargetBitmapを利用するのがベストでしょうか?
何かほかに手段などはかんがえられますでしょうか?
0110デフォルトの名無しさん
2009/08/01(土) 21:07:08あそこ過疎ってんの?
0111デフォルトの名無しさん
2009/08/01(土) 21:09:37Effectの適用タイミングがよく分からんが
次ImageのSourceに元ImageのSourceをバインドしてやりゃいいんじゃね?
0112デフォルトの名無しさん
2009/08/01(土) 21:23:37実はLiveIDもっていませんので、ちょっと作ってみることにします。
>>111
エフェクトがかかった後の画像をもう片方のImageに貼り付けたいかんじです。
元ImageのSourceをそのまま設定してもエフェクト前の画像が表示されました。
0113デフォルトの名無しさん
2009/08/01(土) 21:29:35<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これをXaml上にかくのはご指摘のとおり直感的ではないですね。。
HLSLで簡単なエフェクトはかけるのですが
エフェクト変換後の画像データを
さらに別のエフェクト処理にかけたいとおもっています。
途中経過を画面でみれるようにしたいと思い質問しました。
0115デフォルトの名無しさん
2009/08/01(土) 21:48:25ImageでなくていいならFrameをネストすれば同じことできるけど
0116デフォルトの名無しさん
2009/08/01(土) 21:57:18途中経過を見てみたいと思いましてImageにしたいなとおもっていました。
Frameについては今はじめてしったコンポーネントなので、調べてみたいと思います。
0117108
2009/08/02(日) 02:22:08自己レス
ApplicationSettingsBase.Providersが実際の読み書きしてるみたいだから
独自のSettingsProviderを登録すればできそう。
0118デフォルトの名無しさん
2009/08/02(日) 20:35:43方眼紙のような罫線を描くユーザコントロールを作成しております。
そこで、
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
.
.
.
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid>
のように、行・列の指定を記述出来るようにしたいと思っております。
もしよろしければ参考になるWebサイトやキーワードをお教えいただけますでしょうか・・・。
よろしくお願いします。
0119デフォルトの名無しさん
2009/08/02(日) 20:41:13それと,UserControlでパネル作るのは無理でしょ
カスタムコントロールだな
0120デフォルトの名無しさん
2009/08/02(日) 20:57:39これが目的ではないでしょ?
具体的に書いてもらわんとわからんわ。
0121デフォルトの名無しさん
2009/08/02(日) 21:03:470122デフォルトの名無しさん
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:080124122
2009/08/02(日) 21:25:04どもです、ためしてみます!
0125デフォルトの名無しさん
2009/08/02(日) 22:47:120126デフォルトの名無しさん
2009/08/05(水) 19:35:52どのプロパティを設定する必要があるんですか?
0127デフォルトの名無しさん
2009/08/05(水) 20:03:060128デフォルトの名無しさん
2009/08/05(水) 20:09:03ScrollViewerのHeightに値いれてるつもりが、NaN入れてました
そこいじったら表示されました
0129デフォルトの名無しさん
2009/08/08(土) 01:45:02WPFで場面ごとにPageを用意してタブコントロールで切り替えていたのですが、せっかくのWPFなのでアニメーションとか付けてみようと思い
透明度などをストーリーボードで制御してフェードイン・アウトを作ってみたのですが、タブキーで非表示(フェードアウトした)Pageのコントロールにフォーカスが当たってしまいます。
これを回避するために一つ一つにフォーカス制御のプログラムを組んだのですが、今後Pageが増える事を考えると効率的ではありません。
何かスパッと書けて効率のいい方法はないでしょうか?
0130デフォルトの名無しさん
2009/08/08(土) 02:24:250131デフォルトの名無しさん
2009/08/09(日) 02:52:15Visibilityプロパティもストーリーボードで透明度0にした後にFalseへ移るようにトリガで打ってあります。
ただ、このようにストーリやコントロールのテンプレートを用意しても、
コントロール側を制御するためのストーリーボードを用意する必要があるため複雑化は避けられません。
(プログラムでコントロール側のストーリーボードを作ればモジュール程度で収まるが折角のXAMLならXAMLだけで収めたい!(<x:Code>も避けたい))
WPFのサンプルが少なくこのようにしていいんだという自信がないため、
推奨される方法があるならそちらを優先した方がいいと考えています。
これはまだ.Net 3.5では実現できない話なのでしょうか?
0132デフォルトの名無しさん
2009/08/09(日) 20:03:030133デフォルトの名無しさん
2009/08/10(月) 18:54:320134デフォルトの名無しさん
2009/08/10(月) 22:29:20ttp://msdn.microsoft.com/ja-jp/magazine/dd419663.aspx
では使ってるのに、勉強のために見たMiniUMLでは使ってなくて
迷ってしまいました。
0135デフォルトの名無しさん
2009/08/10(月) 22:47:020136デフォルトの名無しさん
2009/08/13(木) 16:13:53追加ボタンがグレーアウトしていて追加できません
XAMLエディタに手動で書き込むしかないんですか?
http://www.death-note.biz/up/f/5051.png
0137デフォルトの名無しさん
2009/08/20(木) 17:37:170138デフォルトの名無しさん
2009/08/20(木) 17:56:380139デフォルトの名無しさん
2009/08/20(木) 20:08:310140デフォルトの名無しさん
2009/08/20(木) 22:17:21なぜこれでボタン表示できないのか分からない
WinFormsと違いすぎる
0141デフォルトの名無しさん
2009/08/21(金) 01:48:560142デフォルトの名無しさん
2009/08/22(土) 12:56:210143デフォルトの名無しさん
2009/08/22(土) 12:56:470144デフォルトの名無しさん
2009/08/22(土) 14:41:02韓国起源ではない
0145デフォルトの名無しさん
2009/08/22(土) 14:50:19マイクロソフトも含めて今のソフト業界にはオリジナルと言う物はない。
全ては過去の技術の焼き直し。
ソフトウエアなんて本質的にはなんの進歩もしとらんよ。
0146デフォルトの名無しさん
2009/08/22(土) 15:44:300147デフォルトの名無しさん
2009/08/22(土) 15:50:24こういうしたり顔してる奴って会社とかで何も役に立たないくせに人のやろうとしてることに文句付けて嫌われてるんだろうな
0148デフォルトの名無しさん
2009/08/22(土) 17:03:390149デフォルトの名無しさん
2009/08/22(土) 17:52:22マ板か喪男板でやれ
0150デフォルトの名無しさん
2009/08/22(土) 20:10:16これやるとクリック音が出るんだけど消すことは出来ませんか?
0151デフォルトの名無しさん
2009/08/22(土) 21:23:580152デフォルトの名無しさん
2009/08/27(木) 16:53:36Blend無いと厳しいかな
0153デフォルトの名無しさん
2009/08/31(月) 10:36:47とりあえず単純なものなら、DoubleAnimationをやってみればいい。
0154デフォルトの名無しさん
2009/08/31(月) 14:07:32実際に試してみると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 しか書かれません。
何が原因なのでしょうか?
0155154
2009/08/31(月) 20:24:11MSDNに書いてあることは何だったんだ…
0156デフォルトの名無しさん
2009/09/01(火) 00:54:190157デフォルトの名無しさん
2009/09/01(火) 01:01:10コンテンツに合わせるのが筋じゃないのか
0158デフォルトの名無しさん
2009/09/01(火) 01:22:33Width="*" でええやん
0159158
2009/09/01(火) 01:25:030160デフォルトの名無しさん
2009/09/01(火) 01:47:310161デフォルトの名無しさん
2009/09/01(火) 10:05:47考え方が逆
0162デフォルトの名無しさん
2009/09/01(火) 23:37:25理由はわかるけど、せめて初期テーマとかでWinForm並みにしてほしい。
0163デフォルトの名無しさん
2009/09/01(火) 23:45:080164デフォルトの名無しさん
2009/09/03(木) 21:58:30<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderThickness="1" BorderBrush="Black">
<TextBlock Text="{Binding Name}"></TextBlock>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
こうすると、Border が TextBlock の大きさになってしまうのですが
Border の幅を ListBox いっぱいに広げたいのですが、
どうすれば良いでしょうか?
ちなみにウィンドウの大きさをユーザーが調整できるように
してあるので ListBox の幅は可変です。
0166デフォルトの名無しさん
2009/09/03(木) 22:07:300168デフォルトの名無しさん
2009/09/06(日) 01:54:51ListView / 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:18ItemsSourceとObservableCollectionを理解できないアホ子なのはよく分かった。
0170168
2009/09/06(日) 23:56:23.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:270172デフォルトの名無しさん
2009/09/07(月) 19:38:232chブラウザとかIRCクライアントとか
0173デフォルトの名無しさん
2009/09/07(月) 19:53:420174デフォルトの名無しさん
2009/09/07(月) 20:00:15この辺半透明でも、正直読みづらくなるだけで俺は嬉しくないんだが…
一般的にはそうでもないの?
非アクティブ時に半透明はちょっといいかもしれん
0175デフォルトの名無しさん
2009/09/07(月) 20:10:35色次第だとは思う
背景が黒の50%で文字に100%のふちが付けばかなり見やすい
0176デフォルトの名無しさん
2009/09/07(月) 20:42:070177デフォルトの名無しさん
2009/09/07(月) 20:50:43(Aero GlassのほうはSS見ただけでまだ使っていないけど)
0178デフォルトの名無しさん
2009/09/08(火) 07:24:210179デフォルトの名無しさん
2009/09/08(火) 11:08:370180デフォルトの名無しさん
2009/09/08(火) 16:08:160181デフォルトの名無しさん
2009/09/08(火) 16:10:48縁の下の力持ち的なあれですよ
0182デフォルトの名無しさん
2009/09/08(火) 19:03:130183デフォルトの名無しさん
2009/09/08(火) 19:45:52http://www.youtube.com/watch?v=MTfM5pmUrnU&feature=related
0184デフォルトの名無しさん
2009/09/08(火) 20:20:23<ImageBrush ImageSource="xxx.png" />
</RichTextBox.Background>
このようにしてRichTextBoxに背景画像を表示しています
ユーザーが好きな画像に変更できるようにしたいのですが、どのようにしたらよいかわからないので教えてください
0185デフォルトの名無しさん
2009/09/08(火) 20:34:31見てきたけど、カッコいいね。
可視化することで、瞬時に状況把握ができる効果的な分野って結構あるんだろうなぁ
航空管制塔で使うようなソフトのところは、映画の一場面かと思った。
0186デフォルトの名無しさん
2009/09/08(火) 21:07:35<ImageBrush x:Name="backgroundImageBrush" …
のように名前を付ければWinFormsと同じようにコードビハインドからアクセスできる
0187デフォルトの名無しさん
2009/09/08(火) 21:09:56ありがとうございます
0188デフォルトの名無しさん
2009/09/08(火) 21:43:57メニューがいちいちアニメーションしたりするのって
忙しい時はウザいだけなんだよね。
おもちゃ用OSと仕事用OSとで分けてほしい。
0189デフォルトの名無しさん
2009/09/08(火) 21:51:110190デフォルトの名無しさん
2009/09/08(火) 21:52:520191デフォルトの名無しさん
2009/09/08(火) 21:53:160192デフォルトの名無しさん
2009/09/08(火) 21:56:08アニメーションするのがGUIの進化だと思うなら勝手にやっててくれ。
0193デフォルトの名無しさん
2009/09/08(火) 21:57:470194デフォルトの名無しさん
2009/09/08(火) 21:58:242010でWPFになったら改善されるんだろうけど
0195デフォルトの名無しさん
2009/09/08(火) 21:59:090196デフォルトの名無しさん
2009/09/08(火) 22:04:21ウィンドウが波打ったり回転したり自在にアニメーションしてたのに、
実際出来上がってみたら斜めに並べるだけでした。
なぜなら、テスターにキモいって言われまくったから。
そしてそこまでスリム化したフリップ3Dですら、
やっぱりいらないと言われる始末。
0197デフォルトの名無しさん
2009/09/08(火) 22:32:25スノレパのエクスポゼ使った違う画面へのドラッグドロップはちょっと便利かと思ったけど。
0198デフォルトの名無しさん
2009/09/08(火) 22:36:510199デフォルトの名無しさん
2009/09/09(水) 00:03:280200デフォルトの名無しさん
2009/09/09(水) 00:10:36普通のUIを普通に使う。
0201デフォルトの名無しさん
2009/09/09(水) 00:23:53ピンポイントで使いこなせば強力だが、
下手糞が使うと邪魔だったりウザかったりクドかったり実に酷い物。
0202デフォルトの名無しさん
2009/09/09(水) 00:27:13案件があったりする
0203デフォルトの名無しさん
2009/09/09(水) 00:32:27効率を求めるとCUIでテンキーとコマンドの選択肢は残るでしょう。
0204デフォルトの名無しさん
2009/09/09(水) 00:38:48表示されてる領域の中心に現在位置している座標を求めるのはどうすればいいでしょうか。
中心じゃなくても左上の座標がわかればいいです。
マウスポインタだとGetPosition(canvas)で簡単に求められるんですけど。
0205デフォルトの名無しさん
2009/09/09(水) 00:40:510206デフォルトの名無しさん
2009/09/09(水) 00:55:22プログラム組むのはコードの難読化としか思えない
0207デフォルトの名無しさん
2009/09/09(水) 01:19:110208デフォルトの名無しさん
2009/09/09(水) 07:29:09regexみたいに制限をかけたい。
0209デフォルトの名無しさん
2009/09/09(水) 09:46:170210デフォルトの名無しさん
2009/09/09(水) 10:20:26WPF的には良くない
バインディングのValidationを使う
0211デフォルトの名無しさん
2009/09/09(水) 12:42:520212デフォルトの名無しさん
2009/09/09(水) 15:19:13Googleみたいに巨大で体力のある企業なら、自社開発した方が自由にやれるしパフォーマンスUPにも繋がるだろう。
0213デフォルトの名無しさん
2009/09/09(水) 19:19:470214デフォルトの名無しさん
2009/09/09(水) 21:17:33ありがとう!こういうのを知りたかった。
ちなみにWPFを勉強するお薦めを教えて欲しい。
Webでも書籍でもいいのでお願いします。
0215デフォルトの名無しさん
2009/09/09(水) 22:49:31正直表紙とかで損してると思う。
0216デフォルトの名無しさん
2009/09/10(木) 00:17:04確かに、あの 90 年代初頭っぽい CG の表紙は酷いな。
良著だけに、もう少し頑張って欲しかった。
>>214
書籍ではないが、CodePlex という MS 運営のコミュニティサイトから、
WPF 関連のプロジェクトをチェックする事をお勧めする。
自分の場合、MiniUML のソースが学習に役立っている。
0217デフォルトの名無しさん
2009/09/10(木) 06:45:24>>216
thx!チェックしてみる。
0218デフォルトの名無しさん
2009/09/10(木) 08:12:18ebook WPF
で検索すると幸せになれるかも
0219デフォルトの名無しさん
2009/09/10(木) 20:37:43え。なにこれ。無料で落とせたんだけど。
よくわからんがthx。
0220デフォルトの名無しさん
2009/09/10(木) 20:43:57海外は太っ腹だな
0221デフォルトの名無しさん
2009/09/11(金) 00:35:590222デフォルトの名無しさん
2009/09/11(金) 01:19:590223デフォルトの名無しさん
2009/09/11(金) 01:58:5611月らしいが初旬であってほしい。
0224デフォルトの名無しさん
2009/09/11(金) 02:05:080225デフォルトの名無しさん
2009/09/11(金) 03:00:370226デフォルトの名無しさん
2009/09/11(金) 10:32:07年末かなぁ
0227デフォルトの名無しさん
2009/09/11(金) 20:50:11表示にゴミが出まくったり、ウィンドウリサイズに3秒ぐらいかかったりで使い物にならなかった。
UMPCで動かせないって、将来大丈夫なんだろうか…
0228デフォルトの名無しさん
2009/09/11(金) 22:05:49>マイクロソフトに“お仕置き”された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:020230デフォルトの名無しさん
2009/09/12(土) 01:56:550231デフォルトの名無しさん
2009/09/12(土) 07:12:36多分これどこでも動かせるアプリケーションプラットフォームとして押してくるんだと思うよ。
WPFは同じ規約の高機能版って位置づけになるかと。
0232デフォルトの名無しさん
2009/09/12(土) 13:30:30セキュリティ制限もそのまま
0233デフォルトの名無しさん
2009/09/12(土) 13:37:030234デフォルトの名無しさん
2009/09/12(土) 17:28:070235デフォルトの名無しさん
2009/09/13(日) 01:38:40じゃあWPFテンプレートはどういうパターンに則ってるんだろう
0236デフォルトの名無しさん
2009/09/13(日) 03:02:10え?
0237デフォルトの名無しさん
2009/09/13(日) 09:40:46一通り探してみてもどこで設定できるかわかりませんでした。。
よかったら教えてください。
0238デフォルトの名無しさん
2009/09/13(日) 11:55:10どうとでも使える
>>237
ツール→オプション→環境ツールをアニメーションで表示
0239デフォルトの名無しさん
2009/09/13(日) 14:37:59でもMVVMに則ってやろうとすると手を加えないといけないよね。
WPFはMVVMと相性が良いっていうけど、それならなんでMVVMパターンのテンプレートにしないんだろう。
ある程度WPFに慣れた人向けってことなんかな。
0240デフォルトの名無しさん
2009/09/13(日) 14:44:48MVVM使うようなある程度の規模のプロジェクトだったら
どっちみち自分で枠組み作るんだからテンプレートなんかあってもなくても変わらん
0241デフォルトの名無しさん
2009/09/13(日) 17:15:08MVVMはあくまで技法のひとつだから。
0242デフォルトの名無しさん
2009/09/13(日) 20:51:40<TextBlock>
<TextBlock.BitmapEffect>
<BevelBitmapEffect></BevelBitmapEffect>
</TextBlock.BitmapEffect>
ABC
</TextBlock>
</StackPanel>
BevelBitmapEffect つけても外見がまったく
かわらないんだけど、どこが悪いんでしょうか?
0243デフォルトの名無しさん
2009/09/13(日) 21:28:090244デフォルトの名無しさん
2009/09/13(日) 23:49:28DataTemplate を使用してカラムヘッダに
Grid を入れたんですが、サイズが小さいです。
カラムヘッダいっぱいにGridを表示したいと思います。
たぶん、DataGridColumnHeader の HorizontalContentAlignment
0245244
2009/09/13(日) 23:53:11DataGridColumnHeader の HorizontalContentAlignment を Stretch
にすればいけるような気がするんですが、DataGridColumnHeader に
アクセスする方法がわかりません。
どなたか解決策をご存じの方いらっしゃいませんか?
0246デフォルトの名無しさん
2009/09/14(月) 02:24:11その手法が喧伝されはじめたのが最近だから。
もともと(xamlの内部にしかもわかりにくい書式でバインド云々とか)
WPFの元設計がいまいちだとしか思えないわけで、
WPF2では(なんてものを出す気があるのなら)、それに近い構造をデフォルト様式の一つに持ってくるわけだろう。
そして、そのようにシステムレベルで構造拡張するなら、
MVVM(自体も必ずしも簡潔明快なものではないわけで)の露骨なテンプレみたいにせずとも、
前に似た話が出ていたが、VM部分が、簡単なV-M対照表的なものでいいのでないか。
たとえば、バインド定義ファイル?というような名前のものに
[(ザムルの) myText1 = (コードの)myClass1.value1 ]
などと書いておけば、最も初歩的にはそれでOK、簡単なソフトならそれで動く。
そして詳細の設定や制限や、表示やバインドの切り替えやちょっとしたイベント処理等も、複雑なことをやる場合のために、その定義表内で可能な限り出来るようにする。
ザムルは表示のデザインだけ、コードはデータの保持と計算と出力物の作成だけと。
0247デフォルトの名無しさん
2009/09/14(月) 16:10:14なるほど
0248デフォルトの名無しさん
2009/09/14(月) 18:48:18フォームズでのMeasureStringのような物ってあります?
0249デフォルトの名無しさん
2009/09/14(月) 19:37:41FlowDocumentかな?
0250デフォルトの名無しさん
2009/09/14(月) 20:01:51MSDN読んでると頭痛くなってくるから頑張れ
0251248
2009/09/14(月) 21:48:53Graphics.MeasureCharacterRangesみたいなのとかプリミティブに操作出来るものがないと何処かで行き詰まる気が。
とりあえずMSDNいってみまふ・・・
0252デフォルトの名無しさん
2009/09/14(月) 22:14:09http://msdn.microsoft.com/ja-jp/library/ms754036%28VS.80%29.aspx
このへん
0253デフォルトの名無しさん
2009/09/15(火) 12:54:00StackPanelに入れたいんだけど表示されない
0254デフォルトの名無しさん
2009/09/15(火) 12:59:29Lineって本当にお絵かきするためのコントロールなので区切り線には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自分でMouseDownやMouseUpイベントを処理するしかないんでしょうか?
0258デフォルトの名無しさん
2009/09/16(水) 10:30:01まあClickイベントが無い以上は、そうなるわな。あと、MouseLeaveイベントも拾っとかないと
いかんのでは。
ただ、IEブラウザの例ではクリックでタブを閉じてるのはなくて
MouseDownされた時点で閉じているようだが?
0259256
2009/09/16(水) 13:54:03ttp://codepad.org/asHHg3sH
こんな風に添付プロパティにして、コマンドを関連付けられるようにしました。
クリック判定は面倒くさいんで、MouseDownで実行するようにしました。IEもそうなってるしね。
ありがとうございました。
0260デフォルトの名無しさん
2009/09/16(水) 14:01:45使わせてもらいます。
0261デフォルトの名無しさん
2009/09/17(木) 00:00:150262デフォルトの名無しさん
2009/09/17(木) 01:18:55この「好きな座標を中心に回転」みたいなのをやりたいんだけど、
これの言う原点ってその要素を配置してるPanelの座標のことだよね?
具体的にはCanvasにStarsという画像を配置してるとして、平行移動はStarsに、
回転はCanvasに適用するということになるのかな?
でもそれだとStarsが複数あったとき、Canvasも同じだけ用意しないといけないよね…
0263デフォルトの名無しさん
2009/09/17(木) 01:34:13Nameのお作法はよく分からん。俺は小文字スタートキャメルだけど、
標準コントロールをみてみたらキャメルにしていなかった気がする。
0264デフォルトの名無しさん
2009/09/17(木) 01:43:25Flash&ActiveScript? スレ違い?
WPFならRenderTransform使うけど
0265デフォルトの名無しさん
2009/09/17(木) 01:54:510266デフォルトの名無しさん
2009/09/17(木) 02:00:18うん、RenderTransform使うんだけど、TranslateTransformとRotateTransform
をそれぞれどの要素に適用したらいいかなと悩んでるの。
0267デフォルトの名無しさん
2009/09/17(木) 02:03:390268デフォルトの名無しさん
2009/09/17(木) 02:08:29それだとうまくいかないんだよな。
Translateしても原点は相変わらず左上。
画像に対して適用してもその画像の持つ論理座標上での位置は変わらんみたいなんで。
0269デフォルトの名無しさん
2009/09/17(木) 07:41:57俺もそういった座標系でこけたことある。
結局中心点とかコントロールだけで取ること出来なかったしグリッドに貼って
中心点をプロパティ化してバインドした
0270デフォルトの名無しさん
2009/09/17(木) 10:10:38RotateTransformのCenterX/CenterY、じゃないんだろうなぁ、そんなに悩んでるんだから
0271デフォルトの名無しさん
2009/09/17(木) 11:25:260272デフォルトの名無しさん
2009/09/17(木) 13:17:18ScaleTransformとかと組み合わせたくなったとき
Centerプロパティは役に立たないんだ。
>>271
この際アフィン変換について学んでみるかなあ…
>>269
よかったら詳しく教えて
0273デフォルトの名無しさん
2009/09/17(木) 13:20:040274デフォルトの名無しさん
2009/09/17(木) 13:26:16Matrix m = Matrix.Identity;
m.RotateAt(r, cx, cy);
m.Scale(sx, sy);
みたいなかんじ
0275デフォルトの名無しさん
2009/09/19(土) 03:23:12foo.xamlのElement1とbar.xamlのElement2はBindingできない?
0276デフォルトの名無しさん
2009/09/19(土) 06:54:55MediaElement Sourceでは出来るのに
出来るか出来ないか統一してくれないと分かりにくい
0277デフォルトの名無しさん
2009/09/19(土) 09:35:26できるけど
0278デフォルトの名無しさん
2009/09/19(土) 21:35:50余裕でできるが
0279デフォルトの名無しさん
2009/09/19(土) 23:05:49VisualStyleすら適用できないとかどんだけwww
0280デフォルトの名無しさん
2009/09/19(土) 23:12:18俺Vistaと7でしか動かしていないけど、勝手にそれっぽい外観になるよ。
どうしてもうまくいかないなら、ここみたいに手動でしてみたらどう?
ttp://d.hatena.ne.jp/Yamaki/20061106/1162787221
0281デフォルトの名無しさん
2009/09/19(土) 23:15:130282デフォルトの名無しさん
2009/09/19(土) 23:17:51違うデスクトップテーマを強制適用させると起動直後に死ぬらしい。
もう死ねばいい。
0283デフォルトの名無しさん
2009/09/19(土) 23:44:120284デフォルトの名無しさん
2009/09/20(日) 09:19:52クラシックになったり、Microsoft.Win32 名前空間の OpenFileDialog が
Vista 上で XP 風になるのが嫌だな。
仕方ないから System.Windows.Forms 名前空間のものを使用してるけど、
こういう標準ダイアログ系は Microsoft に頑張って欲しいな。
0285デフォルトの名無しさん
2009/09/20(日) 21:56:11まあ、もちろんコモンダイアログ系は適応できないけどね。
0286デフォルトの名無しさん
2009/09/20(日) 21:58:03文句があるならWPFベースで自作しろってことなんだろう
0287デフォルトの名無しさん
2009/09/20(日) 22:39:23WPF Themesいいよね。
でも、添付されているテーマが20くらいあるけど、テーマによって適用できるのと適用できないものがあるからなぁ。
Rectangleが消えちゃったり、グルーピング表示させたときのグループヘッダーが消えちゃったりと。
まあそこんところは自分でXAMLを修正すればいいんだけど。
0288デフォルトの名無しさん
2009/09/21(月) 10:23:260289デフォルトの名無しさん
2009/09/21(月) 19:30:04TextBlock いっぱいに表示したいのですが
どうすればよろしいでしょうか?
0290デフォルトの名無しさん
2009/09/21(月) 19:31:310291デフォルトの名無しさん
2009/09/21(月) 19:56:44WindowのContentをXamlWriterで書き出しました。
しかし、"{Binding Hoge}"のような所がBinding後の実際の値になって書き出されてました。
Binding構文を失わずに書き出す方法はありませんか?
0292デフォルトの名無しさん
2009/09/22(火) 23:17:330293デフォルトの名無しさん
2009/09/22(火) 23:33:11俺試していないから.NETのバージョンは分からないけど、
WPFでもリボンが使えるようになっているみたい。
http://www.microsoft.com/japan/powerpro/TF/column/mo_08_3.mspx
こうやって別途ダウンロードさせるということは、.NET Framework本体に入れる気はないのかなと思う。
0294デフォルトの名無しさん
2009/09/23(水) 00:08:33落としてみたら3.5だった。
4.0用はないみたいだ
0295デフォルトの名無しさん
2009/09/23(水) 04:26:440296デフォルトの名無しさん
2009/09/25(金) 14:24:56たとえばガントチャートコントロールみたいなのを作ろうとした時は
Controlのサブクラスを作成してそのOnRenderでDrawingContextから描画すれば良いの?
0297デフォルトの名無しさん
2009/09/25(金) 14:48:310298デフォルトの名無しさん
2009/09/25(金) 16:43:48逆にあったら教えて欲しい。
0299デフォルトの名無しさん
2009/09/25(金) 17:13:590300デフォルトの名無しさん
2009/09/26(土) 09:50:49公式にもWPFフォーラムしかありません
0301デフォルトの名無しさん
2009/09/26(土) 18:04:280302デフォルトの名無しさん
2009/09/26(土) 23:21:56.NETのソースコード読めばいいじゃん
WPFは全部公開されてるよ
0303デフォルトの名無しさん
2009/09/27(日) 11:31:10マジデ?wどこで公開されてんの??
0304デフォルトの名無しさん
2009/09/27(日) 11:40:14もしくはttp://www.codeplex.com/NetMassDownloader/Wiki/View.aspxで落とす
0305デフォルトの名無しさん
2009/09/27(日) 12:55:180306デフォルトの名無しさん
2009/09/27(日) 13:12:250307デフォルトの名無しさん
2009/09/27(日) 14:02:03うおー、ちと興奮した。
ありがとう、早速ステップインしてくる!
0308デフォルトの名無しさん
2009/09/27(日) 14:08:090309デフォルトの名無しさん
2009/09/27(日) 15:03:580310デフォルトの名無しさん
2009/09/27(日) 15:10:29いままでMonoのソースとか見て参考にしていたよ。
クラスファイルごとに1個ずつダウンロードされるから時間かかるなw
細かい話だがプライベート変数のプレフィックスとか統一されていないんだね。
0311デフォルトの名無しさん
2009/09/27(日) 16:23:04WPF Toolkitに入れるように誰か要望してくれないかなあ
0312デフォルトの名無しさん
2009/09/27(日) 16:55:36こんなのもある
0313デフォルトの名無しさん
2009/09/27(日) 19:02:55Contentにあたる部分しかBottomにならず、◎の部分がTop固定のままで使いにくい
◎ Content
↓
◎
Content
0314デフォルトの名無しさん
2009/09/27(日) 19:50:010315デフォルトの名無しさん
2009/09/27(日) 20:00:480316デフォルトの名無しさん
2009/09/27(日) 20:35:250317デフォルトの名無しさん
2009/09/27(日) 21:02:18これがPG脳ですか。
0318デフォルトの名無しさん
2009/09/27(日) 21:08:14どうして欲しいか書いてないんだから、上のようなレス貰って文句言うのは筋違い。
0319デフォルトの名無しさん
2009/09/27(日) 21:15:21それを理解していないからこの挙動を理解できないだけ。
0320デフォルトの名無しさん
2009/09/27(日) 21:20:42WPFの柔軟性とXAMLは恐ろしい子だな。
0321デフォルトの名無しさん
2009/09/27(日) 21:33:520322訂正
2009/09/27(日) 21:37:30◎扱えない
0323デフォルトの名無しさん
2009/09/27(日) 21:47:49◎をContentとして扱いたければ、Contentが空のRadioButtonとTextBlockなりを
Gridとかで並べればいいだけだし。
0324デフォルトの名無しさん
2009/09/27(日) 21:48:490325デフォルトの名無しさん
2009/09/27(日) 21:57:45ずれてる方がクールとかあるんですか?
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↑こういうのがPG脳と言って、開発現場では嫌われていますww
0328デフォルトの名無しさん
2009/09/28(月) 01:04:26Control templateの中身を確かめるくらいで嫌ってしまうような現場は、
そもそもWPFに手を出せないから心配しなくてもいい。
0329デフォルトの名無しさん
2009/09/28(月) 01:41:02激しく同意
0330デフォルトの名無しさん
2009/09/28(月) 07:53:39見た目の問題なら大概は XAML だけで片が付くね。
コードビハインド書いたら負け、みたいな感じ。
0331デフォルトの名無しさん
2009/09/28(月) 10:38:040332デフォルトの名無しさん
2009/09/28(月) 11:21:590333デフォルトの名無しさん
2009/09/28(月) 14:58:00netmassdownloader -d C:\Windows\Microsoft.NET\Framework64\v3.5 -output E:\ReferenceSource
てな感じでやっても見つからんみたいで落とせん。
0334デフォルトの名無しさん
2009/09/28(月) 16:03:27を指定したら全部じゃないけどダウンロードできたわ
ただ単にMSのサーバーに残ってなかっただけか。失礼
0335デフォルトの名無しさん
2009/09/29(火) 21:27:39⊂⌒( `Д´) < ヤダヤダ!RadioButtonが俺の思った通りの仕様じゃないのは嫌だ!
`ヽ_つ ⊂ノ
_, ,_
(`Д´ ∩ < ヤダヤダ!反論なんて嫌だ!反論する奴は全員PG脳だ!
⊂ ( 俺の思った通りじゃないのは嫌だ!
ヽ∩ つ ジタバタ
〃〃
∩ ∧ ∧
⊂⌒( _, ,_)
`ヽ_つ ⊂ノ グスッ・・・
(ヨ
〃〃∩ _, ,_ ノノ キィィィ ヤダヤダヤダヤダヤダヤダ!! PG脳は
⊂⌒(#`Д´)illi < ヤダヤダヤダヤダヤダヤダ!! 現場で嫌われる!!
`ヽ_つ⌒ヽ(ヨ) ( ヤダヤダヤダヤダヤダヤダ!! 嫌われる!!嫌われる!!
⌒Y⌒ ドンドン
0336デフォルトの名無しさん
2009/09/29(火) 21:58:470337デフォルトの名無しさん
2009/09/29(火) 22:00:160338デフォルトの名無しさん
2009/09/29(火) 22:04:400339デフォルトの名無しさん
2009/09/29(火) 22:17:200340デフォルトの名無しさん
2009/09/29(火) 22:18:160341デフォルトの名無しさん
2009/09/29(火) 23:44:36Gridに置き換わった
0342デフォルトの名無しさん
2009/09/30(水) 09:53:05???
0343デフォルトの名無しさん
2009/09/30(水) 12:52:300344デフォルトの名無しさん
2009/09/30(水) 12:55:19マウスが来るとでかくなるMac見たいなUI見たときちょっと「おっ」っておもった
0345デフォルトの名無しさん
2009/09/30(水) 12:58:36うんうん、まさにそういう使い方をしておるよ
無名なTwitterクライアントだがね
0346デフォルトの名無しさん
2009/10/02(金) 14:11:00ちょっと欲しいぜ
自分で作るのはめんどい
0347デフォルトの名無しさん
2009/10/02(金) 17:15:16結構沢山あるよ。
国産のは実験で作ってる系の軽めなのが多い。
海外製のはいかにもWPFって感じにかなり多機能(悪く言えばゴテゴテ)なのが幾つか。
0348デフォルトの名無しさん
2009/10/02(金) 18:02:53「あ」だけ色を変えたいのですが、
<TextBlock 赤>あ</TextBlock><TextBlock 青>い</TextBlock>
みたいに独立させなきゃいけないのでしょうか
0349デフォルトの名無しさん
2009/10/02(金) 18:05:230350デフォルトの名無しさん
2009/10/02(金) 19:44:53ありがとうございます
0351デフォルトの名無しさん
2009/10/03(土) 18:59:55良いことなのかよくわからない
0352デフォルトの名無しさん
2009/10/03(土) 23:33:20そういう場合でも絶対サイズ(2cmとか)で表示できるのは
いいことじゃないの?
0353デフォルトの名無しさん
2009/10/03(土) 23:57:15じゃあそれだとモニタによって絶対サイズ変わっちゃうよね。
俺のモニタは約86dpiだから見た目はちょっと大きくなっちゃうはず。
0354デフォルトの名無しさん
2009/10/04(日) 00:26:250355デフォルトの名無しさん
2009/10/04(日) 00:37:16その86dpiのモニタを使っていても、どうせWindowsのDPIの設定は96なんだろ。
だから、お前のPCでWPFアプリだけ少し大きく描画されるなんてことにはならない。
0356デフォルトの名無しさん
2009/10/04(日) 01:23:180357353
2009/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:16GDI使うアプリでは、WindowsのDPIの設定を標準の96から変更すると描画が崩れるものが多かったから、
WPFアプリでは何も考えず96 DPIのつもりで取り扱えるようにしようという程度のことだと考えておけばいいと思う。
0359デフォルトの名無しさん
2009/10/04(日) 14:29:06正反対。絶対サイズでいえば 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:020361353
2009/10/04(日) 21:58:21>出力先が 72 dpi モニタであっても 19,200 dpi プリンタであっても、同様の結果を得ることができます。
これはつまり定規で測れば同じ大きさを示すってこと?
Windowsはこちらが教えなくても出力先のモニタやプリンタのDPI値を知ってるのか。
0362デフォルトの名無しさん
2009/10/04(日) 22:05:310363デフォルトの名無しさん
2009/10/04(日) 22:39:27Expanderのように内部にグリッドを持つことができるようなコントロールを作るためにはどんな技術が必要になるのか教えてほしい
結構頑張っているものの一向にうまくいく気配がないorz
何かそのような名称でもいいんで情報がほしい
0364デフォルトの名無しさん
2009/10/04(日) 22:46:00ControlTemplateには必ずContentPresenter要素を含める。
すると,XAMLでダイレクトコンテンツとして指定した要素が自動的にその場所に表示される。
0365デフォルトの名無しさん
2009/10/04(日) 23:03:55ありがとう!
まだうまく再現出来ていないけどなんとかしてみる!b
0366デフォルトの名無しさん
2009/10/04(日) 23:14:39Blend だけでやろうとしてない?
Visual Studio を使わないと新しいロジックやプロパティを持ったコントロールを作成するのは無理だと思う。
単に外見やアニメーションを変更したいだけなら、コントロールを作成するんじゃなくて、
スタイルを使って、コントロールのテンプレートを置き換えるだけで済むんだけど。
0367デフォルトの名無しさん
2009/10/04(日) 23:49:53簡単なプロパティ作ってDependencyPropertyうんぬんはできているので、あとはそのContentPresenterぐらいかなと考えてます
いまだ苦戦してるけど近づいた感じもする
0368デフォルトの名無しさん
2009/10/04(日) 23:54:09何も考えずに作るとテンプレートに対する制約が増えすぎて
テンプレートを差し替えられないない使い物にならないコントロールができる
0369デフォルトの名無しさん
2009/10/05(月) 00:14:510370デフォルトの名無しさん
2009/10/05(月) 00:14:53コントロールにコンテンツを突っ込むとボタン、テキストが消えて追加したコントロールのみになるw
Contentpresenterを使うコントロールの作成は前にもどこかで見て訓練したんだけど、まったく覚えていない・・・。
なにか星の形のボタン作って、Contentプロパティはこいつをつかうんだぜ!みたいなことで説明していたとおもうんだけど、
そんなことだけ覚えていて、感じの記述を覚えてない。
理想では自由自在にカスタムコントロールさえ作れれば、ExpanderをもっとWPFらしいコントロールが作れれるなぁといった安易な発想なんだけど、
保守に疲れてしまうならいっそのことテンプレートで作ったほうがいいのかな・・・
でもやっぱ自作コントロールでDLL配布できればかっこいいねっ!
作れればかっこいいね・・・。
0371デフォルトの名無しさん
2009/10/05(月) 10:15:36ContentControlから派生するということだったのでそのまま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シンプルかつ自分で拡張の前者、多機能な後者という認識でいいんでしょうか?
並び替え等を行わないので前者でいこうかと思うのですが、注意点があればお願いします。
0373デフォルトの名無しさん
2009/10/06(火) 15:30:21TimeSpan をバインディングしたんだけど、StringFormat が有効にならない。
使い方間違ってる、俺?
0374デフォルトの名無しさん
2009/10/06(火) 16:14:070375デフォルトの名無しさん
2009/10/06(火) 16:33:46StringFormat=T
でやってみて?
0376375
2009/10/06(火) 16:34:520377デフォルトの名無しさん
2009/10/06(火) 16:54:470378373
2009/10/06(火) 17:05:05ヘルプ見てみたら DateTime は IFormattable だけど、
TimeSpan は違うんだね。勉強になりました。
0379デフォルトの名無しさん
2009/10/06(火) 17:36:29この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:360382デフォルトの名無しさん
2009/10/06(火) 18:14:54ありがとうございました
0383デフォルトの名無しさん
2009/10/06(火) 22:15:3896dpiだと切れない
何故このような差があるの?
0384デフォルトの名無しさん
2009/10/07(水) 00:44:24作画するときスムーズに見せる機能(フォントとかに使われている奴)が効いてるため見た目でちょっとした誤差がでる
0385デフォルトの名無しさん
2009/10/08(木) 23:32:56Thumbの外見をビハインドで変えるにはどうしたらいいですか?
Adornerはめんどくさいんであまり使いたくないのです
やりたいことは右ペインにサムネ一覧出して、そこからD&Dで中央ペインの特定の場所に貼り付けたい
その場所の当たり付けるのに半透明にしたサムネをドラッグしたいのです
サムネ自体はVisualBrush付けたRectangleで、生の画像ではありません
よろしくお願いします
0386デフォルトの名無しさん
2009/10/09(金) 15:54:420387デフォルトの名無しさん
2009/10/09(金) 16:29:040388デフォルトの名無しさん
2009/10/09(金) 18:05:21やってみたけど中身0だった
別にエラーは出てないんだよなあ
0389デフォルトの名無しさん
2009/10/09(金) 20:21:11そんなはずは・・
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:26XPだと初めのWPFアプリが起動されないと開始されません
0391デフォルトの名無しさん
2009/10/10(土) 00:43:49・・・あーいや
追加→リソースディクショナリで別ファイルになってる奴なんだ
だからか?>中身空
0392デフォルトの名無しさん
2009/10/10(土) 01:19:17あーそうか。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.NET Framework 3.0以上の入った環境では、
Windows Presentation Foundation Font Cacheというサービスがある。
そのプロセスの正体はこれだろう。
お前のVistaパソコンで起動時にこれが立ち上がるのは、
このサービスがスタートアップ: 自動になっているか、
PC起動時に実行されるアプリの中にWPFアプリが存在するかのどっちかだと思う。
0394デフォルトの名無しさん
2009/10/10(土) 19:01:52うーん
それでもResources.MergedDictionariesのCountが0なんだ
これはもしかしたら、そもそもリソースの書き方に問題あるかも知れない
ちょっと適当なコントロールにくっつけて有効かどうか試してみる
0395デフォルトの名無しさん
2009/10/10(土) 22:59:00ソフトウェアの役割は
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を用いてアクセスします。
0396395
2009/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:491msのsleepってWindowsでは実現できないじゃなかったかな?
Sleep(1)としても、実際はどうしても15msほどSleepしてしまうと私は記憶しているが。
>1,2の機能はUIスレッドとは別スレッドとして1msスリープで定期的に動いています。
これは本当に実現できているのかまず確認してみては?
0400デフォルトの名無しさん
2009/10/11(日) 01:07:32俺も15msくらいという記述を昔に見たことがあるが、今探してもないな。
Forms.Timerが55ミリ秒とはかいてあるが。
0401デフォルトの名無しさん
2009/10/11(日) 01:35:49一応1ミリ秒のスリープも実現不可能ではないはず。
もっとも、それやったところで、396の問題解決には程遠いだろうけど。
0402デフォルトの名無しさん
2009/10/11(日) 02:12:27でもそもそもWindowsのコンテクストスイッチ間隔が20msとかそんなんだから、
デバイスからの割り込みなくてポーリングで1msの分解能を得ることは無理だな
タイマ割り込み使うなら.NETでコーディングは出来んし
0403デフォルトの名無しさん
2009/10/11(日) 06:46:560404デフォルトの名無しさん
2009/10/11(日) 09:33:310405デフォルトの名無しさん
2009/10/11(日) 09:43:240406デフォルトの名無しさん
2009/10/11(日) 09:49:08そのソフトのなかで、マイクロソフトの M-V-VM
サンプルについている DelegateCommand と
ViewModelBase を使用しています。
GPL とリンクするモジュールは GPL でないと
まずいと思っています。
そこで、GPL または 修瑞ウBSD ライセンャXな、
DelegateCommand と ViewModelBase は
どこかにないでしょうか?
0407デフォルトの名無しさん
2009/10/11(日) 10:49:37感染性はあるけど遥かに利用しやすい
0408デフォルトの名無しさん
2009/10/11(日) 11:25:050409デフォルトの名無しさん
2009/10/11(日) 11:34:16再配布パッケージを付けたりしたら違反になると思う
0410デフォルトの名無しさん
2009/10/11(日) 16:16:42遅いと書いてはあったけどここまで遅いとは
0411デフォルトの名無しさん
2009/10/11(日) 17:03:55>>406と同じ悩みを利用者みんなが抱えることになるんだから
>>410
サイズを明示的に指定せずにStackPanelなどに入れとけば勝手にリサイズしてくれると思うけど
どこからVisualBrushが出てくるのかわからない
0412406
2009/10/11(日) 20:08:26自分のコードがソース非公開で商用利用されるのはいやなので
(自意識過剰とは言わないで)、GPL にしたかったんだけど・・・。
Ms-PL には感染性があるんで、この「このプロジェクトは絶対に
オープンソースで」というと、オブジェクト形式での配布を認める
Ms-PL に抵触してると解釈される?
それとも、ソースを公開・非公開にするかについて規定のない
0413デフォルトの名無しさん
2009/10/11(日) 20:09:43ソースを公開・非公開にするかについて規定がないから
抵触しないとみなせるの?
その辺がわからないんだよー。
0414デフォルトの名無しさん
2009/10/11(日) 20:17:170415デフォルトの名無しさん
2009/10/11(日) 23:23:24今ちょっとAA管理プログラム作ってて、大きさバラバラなTextBlockを一律64x64のサムネイル表示させてるのよ
いちいちスケール計算するのもなんだからVisualBrush
でもこれだと場合によっては表示されるまで10秒くらいかかる
コレクションバインドだと順次出すことも大変みたいだし困ってる
0416デフォルトの名無しさん
2009/10/11(日) 23:34:36WPFだからこそVisualBrushみたいな便利なものが使えるけど
一般的にはそういうアプローチを採るのが普通じゃないの
0417デフォルトの名無しさん
2009/10/12(月) 01:21:20やっぱそうか
GPU支援に期待し杉たかね
0418デフォルトの名無しさん
2009/10/12(月) 12:30:220419デフォルトの名無しさん
2009/10/12(月) 20:21:360420デフォルトの名無しさん
2009/10/12(月) 20:33:41「最高の」なら話は別だが
0421デフォルトの名無しさん
2009/10/13(火) 10:04:40A,B,Cの内どれかが変更されたら、それを元にコントロールの内容も更新に反映させたいのですが
A だけ変わってB,Cはそのままの場合や、A,B,C全部が変更される場合もあります。
更新回数を最低限にしたいのですが、こういう場合、描画のトリガーとしてどういう方法を用いるのが
理に適っているんでしょうか?
0422デフォルトの名無しさん
2009/10/13(火) 14:32:180423デフォルトの名無しさん
2009/10/13(火) 16:18:410424353
2009/10/13(火) 17:32:42やはりコードで記述するしかないんでしょうか。方法あればヒントだけでもいいので教えてください
0425デフォルトの名無しさん
2009/10/13(火) 17:33:460426デフォルトの名無しさん
2009/10/13(火) 17:43:360427デフォルトの名無しさん
2009/10/13(火) 18:15:02XAMLファイル生成して後から読むとか出来るかも知れない
0428デフォルトの名無しさん
2009/10/13(火) 20:20:38でも動的に生成したXAMLを読むとかでなければリソースに書いとくのがベター
0429デフォルトの名無しさん
2009/10/13(火) 20:29:06生成したXAMLを読み込む場合はXamlReaderですね。どうも
0430デフォルトの名無しさん
2009/10/13(火) 21:48:140431デフォルトの名無しさん
2009/10/14(水) 20:42:59VS2010はXAMLでカスタマイズできるみたいだけど,そもそも開発者のためのツールだから話が別。
0432デフォルトの名無しさん
2009/10/14(水) 22:41:520433デフォルトの名無しさん
2009/10/14(水) 22:46:260434デフォルトの名無しさん
2009/10/14(水) 23:24:54開発者でなくてもできるだろうけど,もっと弄りたかったら自分でMSDN読めというのはちょっとなあ
0435デフォルトの名無しさん
2009/10/15(木) 02:49:23画像変えたりボタンちょろっと弄ったりする程度ならXAMLを弄らせる必要はないけど
もっと弄って根本からUI変更したいならXAML弄らせるのが一番だろう。
どこまでやるかによるけど、専用のUIマークアップ言語用意するのって結構手間かかるからねぇ
0436デフォルトの名無しさん
2009/10/15(木) 10:05:450437デフォルトの名無しさん
2009/10/15(木) 13:02:080438デフォルトの名無しさん
2009/10/17(土) 18:08:270439デフォルトの名無しさん
2009/10/17(土) 18:32:430440デフォルトの名無しさん
2009/10/17(土) 20:26:100441デフォルトの名無しさん
2009/10/17(土) 20:58:00MSDNで引いたほうが早い
0442デフォルトの名無しさん
2009/10/17(土) 21:34:10じゃないと作って動いてくれても不安たっぷりものしかできない
0443デフォルトの名無しさん
2009/10/17(土) 21:40:060444デフォルトの名無しさん
2009/10/17(土) 21:41:53あとBlendのエディタもVSと同じように見やすくしてほs・・・
ここでいうことじゃないか
0445デフォルトの名無しさん
2009/10/17(土) 21:43:370446デフォルトの名無しさん
2009/10/17(土) 21:47:440447デフォルトの名無しさん
2009/10/17(土) 22:51:060448デフォルトの名無しさん
2009/10/18(日) 19:23:42マイクロソフトのサイトを読むと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++/CLIってネイティブコードと.NETの相互運用のためだけに作られた言語であって
WPFなんか使えたって意味がない
0450デフォルトの名無しさん
2009/10/18(日) 21:31:50てか、もとからBlendはVB、C#(SLはJavaScript)のみだ
0451デフォルトの名無しさん
2009/10/18(日) 23:14:470452デフォルトの名無しさん
2009/10/18(日) 23:17:46ますますVC++は使い物にならなくなっていくってことだな?
.NETへの傾倒が強まれば必然的にVC++はあの世行きか。
0453デフォルトの名無しさん
2009/10/18(日) 23:19:00何年か前に見た夢だな。
現実になればいいが。
0454デフォルトの名無しさん
2009/10/18(日) 23:23:40そこはまあ上手く役割分担していくんだろう
C#もVBも高速化していったら終わりだが
0455デフォルトの名無しさん
2009/10/19(月) 00:38:46いやまあ、HwndHostとかD3DImageとかの部分に使ったことがあるだけで、WPF部分はほとんどXAML/C#だけどね。
0456デフォルトの名無しさん
2009/10/19(月) 00:51:330457デフォルトの名無しさん
2009/10/19(月) 01:08:240458デフォルトの名無しさん
2009/10/19(月) 01:08:40というのもプロパティに値を代入するのにバインディングを使うのが面倒なのでそこだけコードでやりたいのです。
0459デフォルトの名無しさん
2009/10/19(月) 08:49:160460デフォルトの名無しさん
2009/10/19(月) 10:07:47http://www.xlsoft.com/jp/products/windriver/support/tech_docs/td128.html
0461デフォルトの名無しさん
2009/10/19(月) 15:10:40未だに向き不向きとかある?
0462デフォルトの名無しさん
2009/10/19(月) 16:35:350463デフォルトの名無しさん
2009/10/19(月) 16:46:510464デフォルトの名無しさん
2009/10/19(月) 18:43:320465デフォルトの名無しさん
2009/10/19(月) 21:45:280466デフォルトの名無しさん
2009/10/19(月) 21:52:32XMLだから簡単だろ
0467458
2009/10/19(月) 22:01:35hoge.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<button Command="{Binding XXXCommand}">
<Image />
</button>
みたいな感じでボタンを作りました。
CanExecute()==false のとき、クリック不可に
なるんですが、あわせてグレイアウト(もしくは
半透明に)したいんですが、どうすれば
よいでしょうか?
0469デフォルトの名無しさん
2009/10/20(火) 12:11:19それじゃダメってことならTemplateいじることになる
0470デフォルトの名無しさん
2009/10/20(火) 14:24:38とうろ覚えてみる
0471デフォルトの名無しさん
2009/10/20(火) 14:34:180472デフォルトの名無しさん
2009/10/20(火) 15:07:17Buttonの子は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横方向にはサブピクセルの、縦方向にはグレースケールのアンチエイリアスがかかる!」
というのがさかんに宣伝されてますが、実際表示させてみると(少なくともメイリオは)
縦方向のアンチエイリアスがかかってないような気がします。
http://uproda11.2ch-library.com/206376sm7/11206376.png
こういうものなんでしょうか?
0474デフォルトの名無しさん
2009/10/20(火) 15:53:16そこまでするならテンプレートでVSM使った方がいい
0475デフォルトの名無しさん
2009/10/20(火) 17:59:37今んとこそう言うもの
ぶっちゃけバグつか未実装部分
0476デフォルトの名無しさん
2009/10/20(火) 23:11:53メイリオの特性。Y軸アンチエイリアスは実装されているよ。
MSゴシックあたりで試すといい。
0477デフォルトの名無しさん
2009/10/21(水) 17:55:38ttp://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=7d1df9ce-4aee-467f-996e-bec826c5daa2
0478デフォルトの名無しさん
2009/10/22(木) 00:14:17一応問題なく動いているようなんですが・・・
0479デフォルトの名無しさん
2009/10/22(木) 00:40:51あんま心配してなかったし何も起きていない気がする。
ImageとかFreezableなオブジェクトも大丈夫なはずだよね?よね?
0480デフォルトの名無しさん
2009/10/22(木) 16:35:08ttp://www.infoq.com/jp/news/2009/10/WPF-Memory-Leak
0481デフォルトの名無しさん
2009/10/22(木) 16:38:510482デフォルトの名無しさん
2009/10/22(木) 16:59:56俺はいまだに「このイベント呼ばれればこのストーリーボードを呼べ!」といったコードを書いてしまう。
というかこっちの方がまだ簡単で読みやすいと思ってしまうんだけど、みんなはどうしてる?
0483デフォルトの名無しさん
2009/10/22(木) 20:59:13量が増えると どうかというのがありそうですが、
その前にあんまアニメーション使わないw
0484デフォルトの名無しさん
2009/10/22(木) 22:19:05まぁどこまで分離出来るようにするかによるんだろなー
アニメは適度に使うとUXあがるとは思う。
0485デフォルトの名無しさん
2009/10/23(金) 01:15:05一部の奴が騒いでたビットマップフォントが表示されるようになったんだが。
0486デフォルトの名無しさん
2009/10/23(金) 01:40:050487デフォルトの名無しさん
2009/10/23(金) 01:42:20http://blogs.msdn.com/text/default.aspx
0488デフォルトの名無しさん
2009/10/23(金) 01:47:160489デフォルトの名無しさん
2009/10/23(金) 02:13:300490デフォルトの名無しさん
2009/10/23(金) 08:05:06立体的になるところ)を変えたいんですが Triggers で Background 変える
だけだと一瞬だけ変わってすぐに元の青いものになってしまいます。
ControlTemplate でやるのかなのかなと思うのだけどうまくできなくて
どこかにサンプルありませんか。
msdn のやつはみたんですが解説が少なくてポイントがよくわからないです
0491デフォルトの名無しさん
2009/10/23(金) 09:00:09どう弄ればいいかはそのテンプレート見ればだいたいわかる
0492デフォルトの名無しさん
2009/10/23(金) 22:37:52そのレベルに達していなくてmsdnのやつはStyleそのものしかないので
ListView のどこにそれぞれTemplateとかStyleとかで追加したらいいかわからないです
0493デフォルトの名無しさん
2009/10/23(金) 23:56:10button wpf controltemplate でググれ
0494デフォルトの名無しさん
2009/10/24(土) 01:32:58これを使用した解説が欲しい
http://wpf.codeplex.com/wikipage?title=WPF%20Model-View-ViewModel%20Toolkit&ProjectName=wpf
0495デフォルトの名無しさん
2009/10/24(土) 08:23:56WPFはMVVMがメインストリーム。MSDNに有名な記事があるだろ。
0496デフォルトの名無しさん
2009/10/24(土) 08:31:370497デフォルトの名無しさん
2009/10/24(土) 10:04:000498デフォルトの名無しさん
2009/10/24(土) 12:48:150499デフォルトの名無しさん
2009/10/24(土) 13:53:39DependencyProperty.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 = new ObservableCollection<string>(); // ここでOnDataPropertyChanged呼び出し
ObservableCollection<T>.CollectionChangedを使う
0501デフォルトの名無しさん
2009/10/24(土) 21:45:00おお、ありがとう。
こういうことでいいんかな?
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:440503デフォルトの名無しさん
2009/10/25(日) 00:43:56無視されるんだが、なんでだろ〜?
エラーはなんにもでないんですが。
0504デフォルトの名無しさん
2009/10/25(日) 08:43:25Windows Media Playerで再生速度変えられる?
0505デフォルトの名無しさん
2009/10/25(日) 16:31:150507デフォルトの名無しさん
2009/10/25(日) 22:32:43D3Dに関してはD3DImageでもまだ駄目?なんだよね……。
0508デフォルトの名無しさん
2009/10/25(日) 23:30:51すると、Button のワクだけが残ってしまいました。
この枠を消しつつ、その他の動作はデフォルトのままにする方法はありますか?
ControlTemplate は設定してみたんですが、マウスオーバーとかの動作も
消えてしまったので・・・。
0509デフォルトの名無しさん
2009/10/26(月) 01:12:24そのワクは「Microsoft_Windows_Themes:ButtonChrome」っつーコントロールが描画してて
BorderBrushを変えようが何しようがどうにもならないので、
自前でこのページを手本にControlTemplateを手作りするしかないんじゃないですかね
http://msdn.microsoft.com/ja-jp/library/ms753328.aspx
Blendなら「SimpleButton」を元に自分で改造していくとか
0510デフォルトの名無しさん
2009/10/26(月) 07:33:58クリックやマウスオーバーに反応させるだけならCanvasでもなんでもいいのでは?
0511デフォルトの名無しさん
2009/10/26(月) 08:46:40枠も黒にすればいいとかそういう話ではなくて?
0512508
2009/10/26(月) 12:12:19>>509
やっぱ ControlTemplate 手作りですか・・・。その方向で検討します。
>>510
Canvas を使うって方法は思いつきませんでした。
ただ、MVVM で作ってるんで、Command プロパティが欲しいので
その方法はむりかも。
>>511
Style で BorderBrush を Black にしても無視されます。
うちは VS2008SP1 ですが、バージョンによって挙動が違うのかな?
0513デフォルトの名無しさん
2009/10/26(月) 12:15:51すると、もとの文字にはない余計な線が一本入ってしまってるんですが、
("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だからどうってわけじゃないがw
0515458
2009/10/27(火) 13:45:530516デフォルトの名無しさん
2009/10/27(火) 13:46:360517デフォルトの名無しさん
2009/10/27(火) 16:03:01それ、タッチパネルデバイスならありじゃないのか
WM7はWPF動くのかのう
0518デフォルトの名無しさん
2009/10/27(火) 17:03:09動かなかったらVS2010できないではないか
0519デフォルトの名無しさん
2009/10/27(火) 18:14:19それか、シムズみたいな3Dの部屋があって、テレビクリックすると
ズームして映像が流れるとか
0520デフォルトの名無しさん
2009/10/27(火) 18:34:07自分的にはイノセンスの最後に出てきたロボット製造工場みたいのキボン
0521デフォルトの名無しさん
2009/10/29(木) 02:26:39現行の WebBrowser は Navigating イベントで
postData を見ることができないようです。
VS2010 で、この点が改良されるかどうかご存じのかたが
いらっしゃいましたら教えてください。
0522デフォルトの名無しさん
2009/10/29(木) 23:35:52行列のアニメーションってttp://msdn.microsoft.com/ja-jp/library/ms742524.aspx
ここみるとサポートされてるの離散方式だけなんですよね。
滑らかにアニメーションさせたいんですがどういう方法がありますか?
0523デフォルトの名無しさん
2009/10/31(土) 19:28:08MatrixKeyframeを継承してキーフレームを自作してしまうこともできそうだけど単純な線形補完では意味ないから余計に難しいと思う
0524デフォルトの名無しさん
2009/11/03(火) 00:04:01DockPanel の中央に動画、下部にボタンのならんだツールバーのある普通の配置です。
この画面をフルスクリーン表示にしたときは、ツールバーを非表示にして、
マウスを画面下部に持って行ったらツールバーが出てくるようにしました。
現在は、Height を調整しているのでが、そうするとツールバーが出てくると、動画のサイズが変わってしまいます。
ツールバーを表示しても動画のサイズを変えないようにするにはどうしたらよいでしょうか?
わかりにくい文章ですみません。
0525デフォルトの名無しさん
2009/11/03(火) 01:52:060526デフォルトの名無しさん
2009/11/04(水) 01:23:21Media Playerで十分。
0528デフォルトの名無しさん
2009/11/06(金) 02:34:13自分でユーザーコントロール/カスタムコントロール作ろうとすると
とたんに難易度が跳ね上がって今の自分の手には負えない
誰かいい方法を知りませんか?
つーか自分の所のUXガイドライン(http://msdn.microsoft.com/ja-jp/library/aa511453.aspx)
に載せてるコントロールくらいは標準で持っていて欲しい
0529デフォルトの名無しさん
2009/11/07(土) 02:22:15例えば、すばやく右へ平行移動してる最中にクリックすると左への平行移動も始める(結果、減速してるように見える)
ってなことを1つのRenderTransformでやる。
Canvasなんかのコンテナ用意して別々のRenderTransformに適用すればうまくいきそうだけど、
できるなら1つのでやってみたいなあ、と。あんまり意味ないかな?
0530デフォルトの名無しさん
2009/11/07(土) 09:29:240531デフォルトの名無しさん
2009/11/07(土) 11:14:420532デフォルトの名無しさん
2009/11/07(土) 11:42:22compizと対応するのはDesktop Window Managerだろ?
WPFと対応するのはGTKやQTだろ?
0533デフォルトの名無しさん
2009/11/07(土) 12:10:24ttp://www.codeproject.com/KB/WPF/WpfSplitButton.aspx
ググレカス [ Gugurecus ]
( 2006 〜 没年不明 )
, イ)ィ -─ ──- 、ミヽ
ノ /,.-‐'"´ `ヾj ii / Λ
,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
ノ/,/ミ三ニヲ´ ゙、ノi!
{V /ミ三二,イ , /, ,\ Yソ
レ'/三二彡イ .:ィこラ ;:こラ j{
(省略されました・・全てを読むにはここを押してください)
0534デフォルトの名無しさん
2009/11/07(土) 13:32:56なんで気づかなかったんだろう
TranslateTransform2つ用意したらできたよ!ありがとう
0535デフォルトの名無しさん
2009/11/12(木) 03:03:201/2っていう指定を xaml でしたいんだけど、IValueCoverter を実装する以外に
方法ないかな?
0536デフォルトの名無しさん
2009/11/12(木) 15:17:09ないとおもわれる。
0537535
2009/11/12(木) 17:05:12できれば xaml だけですませたかったんだけど、やっぱ無理なんだね。
ありがとう。IValueConverter実装で行ってみる。
0538デフォルトの名無しさん
2009/11/13(金) 10:05:13まあ、根本的な解決にはなってないが、どうしてもXAMLだけで済ませたいならRendarTransformで描画を半分にしちゃうとかw
0539デフォルトの名無しさん
2009/11/15(日) 19:16:290540デフォルトの名無しさん
2009/11/15(日) 19:33:070541デフォルトの名無しさん
2009/11/15(日) 19:37:32いかんせん今では日本語では資料がないし、良い図書がない。
WinFormならいきなり新人に触らせてもググりながら覚えていけるだろうがWPFは無理。
本もEssential WPF程度しかない。アレはある程度C#/WPFの知識がある人じゃないと読めないだろ。
0542デフォルトの名無しさん
2009/11/15(日) 20:07:09βさわってないからなんともいえないけど
Expression BlendみたいなのがMS製品で存在する以上、
VS2010でもフォームいじりは今一な感じになりそうな気がするよ・・・
0543デフォルトの名無しさん
2009/11/15(日) 20:23:070544デフォルトの名無しさん
2009/11/15(日) 20:28:15SVGならInkscapeあるしこれをXAMLに変換できれば画像はなんとかなる?
0545デフォルトの名無しさん
2009/11/15(日) 20:29:36プロパティの説明が出なかったりXAML直接編集しないと出来ないこと多かったりで
なんか完成度低くない?
0546デフォルトの名無しさん
2009/11/15(日) 20:59:04Freamwork4の見どころのPallarelは3.5でも使えるようだし
今Blend3+VS2008な人は2010に移行する必要ないよね
0547デフォルトの名無しさん
2009/11/15(日) 21:12:43WPF4自体はかなりいろいろ改善されてるみたいだよ
やっぱりVS2010に使われたのが大きいんだろうな
0548デフォルトの名無しさん
2009/11/15(日) 21:16:200549デフォルトの名無しさん
2009/11/15(日) 21:19:45アップロードに金がいるかどうかは別だが
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:240553デフォルトの名無しさん
2009/11/16(月) 12:24:29任意にリサイズさせたいときはどうしてる?やっぱりCanResizeGripしかない?
0554デフォルトの名無しさん
2009/11/16(月) 12:45:31それが一番手っ取り早いと思うけど。
0555デフォルトの名無しさん
2009/11/16(月) 12:55:36やっぱりそうなのかあ
ZuneSoftwareみたいな、ドロップシャドウを出しつつ全方向からリサイズできたらかっこいいなあなんて思った
0556デフォルトの名無しさん
2009/11/16(月) 21:29:43ContextMenu.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できました。ありがとうございます
BlendだとContextMenuのプロパティをGUIから新規作成するのが容易にできないので見落としてました
0559デフォルトの名無しさん
2009/11/17(火) 19:37:21つTunnelイベント
0560デフォルトの名無しさん
2009/11/17(火) 21:31:560561デフォルトの名無しさん
2009/11/17(火) 22:44:01ある程度ってどの程度?
今日本屋さんで注文しちゃったよ
ウワーーーーン
0562デフォルトの名無しさん
2009/11/18(水) 00:01:58わけわかんない
0563デフォルトの名無しさん
2009/11/18(水) 00:05:050564デフォルトの名無しさん
2009/11/18(水) 00:19:17こういうの気持ち悪い
わけわからん
アクセスしてもThe page cannot be foundってでるし
0565デフォルトの名無しさん
2009/11/18(水) 00:20:44とりあえず、XMLの基礎知識なのでスレチ
0566デフォルトの名無しさん
2009/11/18(水) 02:34:23OuterGlowBitmapEffect がないんだけど、
これは BitmapEffect 使ってろってこと?
0567デフォルトの名無しさん
2009/11/18(水) 02:56:510568デフォルトの名無しさん
2009/11/18(水) 03:19:14DropShadowEffectでおk だそうだ
0569デフォルトの名無しさん
2009/11/18(水) 14:47:31TextBoxならInputMethod.IsInputMethodEnabled="False"でできるんですが…
0570デフォルトの名無しさん
2009/11/18(水) 16:27:09C#2.0の機能すらよくわからない俺でもそれなりに読めるけど
けっこうちんぷんかんぷん。
「こんな機能を実装しました。他にも同様の手段がありますがこうこうこういう理由でこれを選びました。」
「従来のだとこういう風なことはこういう理由で実現しづらいものだった。
なのでWPFではこういう手法でこの機能を用意しました」
「なぜこのオブジェクトが必要なのかはこういう理由で・・・」
みたいな事を詳しくいっぱい書いてるものだと思ってたけど、期待したほどでもなかったな。
まだコントロールの章を読んでる途中だけど
0571デフォルトの名無しさん
2009/11/18(水) 16:52:28Blendを使っている場合は、テンプレートの編集→コピーして編集 を行い、
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ありがとうございます。
foregroundのMouseDownなりをキャッチして、
e.OriginalSourceがnullならbackgroundをHitTestという理解でいいでしょうか。
0573デフォルトの名無しさん
2009/11/18(水) 20:37:33IntelliSenseが最良のC#参考書と言われるのと同じように、
結局Blendであちこちいじってみるのが一番の習得法だったりする、というのが実感
でも参考書代わりにするにはちょっと高すぎる
Blend Expressが欲しいなあ
MSとしてはそこの領域はVS(Express)2010のXAMLデザイナに任せるということなのかもしれないけど
0574デフォルトの名無しさん
2009/11/18(水) 20:54:54あの本は重要な部分の説明がさりげなくボロっと落ちてたりする。
各種機能を一回触ってある程度使って中身を分かっている人なら理解できるだろうが、
ゼロベースで読んだらかなり苦戦すると思う。
0575569
2009/11/18(水) 22:29:10スタイルはまだよく理解できてないので、添付プロパティで対処しました。
ttp://codepad.org/31OfMdr2
Loaded後じゃないとPART_EditableTextBoxが見つからないみたいです。
ありがとうございました。
0576デフォルトの名無しさん
2009/11/18(水) 23:04:51最初から全部MergedDictionariesにしとけよ
いちいち書かせるなよ
めんどくせーな
0577デフォルトの名無しさん
2009/11/19(木) 00:04:49<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なんですが、こんなやり方でいいんでしょうか?
もっとスマートなやり方ないでしょうか?
0579デフォルトの名無しさん
2009/11/19(木) 13:02:070580デフォルトの名無しさん
2009/11/19(木) 13:16:21スタイルやテンプレート、バインディングに関してあまり自身がないなら
読んだほうがいいかも。
3Dのことに関しても書かれているが、興味なければ読み飛ばしてOK。
0581デフォルトの名無しさん
2009/11/19(木) 13:19:31やさしい人ありがとう
0582デフォルトの名無しさん
2009/11/19(木) 16:04:01WPF4.0製か?w
0583デフォルトの名無しさん
2009/11/19(木) 16:19:390584デフォルトの名無しさん
2009/11/19(木) 21:05:16Direct2DってDirect3Dのラッパーみたいなもの
立ち位置としてはWPFと同じようなものなので使う意味がない
0585デフォルトの名無しさん
2009/11/19(木) 22:59:080586デフォルトの名無しさん
2009/11/19(木) 23:33:47D3DXみたいなものに過ぎない
0587デフォルトの名無しさん
2009/11/19(木) 23:51:36(WPFを使わず)Direct2Dで描画しているのだろうと書いたわけだけど?
0588デフォルトの名無しさん
2009/11/19(木) 23:53:170589デフォルトの名無しさん
2009/11/19(木) 23:55:44IE9の描画にWPF使ってるんじゃね?
→WPF使わなくてD2D使ってるんじゃね?
→WPFがD2D使うわけないじゃん(????)
ってことだよな。
0590デフォルトの名無しさん
2009/11/19(木) 23:57:29なんか昔は柔軟だけどもっさもさだった気がしたんだが、その辺は使えるレベルになったんでしょうか?
0591デフォルトの名無しさん
2009/11/19(木) 23:58:27この人の読解力がダメダメって事でFA。
0592デフォルトの名無しさん
2009/11/19(木) 23:59:350593デフォルトの名無しさん
2009/11/20(金) 00:15:450594デフォルトの名無しさん
2009/11/20(金) 00:15:49まだ普及したとは言えないよなぁ
Silverlightだけ生き残ったりして
0595デフォルトの名無しさん
2009/11/20(金) 00:28:260596デフォルトの名無しさん
2009/11/20(金) 00:37:43扱いにくいのがアレだが
0597デフォルトの名無しさん
2009/11/20(金) 00:43:450598デフォルトの名無しさん
2009/11/20(金) 00:45:020599デフォルトの名無しさん
2009/11/20(金) 00:46:11>WPFアプリからDirectWriteを扱う必要性もない
ん?
.NET 4 beta2のWPFアプリではdwrite.dllがプロセスに読み込まれてるよ。
実際どこかでDirectWriteを使うって話も読んだ気がする。
0600デフォルトの名無しさん
2009/11/20(金) 00:51:02WPFがD2D/DWriteをインフラに使うのは十分ありじゃね?
0601デフォルトの名無しさん
2009/11/20(金) 01:44:38あ、そうだったんですか。
「DirectWriteはWPFが自前で行ってるテキスト処理と同等の表現を
Win32アプリからでも扱えるAPI」だと聞いてたもんで。
じゃあWPF4ではテキスト処理をDirectWriteに委任することになったってことですかね?
0602デフォルトの名無しさん
2009/11/20(金) 06:23:020603デフォルトの名無しさん
2009/11/20(金) 07:53:14URL見ただけでどんな記事かわかるってのはいいなw
0604デフォルトの名無しさん
2009/11/20(金) 12:32:58これまでより速くなることを期待してもいいのかな?
0605デフォルトの名無しさん
2009/11/20(金) 12:46:29そこ問題が明らかでない限りなんともいえないでしょ。
0606デフォルトの名無しさん
2009/11/20(金) 13:04:120607デフォルトの名無しさん
2009/11/20(金) 13:41:48少なくとも地図ぐりぐりスクロールみたいなAJAXアプリでは
描画がボトルネックになってると認識してるんでしょう。
あとテキスト描画エンジンを一新したいという意図もあるだろうし。
0608デフォルトの名無しさん
2009/11/20(金) 20:46:480609デフォルトの名無しさん
2009/11/20(金) 20:53:02VS2010はともかくOffice2010はWPFアプリじゃないだろう…
0610デフォルトの名無しさん
2009/11/20(金) 21:00:53それは間違い
取り入れたというより,WPFの低レベルな部分をC++からも使えるようにしたようなものを
Direct2DやDirectWriteと呼ぶことにしただけ
0611デフォルトの名無しさん
2009/11/20(金) 21:07:170612デフォルトの名無しさん
2009/11/20(金) 21:14:49◯(IEに)D2Dを取り入れて速くなることを期待
×(WPFに)D2Dを(ry
0613デフォルトの名無しさん
2009/11/20(金) 21:20:56D2D使うんだったら空域分けずにWPFのサーフェスに直接描画することもできそうなもんだけど
0614デフォルトの名無しさん
2009/11/20(金) 21:49:05それは逆だろう。
>>599の「.NET4ではDirectWriteを使っているらしい」という
レスから話が繋がってる。
0615デフォルトの名無しさん
2009/11/20(金) 21:49:59HTMLの勉強を先にしたほうがいい?
0616デフォルトの名無しさん
2009/11/20(金) 21:51:44何やっても身に付かないよ。
0617デフォルトの名無しさん
2009/11/21(土) 00:16:44なんでだろね。ハードル高いのか?必要ないのか?
ちまたではLinuxの奴の方がすごいとかも聞くんだが、どうなんだろ?
アーキテクチャ的に、あとプログラミングモデル的に両者の違いとか教えてたもれ。
0618デフォルトの名無しさん
2009/11/21(土) 00:19:570619デフォルトの名無しさん
2009/11/21(土) 00:42:370620デフォルトの名無しさん
2009/11/21(土) 02:08:040621デフォルトの名無しさん
2009/11/21(土) 02:27:03個人的には「遅いから」のひとことに尽きるような。
0622デフォルトの名無しさん
2009/11/21(土) 02:50:370623デフォルトの名無しさん
2009/11/21(土) 02:54:32言うほど遅くもないだろ。
.NETの技術は業務利用されてナンボだと思うんだけど、まだ一部にWin2K端末が
残ってる企業は多々あるから、積極的に採用しづらいんじゃね?少なくともウチはそう。
来年〜再来年あたりは状況が変わってくると思うけどね。
バインディングシステムが強力なので、個人的にはすぐにでも乗り換えたい。
0624デフォルトの名無しさん
2009/11/21(土) 05:09:06AtomのNetbookにWPFアプリは使いものにならないレベル
0625デフォルトの名無しさん
2009/11/21(土) 06:12:242kと同様に切り捨ててる。
0626デフォルトの名無しさん
2009/11/21(土) 08:28:04PC 入れ換え代込みで納得してもらえる程 WPF を積極的に押せる説得材料が思いつかない。
0627デフォルトの名無しさん
2009/11/21(土) 08:56:270628デフォルトの名無しさん
2009/11/21(土) 09:00:43INotyfyPropertyChangedは書くのが正直めんどくさい。
>625
まじっすか・・・
Linuxで3Dぐにょぐにょやってるやつは速そうなのに、あれとはやってることが別物なの?
0629デフォルトの名無しさん
2009/11/21(土) 09:16:20業務アプリは難しいだろうね。
作り易いら工数下ります!って言えるほど習熟してないしなぁ・・・
ところで将来的にWindowsFormは廃止されるのかな?
0630デフォルトの名無しさん
2009/11/21(土) 11:14:26VS2010待ちだな
0631デフォルトの名無しさん
2009/11/21(土) 11:42:47確かに最初は面倒臭いけど、フォームクラスにイベント処理をぐちゃぐちゃ
書くより全然マシだと思う。
透過プロキシ使うとか、INotyfyPropertyChangedの実装を楽にする方法が
無いわけじゃないし。
0632デフォルトの名無しさん
2009/11/21(土) 12:52:450633デフォルトの名無しさん
2009/11/21(土) 13:15:230634デフォルトの名無しさん
2009/11/21(土) 13:38:400635デフォルトの名無しさん
2009/11/21(土) 17:32:220636デフォルトの名無しさん
2009/11/21(土) 17:38:44正式版に期待
0637デフォルトの名無しさん
2009/11/21(土) 20:05:260638デフォルトの名無しさん
2009/11/21(土) 20:25:13BIやエンジニアリング分野にはいいかもしれんけど。
0639デフォルトの名無しさん
2009/11/21(土) 20:34:48Panel系がどんな環境下でもそれなりに崩れずに見えるんなら、だが
0640デフォルトの名無しさん
2009/11/21(土) 21:09:40崩れるかどうかは使い方の問題
0641デフォルトの名無しさん
2009/11/22(日) 00:27:14個人的には、これが正解かな。
WinFormは、ど素人でも見た目はそれなりの形になるのがいいところ。
0642デフォルトの名無しさん
2009/11/22(日) 00:52:260643デフォルトの名無しさん
2009/11/22(日) 00:52:280644デフォルトの名無しさん
2009/11/22(日) 01:24:42WPFぐらいになるとWinForm使えるレベルの人材では絶対無理な領域なんだよなぁ。
生産性求めるというより、ある程度お金賭けてでも視覚化すること効果のある分野が普及しそうに思う。
0645デフォルトの名無しさん
2009/11/22(日) 01:43:120646デフォルトの名無しさん
2009/11/22(日) 04:28:20ここのやり方で ScrollViewer は取得できたけど、
1000行くらいの FlowDocument を C# コードで作って
FlowDocumentScrollViewer.Document = document;
としたあとすぐに ScrollViewer.ScrollToEnd() すると300行くらいの
中途半端なところでスクロールが止まってしまうorz
ドキュメントの最後を表示させたいんだけど何か方法はない?
0647デフォルトの名無しさん
2009/11/22(日) 09:19:40VCのデザイナがWinFormと同レベルぐらいになって
カスタムコントロールが出揃えば業務システムなんかでも使われるようになるんじゃないかね。
0648デフォルトの名無しさん
2009/11/22(日) 10:41:32非開発系の環境ではXP + Celeron1Gあたりが普通に使われている
そういうマシンが全部死ぬまで簡単には普及しないんじゃないか?
0649デフォルトの名無しさん
2009/11/22(日) 11:11:43フリーソフトやマイクロソフトの製品でWPFがある程度使われるようになれば
客からWPFでないと実現しにくいような要求が出てきて、
自然とWPFが採用されるんじゃないかな?
0650デフォルトの名無しさん
2009/11/22(日) 11:52:190651デフォルトの名無しさん
2009/11/22(日) 14:37:35「なんか重いんですけど」とか「なんかちらつくんですけど」となるのが
WinFormのFAQだった気がする。
最近はあまり見ない気もするけど、
WPFじゃなくてWebアプリに持って行かれたのかねぇ。
0652デフォルトの名無しさん
2009/11/22(日) 14:42:24それぞれボタンを押して処理させてくれ、
画面遷移は少なくしてくれだのなんだので
結局、重くなるループ。
0653デフォルトの名無しさん
2009/11/22(日) 15:02:00とか用意されてないやつを変えたいというのも FAQ だよ
なぁ。API を使ってこのメッセージを…みたいに返すやつ。
WPF ならすぐだなってのも多い
0654デフォルトの名無しさん
2009/11/22(日) 16:35:10ajaxでクリアできる問題ばかりだな
0655デフォルトの名無しさん
2009/11/22(日) 18:02:13ただなんかWebアプリっていうよりajaxってなんかひ弱な感じがしない?
バッドノウハウの塊ってのはいいすぎだけど
ライブラリが乱立しすぎてなんか怖い
0656デフォルトの名無しさん
2009/11/22(日) 18:07:360657デフォルトの名無しさん
2009/11/22(日) 18:10:06ああ、要件上は解決できるさ。要件上はな。
0658デフォルトの名無しさん
2009/11/22(日) 18:22:24そのうちWPFも吸収されるんじゃね
0659デフォルトの名無しさん
2009/11/22(日) 18:23:580660デフォルトの名無しさん
2009/11/22(日) 22:14:01X-Windowは完全に死んだね
0661デフォルトの名無しさん
2009/11/22(日) 22:33:080662デフォルトの名無しさん
2009/11/22(日) 22:49:190663デフォルトの名無しさん
2009/11/23(月) 00:17:28uiEle.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:42Gridのレイアウトに使うだけの情報だから取得が必要な使い方をするのが間違ってる
0666デフォルトの名無しさん
2009/11/23(月) 00:27:17昔のアプリでも似たようなこと実現できてるよね。
WPFからアプリ開発はじめた身としては以前とどう違うのかさっぱりわからん
かといっていまさらWinFormとかやりたくないしな
0667デフォルトの名無しさん
2009/11/23(月) 00:32:23WPFなら一瞬でできるけどWinFormsだとデータソースとかいちいち介さないといけなくて余計に面倒で普通にコード書いたほうが早い
0668デフォルトの名無しさん
2009/11/23(月) 02:26:20IBindableComponentを実装すればいいんだけど、面倒くさい。サンプル少ない。
・FormatイベントやParseイベントよりも、IValueConverterのほうがスマートだと思う。
0669デフォルトの名無しさん
2009/11/24(火) 03:10:42ContentTemplateにいろいろコントロール入れてもインスタンスは1個しか作られないんじゃん
テキストボックスに入力した内容なんかが全部のタブで同じになっちゃうじゃん
それじゃ使えないじゃん
0670デフォルトの名無しさん
2009/11/24(火) 13:57:39XAML初心者17才女子高生です
0671デフォルトの名無しさん
2009/11/24(火) 14:09:14普通に
<ListView GridLines="true" ... >
でいいと思うけど。
0672デフォルトの名無しさん
2009/11/24(火) 14:14:45Expression Blend3だと
メンバー"GridLines"が認識されないか、アクセスできません。
とでます
0673デフォルトの名無しさん
2009/11/24(火) 14:51:17セルって意識があんまりない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:570676デフォルトの名無しさん
2009/11/26(木) 00:35:55DataTemplateの制約だろうね。
タブ付きMDIの代わりはまだ自作するしかない。
0677デフォルトの名無しさん
2009/11/27(金) 13:54:08売ってないね
0678デフォルトの名無しさん
2009/11/27(金) 14:24:390679デフォルトの名無しさん
2009/11/27(金) 14:28:18でもエスパー発動するとC#で書かないとだめ
0680デフォルトの名無しさん
2009/11/27(金) 14:34:49アニメーション定義はXAMLかコードどっちがいいですか?
というかXAMLでできるのかな・・・
0681デフォルトの名無しさん
2009/11/27(金) 14:44:24あの本いまさら価値無いと思うけど
0682デフォルトの名無しさん
2009/11/27(金) 14:53:27エッセンシャル WPF?
0683デフォルトの名無しさん
2009/11/27(金) 15:24:46翻訳がおかしいのか説明不足なのか、内容がいまひとつわかりにくいし
他の書籍はわからん
0684デフォルトの名無しさん
2009/11/27(金) 21:26:03画面を描画すると、そのディスプレイの画面サイズに
自動調整されてしまい、画面の見た目が切れてしまうの
ですが、これを回避する方法はどうすればよいのでしょうか?
0685デフォルトの名無しさん
2009/11/27(金) 22:08:39画面に収まらないものはどうしようもないだろ
折り返すなり省略するなり縮小するなり好きにしろ
使い方の問題であって一般にどうこう言えるような問題じゃない
0686デフォルトの名無しさん
2009/11/28(土) 00:36:420687デフォルトの名無しさん
2009/11/28(土) 00:42:280688デフォルトの名無しさん
2009/11/28(土) 01:14:550689デフォルトの名無しさん
2009/11/28(土) 03:11:19考えれ。
0690デフォルトの名無しさん
2009/11/28(土) 03:25:410691デフォルトの名無しさん
2009/11/28(土) 22:10:59http://journal.mycom.co.jp/articles/2009/09/01/3ddigitalclockforwpf/
0692デフォルトの名無しさん
2009/11/29(日) 12:30:390693デフォルトの名無しさん
2009/11/29(日) 14:27:45んじゃなかったっけ?
0694デフォルトの名無しさん
2009/11/29(日) 14:36:38コントロールを解体して中身が覗けるのが一番大きい違いだなあと使ってて思う
0695デフォルトの名無しさん
2009/11/29(日) 15:36:530696デフォルトの名無しさん
2009/11/29(日) 18:02:58そんなの裏でやっちゃえよ、っていいたくなるのがたくさんある
0697デフォルトの名無しさん
2009/11/29(日) 18:35:08細部まで手入れできるって点では進化なんだろうけど。
単純に形にするという点では難しい。
とりあえずUIとかのスタイルを、荒い粒度でいいから、
ボタン一発とかで切り替わって、ある程度のデザインの品質になってくれれば
良いなぁとも思う。
0698デフォルトの名無しさん
2009/11/29(日) 18:49:20ただ今のIDEの性能が低すぎて事実上Formより退化してる
Ver.3からマトモになるジンクスの崩壊とも言うな
4.0は話聞く限りはやっと使い物になりそうだが果たして
0699デフォルトの名無しさん
2009/11/29(日) 19:00:48それともそんなツールとか用意されているの?
0700デフォルトの名無しさん
2009/11/29(日) 19:01:52>4.0は話聞く限りはやっと使い物になりそうだが果たして
WPFもXAMLも.NET 3.0で登場して3.5でさらに改良されたわけで
期待するなら4.0で合っているんでは?
0701デフォルトの名無しさん
2009/11/29(日) 19:11:25ぜんぜん別物なんでその必要が無いのだと思うけど。
0702デフォルトの名無しさん
2009/11/29(日) 19:22:57ある部分だけWPFを使って、その他は従来通りみたいな。
0703デフォルトの名無しさん
2009/11/29(日) 19:30:27デザイナとかがどこまで対応してるかは知らないけど
0704デフォルトの名無しさん
2009/11/29(日) 19:32:45できる。その逆もしかり。
現状あえてWPF使わなきゃいけない事情がないから
そんなことしたことないけど。
WPF使ってるときに必要なカスタムコントロールが無いから
Formsのを使う、ってことはこれから先ありそうだけど。
0705デフォルトの名無しさん
2009/11/29(日) 19:50:56次の仕事のGUIをどうしようか調査していたんですが、
まあ先を見越してWPFをメインにして、ない部分はFormsを使うようにしたいと思います。
0706デフォルトの名無しさん
2009/11/29(日) 19:51:21WForm on WPF on WFormもだめらしいマタ(´・ω・`)ショボーン
0707デフォルトの名無しさん
2009/11/29(日) 21:00:22ユーザーコントロールで使ってるtextBlockの内容を
そのユーザーコントロール使ってるWindowからいぢるにはどうしたらいいぞね?
0708デフォルトの名無しさん
2009/11/29(日) 21:08:45ユーザーコントロールにプロパティを定義するのが正しい
0709デフォルトの名無しさん
2009/11/29(日) 21:30:22あきらめるぞな;;
0710デフォルトの名無しさん
2009/11/29(日) 21:48:200711デフォルトの名無しさん
2009/11/29(日) 21:48:35WPFの基礎テクニックだと思うのでこれを機にしっかり勉強した方がいい
Visual StudioでUserControl.xaml.csを開いて「propdp」と入力して2回Tabを押すと簡単
正直、依存関係プロパティとINotifyPropertyChangedは
書く量が多い割に内容はコピペなのでもうちょっとシンプルに書かせて欲しい気もする
0712デフォルトの名無しさん
2009/11/29(日) 21:53:450713デフォルトの名無しさん
2009/11/29(日) 23:15:250714デフォルトの名無しさん
2009/11/29(日) 23:16:36Excelライクな表に入力すれば生成されるとかでいいよもう。
0715デフォルトの名無しさん
2009/11/29(日) 23:34:19UpdateSourceTrigger=PropertyChanged
しるか、ボケ
Binding入れた時点で自動で用意してくれ
0716デフォルトの名無しさん
2009/11/29(日) 23:54:10その変更がExpression Blend3に反映されなかった
これはバグでしょうか?
0717デフォルトの名無しさん
2009/11/30(月) 08:24:510718デフォルトの名無しさん
2009/11/30(月) 08:31:110719デフォルトの名無しさん
2009/11/30(月) 09:09:46コールバック関数などは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:320723デフォルトの名無しさん
2009/11/30(月) 21:23:09Direct3DやXNAと比べて手間もそんなに変わらないと思う
どうせならSilverlight使ったら?
0724デフォルトの名無しさん
2009/11/30(月) 21:43:15Silverlight は結構真面目にアリだと思う。WPFで書くよりそっちの方が未来がありそうだ。どうせ似てるし。
0725デフォルトの名無しさん
2009/11/30(月) 21:45:08でも結構動いてくれて使える奴です
0726デフォルトの名無しさん
2009/11/30(月) 22:40:43>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:310728デフォルトの名無しさん
2009/11/30(月) 23:01:52フレームワークで用意されてる入力読取が使えないってのってなんか気持ちわるくない?
なんで DirectInput をそのまま使えるようにしなかったのかがよくわからんのよねぇ。
>>727
あそこは既にXNAの技術的な話が出来る場所じゃなくなってるからなぁ・・・
0729デフォルトの名無しさん
2009/11/30(月) 23:08:38>フレームワークで用意されてる入力読取が使えないってのってなんか気持ちわるくない?
>なんで DirectInput をそのまま使えるようにしなかったのかがよくわからんのよねぇ。
その程度は笑って対処できないとデスクトップアプリではやっていけないよ。
WinFormのころからDllImportが必要になったことなんて山のようにあったじゃない。
このスレ的には、
「通知領域がWPFでサポートされていないのってなんか気持ちわるくない?」
「なんでSystem.Windows.Forms.NotifyIconをそのまま使えるようにしなかったのかがよくわからんのよねぇ。 」
てな感じかな。
0730デフォルトの名無しさん
2009/11/30(月) 23:14:020731デフォルトの名無しさん
2009/11/30(月) 23:18:380732デフォルトの名無しさん
2009/11/30(月) 23:21:14ジャンプリストとオーバーレイアイコン使ってくださいってことじゃね?
MSN Messengerももう通知領域には常駐してないし
0733デフォルトの名無しさん
2009/11/30(月) 23:22:450734デフォルトの名無しさん
2009/11/30(月) 23:23:45箱◯でも動かしたいなら XNA 一択だけど。
0735デフォルトの名無しさん
2009/12/01(火) 00:00:22ハードに対するイニシアチブを握っておきたいが、
かといって自分で生産するようなリスクは避けたい立場。
特にPCは規格がオープンだからみんな参入可能なためリスキー。
ゲーム機はクローズドだから自分で作ったんだろう。
XNAのコントローラの問題は、ハードはこうあるべきだ、
という主張ないし囲い込み戦略の一端では。
0736デフォルトの名無しさん
2009/12/01(火) 07:16:030737デフォルトの名無しさん
2009/12/01(火) 07:40:33どこかに誘導してやってよ
0738デフォルトの名無しさん
2009/12/01(火) 07:59:48http://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:590740738
2009/12/01(火) 09:41:16C# 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:27Canvas上のControlの上(ボタンとかラベルとか)でしか
MouseMoveイベントが発生して無いようなんですけど
こういう仕様じゃないですよね?
WPFはじめたんですけどどうもFormの頭を引きずってしまっていて・・・w
0742デフォルトの名無しさん
2009/12/01(火) 20:35:210743デフォルトの名無しさん
2009/12/02(水) 03:32:35ICommand, RoutedCommand, CommandBinding, CommandBindings, 定義済みのコマンド…
キーワードが多くてどこから手を付ければいいのか頭の中がグチャグチャになる
0744デフォルトの名無しさん
2009/12/02(水) 06:19:07MSは結構やっちゃった的な実装してるのもあるし。INotifyPropertyChangedの実装とか最悪だろ。
0745デフォルトの名無しさん
2009/12/02(水) 06:44:48そうか?
実装が面倒なのは否めないが、リフレクション等黒魔術系のテクニックを駆使して
コード量を減らすという方向よりは、素直かつ汎用性があって納得のいく解だと
思ったんだけど。どんな実装が良かったと思ってる?
0746デフォルトの名無しさん
2009/12/02(水) 07:36:59基本はICommand。
その上で動いているのがRoutedCommand。
0747デフォルトの名無しさん
2009/12/02(水) 08:43:57ときどき思う
0748デフォルトの名無しさん
2009/12/02(水) 08:57:43良くないっぽいことらしいので、CAL真似してDelegateCommand<T>使ってる。
0749デフォルトの名無しさん
2009/12/02(水) 09:09:290750デフォルトの名無しさん
2009/12/02(水) 09:46:55質問に背景がありそうだな
0751デフォルトの名無しさん
2009/12/02(水) 10:11:09手動でプロパティ名を文字列で使って同じようなコード延々と書かなきゃいけない時点でだめかと。
言語的なサポート、もしくはヘルパー的なクラス、通知をサポートするスマートオブジェクトでもかまわんのだが。
0752デフォルトの名無しさん
2009/12/02(水) 11:23:160753デフォルトの名無しさん
2009/12/02(水) 12:24:03書いててなんか洗練されてないなあとは思うわ。
カスタム属性あたり使ってシンプルに使えないものかと思ってるんだけど
なかなかうまくまとまらない。
0754デフォルトの名無しさん
2009/12/02(水) 12:39:54ありがとうございました
他のことで解決したです
背景は内緒(はずかしい)
0755デフォルトの名無しさん
2009/12/02(水) 15:13:37てことは、Button1_Clickにベタベタと処理を書いていく
VB的な(?)書き方もアリってことですかね?
でもまあ、それはMVVM的に美しくないし
ボタンからでもメニューからでもキー入力からでも
統一された方法で処理が呼べるってのは便利そうなのでもうちょっと頑張って勉強してみようと思います
0756デフォルトの名無しさん
2009/12/02(水) 15:33:11ボタンでしかしない処理ならそこに書けばいいし
共通して使うのであれば どっかにまとめちゃう
ただそれだけのような気がする・・・
0757デフォルトの名無しさん
2009/12/02(水) 18:55:35CanvasのBackgroundを透明以外に設定してみて
0758デフォルトの名無しさん
2009/12/02(水) 20:52:47行番号の列を追加すればいいだけなのでは?
0759デフォルトの名無しさん
2009/12/02(水) 21:00:13やっぱりそれしかないですか
ランキング表示(リアルタイムに変動)をさせようとしてて行番号が自動でつくと楽だなぁとおもったもんで
0760デフォルトの名無しさん
2009/12/02(水) 21:47:150761デフォルトの名無しさん
2009/12/02(水) 22:26:52WPFのコントロールはそれ自身は外観というものを持ってなくて,たとえばボタンなら
クリックされたらイベントを発生させる」という機能と,ボタンを意味付けるコンテンツ(文字列でも画像でも何でもいいんだけど)
を持った抽象的な存在。具体的にそのボタンやコンテンツがどのようにして画面に表示されるかはテンプレートで定義される。
スタイルは単にコントロールのプロパティ設定をまとめたもの。
0762デフォルトの名無しさん
2009/12/02(水) 23:01:56エッセンシャルWPFみたらStyleでSetter使わない記述も検討してたらしいけど
ていうかよく見るとそう書いてるな、この本にも
0763デフォルトの名無しさん
2009/12/02(水) 23:02:24いつも今回こそはとwpfプロジェクト選んで挑戦するんだけど、GUIをなんとか
するので手間ばっかりかかって、結局はformで作り直すことが多い。
もちろん、まだ自分自身が不慣れって言うのもあるんだろうけれど、よほど凝った
概観、たとえば従来ならownerdrawでなんとかしよう、みたいな例外的なケース
でもないかぎり、まったくメリットが見出せないんだが…。全般的にアーキテクチャは
すっきりしているはずなんだけれど、使おうとするとひどくわかりにくいという、非常に
ちぐはぐな印象がある。
0764デフォルトの名無しさん
2009/12/02(水) 23:06:46勉強のためにちょこちょこ小さいプログラム書き捨てしてるぐらいだわ。
0765デフォルトの名無しさん
2009/12/02(水) 23:08:030766デフォルトの名無しさん
2009/12/02(水) 23:41:110767デフォルトの名無しさん
2009/12/03(木) 00:01:400768デフォルトの名無しさん
2009/12/03(木) 00:06:250769デフォルトの名無しさん
2009/12/03(木) 00:09:18全然悲惨じゃないけど?
0770デフォルトの名無しさん
2009/12/03(木) 00:19:24拡大縮小が絡むとさらに
0771デフォルトの名無しさん
2009/12/03(木) 00:34:220772デフォルトの名無しさん
2009/12/03(木) 00:43:52この流れ、何か見たことあるぞ…
0773デフォルトの名無しさん
2009/12/03(木) 01:29:31WinForms並みの生産性があればいいけどね。
正直、今の状況は手を出しにくい。
0774デフォルトの名無しさん
2009/12/03(木) 01:53:17WinFormsのRAD全開のアプリってめちゃめちゃ保守性悪くないか?
0775デフォルトの名無しさん
2009/12/03(木) 02:02:060776デフォルトの名無しさん
2009/12/03(木) 02:07:170777デフォルトの名無しさん
2009/12/03(木) 02:08:25生産性の感じ方に違いがあるような気がする
0778デフォルトの名無しさん
2009/12/03(木) 02:12:51いざ全くゼロから作ろうとすると、全然出来ないことに気づくんだよな(´・ω・`)
0779デフォルトの名無しさん
2009/12/03(木) 02:18:20俺も3年目にしてやっと一人で100万ステップ以上のソフトを設計実装できるようになったよ…
0780デフォルトの名無しさん
2009/12/03(木) 02:20:39それ逆
ポトペタで再利用出来るように作らない人程保守性は悪い
0781デフォルトの名無しさん
2009/12/03(木) 02:27:25再利用性を高くするためにコンポーネントの粒度を小さくすると
今度はポトペタそのものが大変になって、結局
「UI構築用の専用言語くれよ!」になっちゃう。なんだかんだでXAMLは使いやすいよ。
0782デフォルトの名無しさん
2009/12/03(木) 02:36:38まるで.net出たての頃のようです
著名人のブログみても使いこなせねぇという言葉しか見えない…
0783デフォルトの名無しさん
2009/12/03(木) 02:45:460784デフォルトの名無しさん
2009/12/03(木) 02:49:12大抵のプログラマはインテリセンスもロクに効かないような言語に用はない
既存コントロールの貧相さを自由度とかいって誤魔化すなと
次の4.0でそこらが解消できなきゃマジオワタ
0785デフォルトの名無しさん
2009/12/03(木) 02:53:09VSEEしかもってない貧乏人だからなあ。体験版さわってみるかなぁ
0786デフォルトの名無しさん
2009/12/03(木) 03:08:18こんなコントロールどうやって作るのって所で俺、終了w
0787デフォルトの名無しさん
2009/12/03(木) 07:19:58使えない、って話になると盛り上がるのな、このスレ
0788デフォルトの名無しさん
2009/12/03(木) 07:32:340789デフォルトの名無しさん
2009/12/03(木) 08:59:21WPFプログラミング(XAMLプログラミング)ものすごくしんどい。
0790デフォルトの名無しさん
2009/12/03(木) 10:00:170791デフォルトの名無しさん
2009/12/03(木) 10:52:280792デフォルトの名無しさん
2009/12/03(木) 11:29:54winapi使ってゴリゴリ書いてる時を思い出す
0793デフォルトの名無しさん
2009/12/03(木) 15:30:10XAMLはハードコーディングでやってくのは楽だけどそこから脱却しようとしたら
バインディングだのコマンドだのでわけわからんっす。
0794デフォルトの名無しさん
2009/12/03(木) 15:46:20全てのWPFアプリの全てのScrollViewer(を含むListBox, ListView, FlowDocument…)で
タッチパッド隅を使ったスクロールが効かない
外付けマウスのホイールだと全く問題ないんだけど
VS2010だとスクロールできるからWPF4.0じゃ改善されてんのかな?
0795デフォルトの名無しさん
2009/12/04(金) 04:08:36見た目を整えるのにそれを実現する構成を考えるのが難しく感じるな
0796デフォルトの名無しさん
2009/12/04(金) 08:13:50実装みてないんだが、全部XAMLでやろうとしてるって事?
手続き型で書くところを宣言的に書こうとしてる故の無理加減?
0797デフォルトの名無しさん
2009/12/04(金) 09:57:390798デフォルトの名無しさん
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:180800デフォルトの名無しさん
2009/12/04(金) 13:03:42代わりに1x1のRectangleでも置けば
0801デフォルトの名無しさん
2009/12/04(金) 14:21:56ググるのに二度手間
0802デフォルトの名無しさん
2009/12/04(金) 14:39:590803デフォルトの名無しさん
2009/12/04(金) 15:12:040804デフォルトの名無しさん
2009/12/04(金) 15:38:450805デフォルトの名無しさん
2009/12/04(金) 16:38:56ここ読んでも論理フォーカスがさっぱり理解できないんだけど、
どういうもんなんですかこれ?
0806デフォルトの名無しさん
2009/12/04(金) 16:47:12でこの左右のパネルをそれぞれフォーカスのスコープを持たせた
左のパネルの上から三つ目のテキストボックスにフォーカスがあった
でそこから右のパネルの適当なテキストボックスにフォーカスを移動させた
その後右のパネルから左のパネルにフォーカスが移ってきたとき
左のパネルの論理フォーカスは上から三つ目のテキストボックスに残っているので
このテキストボックスにフォーカスが当たる
とこんな感じ
0807デフォルトの名無しさん
2009/12/04(金) 17:03:190808デフォルトの名無しさん
2009/12/04(金) 17:05:59飽きた
0809デフォルトの名無しさん
2009/12/04(金) 17:07:19なるほど。
>キーボード フォーカスを持つ要素は論理フォーカスも持ちますが、
>論理フォーカスを持つ要素は必ずしもキーボード フォーカスを持ちません。
これは論理フォーカスを持っててもキーボードフォーカスを今持ってるとは限らんよ。ってことで、
キーボードフォーカスを持てない要素でも論理フォーカスを持ってることもあるよ。
ってことじゃないんですね。
0810デフォルトの名無しさん
2009/12/04(金) 17:20:110811デフォルトの名無しさん
2009/12/05(土) 00:22:38説明うまいな
0812デフォルトの名無しさん
2009/12/05(土) 01:00:06Blend3のSPなのか?Blend4なのか?
http://blogs.msdn.com/expression/
そりゃMSDNサブスクリプションの人はいいけどさ…
こうポンポンバージョンアップされるとホビープログラマにはきつい
0813デフォルトの名無しさん
2009/12/05(土) 02:13:00Blend3だろ。でてそんなに経ってないし
0814デフォルトの名無しさん
2009/12/05(土) 08:29:26エェー
>でこの左右のパネルをそれぞれフォーカスのスコープを持たせた
何を言ってるのか全然解らないんですけど
0815デフォルトの名無しさん
2009/12/05(土) 10:49:39http://pc12.2ch.net/test/read.cgi/tech/1244812356/988
0816デフォルトの名無しさん
2009/12/05(土) 20:31:380817デフォルトの名無しさん
2009/12/06(日) 01:37:18WPF のバグなんだろか。VS2010 で直ることを祈る。
0818デフォルトの名無しさん
2009/12/06(日) 02:09:350819デフォルトの名無しさん
2009/12/06(日) 02:12:42ttp://social.msdn.microsoft.com/Forums/ja-JP/vbgeneralja/thread/eea6b862-e0fd-4cfb-a5d1-5be7c01ffa43
0820817
2009/12/07(月) 00:04:49メモリリークってどの部分の?
DataContext に代入する1行をコメントアウトすると、outlook が終了するんだよ。
だから、Wpf 内部の Binding の処理を行ってる部分が間接参照を作ってて
そこを解放してないんじゃないかと予想してるんだが・・・。
まぁ、外れてるかも。
>>819
すまん、それ長くてどこがポイントかよくわからない。
質問者も質問して返事がないので、解決したのかどうかもわからんし。
Quit() はしてるし、プログラム内で参照してる部分に null を代入して
GC.Collect() もやってみた。でも、終了しないんだよなぁ。
0821デフォルトの名無しさん
2009/12/07(月) 00:08:250822デフォルトの名無しさん
2009/12/07(月) 00:16:49開放してやらんとメモリリークするんじゃなかったっけ?
かつてC#でExcelのオートメーション使ったアプリ作ったとき、取得したCOMオブジェクト
(Sheetとか)を全部自前で開放してやらんとExcelのゴーストプロセスが残って
「なんじゃこの糞仕様は」と思った覚えが。
0823デフォルトの名無しさん
2009/12/07(月) 00:33:470824817
2009/12/07(月) 01:32:27VSTO って 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ほんとう?
0826デフォルトの名無しさん
2009/12/07(月) 09:43:360827デフォルトの名無しさん
2009/12/07(月) 13:14:260828デフォルトの名無しさん
2009/12/07(月) 14:40:580829デフォルトの名無しさん
2009/12/08(火) 01:55:450830デフォルトの名無しさん
2009/12/11(金) 02:49:040831デフォルトの名無しさん
2009/12/11(金) 02:58:43どういう文脈の話よ
0832デフォルトの名無しさん
2009/12/11(金) 13:21:450833デフォルトの名無しさん
2009/12/11(金) 19:13:39カスタムコントロールをVSで作ったときに、そのクラスの
静的コンストラクタ内にDefaultStyleKeyProperty.OverrideMetadata(...)
なんてのがあって、それについて調べてるんです。
0834デフォルトの名無しさん
2009/12/12(土) 01:09:09多分そう
xamlのコンパイルとかはmsbuildの担当っぽい
>>833
質問が漠然としてて要領を得ない
取り敢えずOverrideMetadataの引数に渡す型とそのメンバをMSDNで調べてみたら?
もちろんその派生クラスのもな
0835デフォルトの名無しさん
2009/12/12(土) 13:21:000836デフォルトの名無しさん
2009/12/12(土) 20:40:14ここにあるサンプルを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レス、ありがとうございます。
プロジェクトを作り直してみます。
MS公式のサンプルなのになあ・・・
0839デフォルトの名無しさん
2009/12/14(月) 17:30:350840デフォルトの名無しさん
2009/12/14(月) 18:00:32まあ、MSDNのサンプルなんて「大体こんな感じ」というものだから
0841デフォルトの名無しさん
2009/12/14(月) 19:46:50AvalonCalculator2とか初期の開発コードが残ってるし、
バージョン管理に失敗して古いソースをかぶせてしまった感じ。
VS2008で新しくプロジェクトを作ったほうが早い。
0842デフォルトの名無しさん
2009/12/14(月) 19:58:07App,xaml
App.xaml.cs
Window1.xaml
Window1.xaml
を上書き。
mytextbox.cs
appicon,ico
をコピーして既存の項目の追加。
リソースは使ってないのでProperties\の下はそのままでいい。
以下はオプション。省略してもいい。
Properties\AssemblyInfo.csだけProperties\にコピー。
プロジェクトのプロパティで対象のフレームワークを3.0に設定。
アイコンとマニフェストでアイコンをappicon.icoに設定。
0844デフォルトの名無しさん
2009/12/15(火) 17:12:56WPFアプリで帳票とかの印刷しようとするとどうすればいいか説明している本とかないでしょうか。
0845デフォルトの名無しさん
2009/12/15(火) 17:40:49オライリーかな。
0846デフォルトの名無しさん
2009/12/15(火) 17:45:03オライリーは早く和訳してくれないかな
0847デフォルトの名無しさん
2009/12/15(火) 18:49:51WPFにSystem.Windows.Forms.Screen.AllScreensのようなモニタ情報をすべて取得できるヤツってありますか?
SystemParametersにプライマリモニタの情報を取得できるところまでは調べたのですが、モニタ情報を一覧で取得する方法がわかりません・・・
0848デフォルトの名無しさん
2009/12/15(火) 20:54:41上カルビ一皿で3ページ訳してあげよう
0849デフォルトの名無しさん
2009/12/15(火) 23:26:32ないのでFormsを使ってるよ
0850デフォルトの名無しさん
2009/12/16(水) 00:06:350851デフォルトの名無しさん
2009/12/16(水) 00:35:480852デフォルトの名無しさん
2009/12/16(水) 01:43:410853デフォルトの名無しさん
2009/12/16(水) 04:08:01実はむちゃくちゃレイアウトの自由度が低くて泣きそうになる
かといってInlineUIContainerでGridとかBorderとかTextBlockとか入れちゃうと
「範囲選択してテキストをコピー」できなくなるし…
0854デフォルトの名無しさん
2009/12/16(水) 14:49:47>>849
>>851
おとなしくアセンブリ参照をいれてFormsを使います。
WPFのクラスでなにかあるのかなーと思いいろいろとサイトをあたって探してみましたが、
めんどくさくなった(ってか無いようですので)ので教えて頂いたようにFormsで取得するようにします。
プライマリ情報はSystemParametersってやつにもってるのになぁ・・・
0855817
2009/12/16(水) 22:32:48ViewModel の処理で時間がかかるため Dispatcher を使用したいのですが、
どうしたら使用すべき Dispatcher を取得できるでしょうか?
現在は App.Current.MainWindow.Dispatcher を使用してるんですが、
これだと、MainWindows 固定なんで汎用的な方法があれば知りたいなと
思いまして。
0856デフォルトの名無しさん
2009/12/16(水) 22:37:35普通はありえないと思うんだけど。
0857デフォルトの名無しさん
2009/12/16(水) 23:18:310858YSDYSO
2009/12/16(水) 23:46:41Application.Current.Dispatcher
現在のスレッドのなら
Dispatcher.CurrentDispatcher.
どちらも静的なクラスメソッド
0859855
2009/12/17(木) 00:03:29ありがとう。
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入力された蓄積されたデータ公開に対してはMVVMになるけどさ
0861デフォルトの名無しさん
2009/12/17(木) 00:37:04そう。
0862デフォルトの名無しさん
2009/12/17(木) 01:05:04ModelはフロントエンドのUIやスクリプト操作から独立したデータ操作単位でなくちゃ。
例えば、「発注」という操作は、それが時間がかかろうがどうだろうが、それを利用する
WPFのアプリからでも、SilverlightのWebアプリからでも、WebService経由でも
同じインタフェースで呼び出せる独立クラスにしましょ、という考え方ね。
0863デフォルトの名無しさん
2009/12/17(木) 07:41:19そういう流れか
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のコンサルね
0864855
2009/12/17(木) 23:52:53そうかぁ。最初はそういう認識でやってたんだけど、
ViewModel が、
public object Value{
get{ return _model.Value; }
set{ _model.Value = value; }
}
みたいな記述ばかりになってしまって、
「あれ、俺間違ってる?」
と思って 859 の割り振りにしたんだけど、
ViewModel ≒ Adopter のつもりでいいのね。
>>862
その考え方って汎用な Model と、固有の特性を持つ ViewModel、
両者をつなぐ Adopter として ViewModel って感じ?
でも、そういわれてみると、今作ってるプログラムは Windows プラットフォーム
にべったり依存してて、WPF でしか動かないから MVVM 化する意義が
ない気がしてきた。やばいぞ揺らいできた。
>>863
教えていただいて恐縮だが英語は苦手なので、
あとでゆっくり読む。
0865855
2009/12/18(金) 00:16:48V-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:40VM-M 間の接続だと思ってる。
なんだか楽してんだか苦労してんだかわかんなくなる瞬間。
0867855
2009/12/18(金) 00:39:06あわてて読んでみた。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)
- 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ということだね。
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:100875デフォルトの名無しさん
2009/12/18(金) 16:52:250876デフォルトの名無しさん
2009/12/18(金) 17:24:48RIA Servicesはn層アプリを2層アプリに近づけようとしている
そんな流れがくるんじゃないかと思ったりもする
0877デフォルトの名無しさん
2009/12/18(金) 20:17:422chだとどうしても断片的な解説で終りがちだし。
0878デフォルトの名無しさん
2009/12/18(金) 21:02:11まあ、VMは作ると思うけど。
0879デフォルトの名無しさん
2009/12/18(金) 23:24:150880デフォルトの名無しさん
2009/12/18(金) 23:27:01クラシックテーマのメニューみたいな感じ
0881デフォルトの名無しさん
2009/12/18(金) 23:29:260882デフォルトの名無しさん
2009/12/19(土) 11:56:39まぁレイヤーを綺麗にする意味では良い。
0883デフォルトの名無しさん
2009/12/19(土) 12:26:43IValueConverterは値を変換できない場合の扱いが問題になる。
V-VM-Mで、Vの値を型変換してMにセットできない場合、VMはどちらの値に同期すべきか?
V-VMの同期ができないとVの値がVMの値に勝手に変わることが発生しうる(大抵それはうれしくないだろう)。
V-VMは常に同期し、VM-Mは同期は保証しないならこれは防げる。
しかし、IValueConverterで例外が発生しうるとV-VMの同期は保証できない。
0884デフォルトの名無しさん
2009/12/19(土) 23:39:16理由だれか教えてください。
<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明示的に作ったTreeViewItemには関係ない。
0886デフォルトの名無しさん
2009/12/20(日) 04:38:42みたいな感じ(の曲名が長い場合のパターン)っていえば分かりやすいでしょうか、
以下のような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:41http://msdn.microsoft.com/ja-jp/bb546954.aspx
0889デフォルトの名無しさん
2009/12/21(月) 11:51:08ListBoxに横スクロールバーが出てしまうんですよ。
そして右側TextBlockがスクロール先にはみ出てしまう。
そうじゃなくて、幅合計がListBoxを超えたとき
左側TextBlockを末尾省略(TextTrimming="CharacterEllipsis")して
ListBoxの横スクロールバーは出さないようにしたいんです。
0890デフォルトの名無しさん
2009/12/21(月) 12:47:250891デフォルトの名無しさん
2009/12/21(月) 13:07:06で出来たわ
0892デフォルトの名無しさん
2009/12/21(月) 13:19:08レイアウトに異様に時間が掛かった上に変なレイアウトになりました…
>>891
おおすげー! ほんとだ!
添付プロパティとして使えるとは思わなかったです…
おかげさまで解決です、どうも皆さんありがとうございました。
0893デフォルトの名無しさん
2009/12/22(火) 04:05:470894デフォルトの名無しさん
2009/12/22(火) 04:50:56ScrollViewer.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:370897デフォルトの名無しさん
2009/12/22(火) 06:40:110898デフォルトの名無しさん
2009/12/22(火) 07:05:34public double ActualWidth {
get {
return base.RenderSize.Width;
}
}
0899デフォルトの名無しさん
2009/12/22(火) 14:53:240900デフォルトの名無しさん
2009/12/22(火) 18:57:350901899
2009/12/22(火) 19:55:38ttp://msdn.microsoft.com/ja-jp/library/ms752914.aspx
ListBoxとScrollViewerの関係が書いてないんですけど
何か見落としてますかね?
0902デフォルトの名無しさん
2009/12/22(火) 22:40:34ListBox ControlTemplate の例
http://msdn.microsoft.com/ja-jp/library/ms754242(VS.80).aspx
0903デフォルトの名無しさん
2009/12/22(火) 23:09:24xamlだけでなるべくいろんなことが出来るようにするあまり、xaml自体の仕様が
汚くてわかりにくい上、わかりやすかったはずの.Net Fraworkにもキモイしくみが
ごちゃごちゃと持ち込まれ過ぎて、system.windowsの体系が複雑怪奇な収拾の付
かないようなもんになってしまったように思えるんだが。
一番キモイのがレイアウトの仕様。デバイスコンテキスト非依存という方向性は
いいとして、なんであんなにわかりにくく使いづらい、設計なんだ?
0904デフォルトの名無しさん
2009/12/22(火) 23:16:57xamlでかくのはPanelにぺたぺた貼りつけるところまででいい
0905デフォルトの名無しさん
2009/12/22(火) 23:21:300906デフォルトの名無しさん
2009/12/22(火) 23:22:31XAMLをメモ帳でゴリゴリ書く文化が続いていたのが問題
こういうカオスな実装は、見る必要がある時だけ見るべきだ
0907デフォルトの名無しさん
2009/12/22(火) 23:28:060908デフォルトの名無しさん
2009/12/22(火) 23:29:52PNGエクスポート機能がほしいくらい便利よ
0909デフォルトの名無しさん
2009/12/23(水) 00:05:41いろいろ実験してみたんだけど
<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:400911デフォルトの名無しさん
2009/12/23(水) 03:27:20元々論理的な構造を表すものではないし、書き方によっては
「処理の途中までXAMLで実現したけど後はViewModelに任せています」とか、
「ViewModelがこの型で返すから、えーっとデータテンプレートを探して…どこだ?」とか
「ココのデータコンテキストは四階層上のアレ?あ、二階層上で変わっている」とか、もうねw。
どうすりゃ他人が読めるXAMLをかけるんだろうか?設計ドキュメントとかどうすればいいんだろうか?
0912デフォルトの名無しさん
2009/12/23(水) 10:43:31場所によってはコメント入れにくくて作業効率ダウン
0913デフォルトの名無しさん
2009/12/23(水) 13:52:260914デフォルトの名無しさん
2009/12/23(水) 14:09:02もんなんでしょ?
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:27VSにしろBlendにしろもっさりしすぎ
0917デフォルトの名無しさん
2009/12/23(水) 14:47:37MにIEditableObjectを実装するという手もあるけど。
まぁ、VMで実装したほうがよいinterfaceではあるな。
0918デフォルトの名無しさん
2009/12/23(水) 14:54:06そう、本来は隠蔽すべきところ。XAML導入の本来の目的はデザイナとプログラマの仕事の分離だから。
プログラマが決めたViewModelとデザイナが決めたViewがあればくっつけばbindで動く。
…はずだった。MSはその予定だった。
プログラマにとっては部品がないとか、機能が足りないといった問題を解決するため
頭が痛くなるようなXAML構造をひたすらテキストエディタで書くハメになり、
デザイナはその難解なXAMLを理解し"動かしても正しく働く"スタイルを考えなきゃならない。
結局は全く分離できず両者の作業量だけが増える。まさに、誰得
0919デフォルトの名無しさん
2009/12/23(水) 15:06:23UserControlやTemplateのおかげで生のHTMLより部品化しやすい(SSIなんて誰もつかわん)し。
ちゃんとデザイン上の細部をStyleに切り出していればUI構造はすっきり見通しの良い状態を維持できるぞ。
>>914
>UIをXMLで表現する必要があるのかっていう根本的な疑問
むしろ条件分岐やループなどのロジックが不要なUI初期化を、あえてコードで表現することのほうが問題かと。
たとえば「すべてのFormのフォントサイズの初期値を一括変換するツールがほしい」なんて言われたときに
C#のコードをparseして書き換えるのとXAMLをparseして書き換えるのではどちらが楽か。
0920デフォルトの名無しさん
2009/12/23(水) 15:14:030921デフォルトの名無しさん
2009/12/23(水) 15:28:22どっちが楽かなんてにたようなもんだろ。そもそもソースをパースして書き換えるなんて
バカなことしてる時点でアウト。何十枚も画面があるのにすべての画面をwindowから直接
派生して作るなら設計がアホ。きちんとした基底クラスを作ってそこから派生させれば
別にどうって事ないだろ。
0922デフォルトの名無しさん
2009/12/23(水) 15:34:42で、例外的に「この画面のフォントだけは」とかいう要件が出てきて・・・
そこで初めてUIの分離が必要ってはなしになるんだろ
先祖帰りしてどうする
0923デフォルトの名無しさん
2009/12/23(水) 15:38:58XAMLやってるとMSDNをフル印刷したくなる衝動に駆られていやになるわ
0924デフォルトの名無しさん
2009/12/23(水) 15:50:14周辺機能が足りてないからXAMLは誰得だっつーてるのに何言ってんだか
0925デフォルトの名無しさん
2009/12/23(水) 15:53:080926デフォルトの名無しさん
2009/12/23(水) 16:03:120927デフォルトの名無しさん
2009/12/23(水) 16:19:58XAMLをいじるツールとC#をいじるツール、どちらが作りやすいかという話なんだが似たようなものというのか。
C#のコードを操作できなくてもXMLのDOMを操作できる人間は見渡せば周りにいくらでもいるが。
そもそもツールの作りやすさの話をしているのに、いきなり継承にまで話が飛ぶのも変だし。
そういう用途に継承を使うのも気に食わんが。。
アドホックに解決するのは悪いことじゃないし
他人が作ったひどいアプリを保守することもあるんだから、選択肢は多いほうがいい。
「きちんとした基底クラスから派生しないなんて設計がアホ」と歯ぎしりすることもなく
となりのPython使いを捕まえて「昼飯おごるからXMLいじるちょっとしたコード書いてくれ」と言える。
0928デフォルトの名無しさん
2009/12/23(水) 16:24:13javaFXなど最近ではそういう流れもある。
0929デフォルトの名無しさん
2009/12/23(水) 16:34:39それだけなら、デフォルトフォントを帰るのになんの苦労もいるまい。
0930デフォルトの名無しさん
2009/12/23(水) 16:36:48> 他人が作ったひどいアプリを保守することもあるんだから、選択肢は多いほうがいい。
> 「きちんとした基底クラスから派生しないなんて設計がアホ」と歯ぎしりすることもなく
> となりのPython使いを捕まえて「昼飯おごるからXMLいじるちょっとしたコード書いてくれ」と言える。
そういうくだらん目的のためにXAMLって生まれたわけね
0931デフォルトの名無しさん
2009/12/23(水) 16:43:00「それだけなら」ってわかってる癖にw
0932デフォルトの名無しさん
2009/12/23(水) 17:58:37XML標準にのっとっているためツールを書きやすいということが「くだらん」とは思わないが。
そもそもUI定義言語をもっていないUIフレームワークのほうが珍しいんじゃない。
古くはWin32のrcから、FirefoxのXUL、Mac OSXのCocoa、GTKのgrade
どちらかというとWinFormsが異色なんだよなぁ。
0933デフォルトの名無しさん
2009/12/23(水) 21:29:20Xamlがいけないのだと言って八つ当たりしてるように見えるな。
まあ実際触り初めの頃は情報量が少なすぎてWpf糞杉とか思ったけど。
0934デフォルトの名無しさん
2009/12/23(水) 21:35:22>>933 みたいにまじめに勉強したやつが馬鹿を見そうで怖い
0935デフォルトの名無しさん
2009/12/23(水) 21:42:56別にお前が心配する筋合いじゃない
0936デフォルトの名無しさん
2009/12/23(水) 22:19:25Formsだって凝ったことやろうとすると泥沼とも言える訳だし
0937デフォルトの名無しさん
2009/12/23(水) 23:19:280938デフォルトの名無しさん
2009/12/24(木) 00:31:060939デフォルトの名無しさん
2009/12/24(木) 01:02:12俺は(ノウハウが足りないという点が解決したとしても)
コードが増えるばかり、問題と手間が増えるばかりで全然だと思うが。
0940デフォルトの名無しさん
2009/12/24(木) 01:49:28当たり前じゃんそんなの
wpfを活かすつもりで考えてグラフィック要素をxaml以外で受け取って構築するの?
大変そうだね頑張って
0941デフォルトの名無しさん
2009/12/24(木) 01:56:100942デフォルトの名無しさん
2009/12/24(木) 02:07:05どっちが楽とか比較がアホらしいわ
0943デフォルトの名無しさん
2009/12/24(木) 08:26:24そんな用途もある。
0944デフォルトの名無しさん
2009/12/24(木) 09:56:580945デフォルトの名無しさん
2009/12/24(木) 12:25:260946デフォルトの名無しさん
2009/12/24(木) 13:24:090947デフォルトの名無しさん
2009/12/24(木) 14:43:40それともいいアイデアあるの?
0948デフォルトの名無しさん
2009/12/24(木) 20:12:14日本語版のVS2008には対応してないんかな?
インストールしても新規プロジェクトにCalcuim ModuleとCalcium Projectがでないわ。
0949デフォルトの名無しさん
2009/12/24(木) 20:36:45Video見たけど、何するものかわからんかった
どういうものなの?
0950デフォルトの名無しさん
2009/12/24(木) 21:13:37WPFの複合アプリを作る際のフレームワークと考えていいのかな。
0951デフォルトの名無しさん
2009/12/25(金) 22:03:130952デフォルトの名無しさん
2009/12/25(金) 22:50:16Silverlightでいいじゃんって気がしてる。
0953デフォルトの名無しさん
2009/12/25(金) 22:51:47WPFのほうがはやるよ
0954デフォルトの名無しさん
2009/12/25(金) 22:59:390955デフォルトの名無しさん
2009/12/25(金) 23:05:390956デフォルトの名無しさん
2009/12/25(金) 23:12:090957デフォルトの名無しさん
2009/12/25(金) 23:15:04XHRでは同期通信も可能だぞ
0958デフォルトの名無しさん
2009/12/25(金) 23:18:010959デフォルトの名無しさん
2009/12/25(金) 23:19:060960デフォルトの名無しさん
2009/12/25(金) 23:22:44登場時期の違いってのもあると思うけど。
VS2010が出たらちょっとはかわるのかな。
0961デフォルトの名無しさん
2009/12/26(土) 00:16:23.NETってLinuxとかMacは実装ちょっと遅れてるでしょ?
なのでAdobeの方選ぶ人は少なくないんだと思う。
俺はWindowsしか使わないから割とどうでもいいんだけどな
0962デフォルトの名無しさん
2009/12/26(土) 00:29:030963デフォルトの名無しさん
2009/12/26(土) 00:37:41Mono(Moonlight)に比べればまだいいさ。
0964デフォルトの名無しさん
2009/12/26(土) 01:01:240965デフォルトの名無しさん
2009/12/26(土) 10:54:41すごく開発がしやすくなった。特にXAMLのデザイナとコードエディタが広くとれるのがいい。
今度買うときは回転式のにしよ。
0966デフォルトの名無しさん
2009/12/26(土) 11:56:410967デフォルトの名無しさん
2009/12/26(土) 12:07:41デュアルモニタでいいじゃん
0968デフォルトの名無しさん
2009/12/26(土) 12:09:370969デフォルトの名無しさん
2009/12/26(土) 12:10:330970デフォルトの名無しさん
2009/12/26(土) 13:09:170971デフォルトの名無しさん
2009/12/26(土) 13:14:190972デフォルトの名無しさん
2009/12/26(土) 13:49:10VSTOでプラグイン作るとよくわかる。
0973デフォルトの名無しさん
2009/12/26(土) 13:54:08資料/前例の足りなさ、バインド含む処理の重さと、リソースの使用量がどうにかなればなぁ。
色々あるメリット、例えばオサレとかオサレとかオサレとか、あとオサレとかが活かせるんだけどなぁ…
0974デフォルトの名無しさん
2009/12/26(土) 13:54:47ま、リッチなインターフェースだし適材適所だな
0975デフォルトの名無しさん
2009/12/26(土) 14:06:25MSが移行してるかどうかが重要だな。
0976デフォルトの名無しさん
2009/12/26(土) 14:07:210977デフォルトの名無しさん
2009/12/26(土) 14:08:45へーそうなんだ
いいこと聞いた
なんか比較できる資料とかあったら教えて
0978デフォルトの名無しさん
2009/12/26(土) 14:13:230979デフォルトの名無しさん
2009/12/26(土) 14:22:11MS謹製でWPF使ってるのなんてあるのか? .NETですらかなり少ないと思うのだが。
WPFはVista以降のWindows専用と考えるとかなりいい環境なんだけど、
Monoがサポートしないのが難点だよなあ。
Formsも事実上使えないから、Gtk#とかwx.NETとか使う羽目になる
0980デフォルトの名無しさん
2009/12/26(土) 14:30:320981デフォルトの名無しさん
2009/12/26(土) 14:32:300982デフォルトの名無しさん
2009/12/26(土) 14:33:34VS2010もWPFを使ってる
クロスプラットフォームでのWPFの扱いは、SWTみたいな感じになるんじゃないかなぁ
0983デフォルトの名無しさん
2009/12/26(土) 14:34:34仕事のほうではさっぱり使わないが、
フリーソフト作ってる身だとC#の快適さ+マルチプラットフォームはかなり恩恵が大きい
0984デフォルトの名無しさん
2009/12/26(土) 14:36:050985デフォルトの名無しさん
2009/12/26(土) 14:36:590986デフォルトの名無しさん
2009/12/26(土) 14:39:150987デフォルトの名無しさん
2009/12/26(土) 16:43:53Windows7にはPowerShell ISEというのがあってだね・・・
0988デフォルトの名無しさん
2009/12/26(土) 16:44:50考え方は非常に理にかなっている様に感じますが、だんだん複雑になってくると
こんがらがってしまいます。特にバインディング周りのデータテンプレートのネスト
とか階層データテンプレートのあたりは、一応理解は出来るんだけどいざ自分で書いて
見ようとすると、インテリセンスが効かないこともあって全然書けないです。
テンプレートの探索で型によって自動的に適用されるというような、探索のルールも
いろいろあって今ひとつよく分からないです。
ここら辺をスパッとわかり易く解説したサイトとかありませんか?
0989デフォルトの名無しさん
2009/12/26(土) 16:53:10なんか大分楽になるような気がする。
0990デフォルトの名無しさん
2009/12/26(土) 18:11:40致命的なバグも残ってるし。
0991デフォルトの名無しさん
2009/12/26(土) 19:36:150992デフォルトの名無しさん
2009/12/26(土) 20:11:58結局まだその段階ってことなんだよね。
WPF使ってみました!!ってのが売りになるっていうか。
WPF使っててあたりまえ、まではまだまだ先だよねえ。
0993デフォルトの名無しさん
2009/12/26(土) 20:15:170994デフォルトの名無しさん
2009/12/26(土) 20:35:26当たり前ってほどではないが、新興のソフトウェアだと結構.NETあるぞ
0995デフォルトの名無しさん
2009/12/27(日) 03:24:560996デフォルトの名無しさん
2009/12/27(日) 10:59:07http://pc12.2ch.net/test/read.cgi/tech/1261879110/
0997992
2009/12/27(日) 11:10:37売りになるっていうのは適当な表現じゃなかった。
たとえば、よくあるTwitterクライアントをWPFで作ってみました(Twitter部分はしょぼいです)
とか
よくある2chブラウザをWPFで作ってみました(ブラウザ部分はWPFの練習なので適当です)
みたいな、WPFで作ってみたことだけが目的のようなのばっかりみたいな。
0998デフォルトの名無しさん
2009/12/27(日) 12:05:380999デフォルトの名無しさん
2009/12/27(日) 12:06:211000小倉優子 ◆YUKOH0W58Q
2009/12/27(日) 12:07:0210011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。