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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2010/08/22(日) 21:11:53
一向に普及しないユーザーインターフェースシステム
Windows Presentation Frameworkについて語るスレ。
パワフルで柔軟すぎるのが敗因か? 正直ついていけないよね…。

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

関連スレ
Microsoft Silverlight その6
ttp://pc12.2ch.net/test/read.cgi/tech/1271580489/

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

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
0002デフォルトの名無しさん2010/08/22(日) 22:08:37
0003デフォルトの名無しさん2010/08/24(火) 01:40:56
>>1
0004デフォルトの名無しさん2010/08/27(金) 21:46:28
チェックボックスとボタンがあって、チェックボックスの値(true false)によって
ボタンのコマンドを変えたい場合、ボタンのコマンドをチェックボックスの値にバインドして
booleanからICommandへのConverterを書くしか方法はないでしょうか?

Styleのtriggerのpropertyはターゲット自身のプロパティしか参照できないですよね??

0005デフォルトの名無しさん2010/08/28(土) 01:17:36
>>4
TriggerはTargetName=チェックボックスのName、Property=IsChecked、Value=Falseを指定する。
SetterのTargetName=ボタンのName、Property=IsEnabled、Value=Falseを指定する。
0006デフォルトの名無しさん2010/08/28(土) 14:14:23
無理やり埋めるのは美しくない
0007デフォルトの名無しさん2010/08/28(土) 17:51:30
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究
0008デフォルトの名無しさん2010/08/31(火) 22:50:42
WPFToolkitの.NET4版はいつリリースされるのかと。
0009デフォルトの名無しさん2010/08/31(火) 22:55:16
忘れた頃にだろうな
忘れてたけど
0010デフォルトの名無しさん2010/09/01(水) 22:15:42
Expressionスレがないから聞くが
Expression3→4へ無償UPGキャンペーンってまだやってんの?
0011デフォルトの名無しさん2010/09/01(水) 22:41:57
Expression3インスコPCにW体験版入れれば製品版になるから
実質永久にキャンペーン中
0012デフォルトの名無しさん2010/09/01(水) 22:49:20
終了したとは聞いてないからやってるんじゃね
0013デフォルトの名無しさん2010/09/01(水) 23:07:49
>>11 >>12 ありがとね
0014デフォルトの名無しさん2010/09/03(金) 15:06:37
>>11

キャンペーンのこと知らなくて、体験版入れたら何時まで経っても使用期限が来ないもんで
登録情報見たら登録済みになっててびっくらこいたよ。
もしかして落とせるようになってたの体験版じゃなくて正規版??とか一瞬ドキドキしたw

Expressionの3とは別にインストールされるみたいだけど、3はアンインスコしちゃって
いいのかねえ???
0015デフォルトの名無しさん2010/09/03(金) 16:11:21
どうなんだろうね
入れっぱなしだけど…
0016デフォルトの名無しさん2010/09/05(日) 19:22:49
ListBoxItem を RenderTransform.RotateTransform で回転させても
ListBox の外枠でクリッピングされてしまいますが、これをはみ出させる方法はありますでしょうか?

とりあえず、ListBox と ListBoxItem の ClipToBounds = false にしてみましたが、
これではだめなようです。
0017デフォルトの名無しさん2010/09/05(日) 20:32:31
ListBoxItemでは多分無理
スクロールバー表示のため制御されてる
0018162010/09/07(火) 09:15:51
レスありがとうございました。
難しそうなんであきらめることにします。
0019デフォルトの名無しさん2010/09/07(火) 21:50:55
UserControl を作ってその中に ScrollViewer を入れました。
で、UserControl で、
<UserControl.InputBindings>
 <KeyBinding Key="Left" Command="HogeHoge" />
</UserControl.InputBindings>
としたんですが、ScrollViewer にキー入力をとられてしまい、
HogeHoge が発生しません。

UserControl で先にイベントを取得する方法はないでしょうか?
(PreviewKeyDown イベントを使う方法だと、KeyBinding が使えなくなって
しまうので、それ以外の方法でお願いします。)
0020デフォルトの名無しさん2010/09/10(金) 04:05:20
VS2010のプロパティで、"共通"のカテゴリに表示させる方法がわからねえ。
[Category("共通")] 以外あったら教えてくれ。
0021デフォルトの名無しさん2010/09/10(金) 11:37:14
[Category("Common")]
0022デフォルトの名無しさん2010/09/11(土) 20:01:19
Windowを常に最背面に表示する方法はありますか?
今はttp://gurizuri0505.halfmoon.jp/develop/csharp/zorderの方法を試してみたのですが、
最背面どころか画面が消えて見えなくなってしまいます。
0023デフォルトの名無しさん2010/09/12(日) 09:34:54
<TreeView x:Name="treeView">
<TreeViewItem Header="aa">
<TreeViewItem Header="bb">
<TreeViewItem Header="cc" />
</TreeViewItem>
</TreeViewItem>
<TreeView.Resources>
<Style TargetType="TreeViewItem">
<EventSetter Event="MouseDoubleClick" Handler="ItemClick" />
</Style>
</TreeView.Resources>
</TreeView>

これだとダブルクリックイベントが複数回発生するんだけどどうすればいいの?
0024デフォルトの名無しさん2010/09/12(日) 10:09:45
>>22
ActivatedイベントでWin32APIのSetWindowPos関数使ってHWND_BOTTOMにセットするとか
一瞬アクティブになったりもするけど

>>23
e.Sourceで判断する
0025デフォルトの名無しさん2010/09/12(日) 10:13:53
>MouseDoubleClick イベント ハンドラーで Handled プロパティを true に設定すると
>ルート上のその後の MouseDoubleClick イベントは、Handled が false に設定された状態で発生します。

>コントロール作成者がマウスのダブルクリックを処理する場合は、
>ClickCount が 2 に等しいMouseLeftButtonDown イベントを使用する必要があります。
>これにより、要素ツリー内の別の要素がそのイベントを処理する場合に、Handled の状態が適切に伝播されます。

うわ面倒くさ
0026232010/09/12(日) 10:32:23
>>24
もうすこしくやしくお願いします
0027デフォルトの名無しさん2010/09/12(日) 10:36:42
複数回イベントが起こるのはしょうがないから
senderで判別しろってことだろ

下位の層でイベントを拾ったら上の層を無視するようにする
0028232010/09/12(日) 10:43:42
出来ました
ありがとうございました
0029デフォルトの名無しさん2010/09/12(日) 11:25:18
>>24
自分のやりたい事は壁紙を変更する事だと気づき、最背面はあまり関係ありませんでした。
でも、壁紙変更もWin32APIで出来る事がわかりました。
あまりWPF関係ないですね。ありがとうございました。
0030デフォルトの名無しさん2010/09/13(月) 02:25:12
iPhoneのようなササッと横に流れてUIが切り替わるようなカッチョいいアプリを作りたいんだけど、
ウィンドウ内で画面遷移させるのってWPFだとどうやるの?
UIをそれぞれリソースにしてContent = FindResource("...")とやれば一応動作はするんだけど、
これだとそれぞれのUIにコードビハインド付けられないし使いにくい。
PageはWeb用みたいなかんじだし、UserControlでまとめるのもなんか違う気がする。
0031デフォルトの名無しさん2010/09/13(月) 04:25:18
カッチョいいwwwwwwww
0032302010/09/13(月) 10:50:35
どうやらResourceDictionaryにコードビハインド付けられるみたいね。
それぞれのUIはこれで作ってMainWindowに統合する形でやってみます。ども
0033デフォルトの名無しさん2010/09/13(月) 13:22:27
LabelってIsMouseOverみたいなプロパティないの?
0034デフォルトの名無しさん2010/09/13(月) 13:36:04
普通にあるがな
http://msdn.microsoft.com/ja-jp/library/ms611061.aspx
0035デフォルトの名無しさん2010/09/13(月) 21:16:35
>>32
普通にUserControlだろ
リソースディクショナリにコードビハインドとかどう考えてもおかしい
0036デフォルトの名無しさん2010/09/14(火) 00:11:17
Grid の中に TextBlock をいれると、Grid の幅いっぱいに広がります。
テキストを表示するのに必要な幅を知りたいので、
これをよこいっぱいに広がらず WinForms の AutoSize = true の
ような状態にしたいのですが、そのような設定ができるプロパティ
とかありますか?

現在は、StackPanerl(Orientation = Horizontal)の中にいれて
横幅いっぱいまでひろがらないようにしていますが、
そのためだけに StackPanerl を使うのは無駄なような気がして、
なにか方法あるんじゃないかと思ってるんですが。
0037デフォルトの名無しさん2010/09/14(火) 00:16:54
>>35
たしかにデザイナも使えないしやめたほうがいいかも
それでやってみます
0038デフォルトの名無しさん2010/09/14(火) 00:20:05
>>36
HorizontalAlignment/VerticalAlignment?
0039362010/09/14(火) 00:52:41
できました。
HorizontalAlignment プロパティは知ってましたが、WinForms と同じで
TextBlock 内で Text をどこに表示するかという意味だとばかり思ってました。

HorizontalAlignent でコントロール自体の大きさが変わるとは・・・。
勉強になりました。ありがとうございました。
0040デフォルトの名無しさん2010/09/14(火) 00:59:56
> TextBlock 内で Text をどこに表示するか
TextBlockにはないけど子要素をどう配置するかはHorizontalContentAlignment
HorizontalAlignmentは親要素に対し自分をどう配置するか
0041デフォルトの名無しさん2010/09/14(火) 02:19:51
クラスはカスタムコントロールで作ってスタイルはリソースディクショナリ。
コントロールが複数ならgeneric.xamlでマージする。
0042デフォルトの名無しさん2010/09/14(火) 12:59:41
WPFのカスタムコントロール(≠ユーザーコントロール)作るの難しすぎ
特にテンプレートのサポート
中は泥臭くていいからコンポーネントの利用者には完璧なAPIを提供しろっていう
いかにもMSらしい思想を感じる
0043デフォルトの名無しさん2010/09/14(火) 13:25:56
オーバーライドではなく、根っこから記述すれだから、公開されている
テンプレートになかったら、自力で書くしかないね。

しかし XAML 使い出すと、フォームはもう使うことないわ。古臭すぎる。
0044デフォルトの名無しさん2010/09/14(火) 13:36:37
データ仮想化サポートされないかなー
0045デフォルトの名無しさん2010/09/16(木) 01:48:18
要素が現在画面に表示されてるかどうかを知る方法ってありますか?
0046デフォルトの名無しさん2010/09/16(木) 01:51:51
ヒットテスト
http://msdn.microsoft.com/ja-jp/library/ms752097.aspx

泥臭いよなー
マジどうにかしてほしい
0047デフォルトの名無しさん2010/09/16(木) 01:56:34
ヒットテスト
ttp://gun.world.coocan.jp/guns/shooting_re/031205hdd.htm
0048デフォルトの名無しさん2010/09/20(月) 03:50:29
BulletDecoratorのBulletってFrameworkElementFactoryで指定できないんだろうか?
0049デフォルトの名無しさん2010/09/22(水) 00:58:44
WPFで文字の縁取りってどうやればいいの?
TextBlock オブジェクトをたくさん作ってずらせば出来そうだけど
もっとスマートな方法あるよね。
0050デフォルトの名無しさん2010/09/22(水) 01:25:24
>>49
FormattedTextのBuildGeometryを縁取りをつけて描画。
http://msdn.microsoft.com/en-us/library/ms745816.aspx

小さめの文字ではあまり見栄えが良くないので使いどころに困る。
Effectでお茶を濁したほうが楽だろうなぁと思う。
0051デフォルトの名無しさん2010/09/22(水) 01:30:50
>>50
神だわ、マジサンクス!
0052デフォルトの名無しさん2010/09/22(水) 02:00:26
リサイズ中ではなくリサイズ後(マウス離したタイミング)で発生するイベントってないんだろうか
0053デフォルトの名無しさん2010/09/22(水) 02:12:20
メッセージフックしてWM_EXITSIZEMOVE捕まえれば?
0054デフォルトの名無しさん2010/09/22(水) 02:43:00
>>53
できた、ありがとう
0055デフォルトの名無しさん2010/09/22(水) 23:34:42
不正な入力のチェックは、MVVMではどこでやるんでしょう?

・ViewModelでチェック
・ModelをIDataErrorInfoの具象にしてModelで値のチェック
・ValidatesOnExceptionで入力値の型をチェックさせることもできたり
・BindingのValidationRuleでチェックさせることができたり
・ViewのDependencyPropertyにValidateCallbackでもチェックできたり
・ViewのDependencyPropertyにCoerceValueCallbackを登録すれば
 (チェックではありませんが)入力値自体を正常範囲に丸めたり、不正な入力を蹴ったりできたり

と、色々な箇所にチェックを入れれるようで、どれをどういう場合に使えばいいのやらサッパリで…
0056デフォルトの名無しさん2010/09/22(水) 23:57:53
多く見るのは VM に IDataErrorInfo 実装 + ValidatesOnDataErrors だけど、
HasError とかに何を入れるかよね。

モデルに投げちゃう方式だと、モデルが WCF サービスでウェブ越しとかな時に困りそう。

最近多いのは、VM のプロパティに DataAnntations の検証属性つけて、
HasError とかの中では Validator.ValidateObject/ValidateProperty するだけとかかな。

O/R マッパーのエンティティクラスの方と2度手間になったりするんで、
T4 とか使ったコード生成で対処してる人もちらほら。
0057デフォルトの名無しさん2010/09/23(木) 12:38:05
ttp://www.atmarkit.co.jp/fdotnet/basics/xaml01/xaml01_02.html
上記のサイトを参考にwin.xaml実行したのですが、xpcom.dllがないってエラー表示されます
ブラウザはgoogle chromeを既定に設定してます。
xamlを動かすには何かランタイムが必要なのでしょうか?
net flamework4.0はインストール済みです
0058デフォルトの名無しさん2010/09/23(木) 14:47:05
Chromeでは動かない。
ググってみたらFireFoxをインストールしてパスを通せばChromeで動くようになるらしいけど
そんなんで動いても意味ないでしょ。配布先にそんなことさせるの?
XBAPなんて完全に見捨てられた技術だからブラウザで動かしたかったらSilverlight使うべき。
0059デフォルトの名無しさん2010/09/23(木) 14:57:09
それマジで行ってんの?今週勉強したばかりの俺はどうしたらいいんだ
0060582010/09/23(木) 14:58:14
質問の意図を勘違いしてた。
LooseXAMLといって、.NETが入ってればIEで直接開けるものもあるんだけど、
一般にはXAMLはそれ単体では動かない。VSでビルドしてアプリケーションに組み込まれて初めて動くようになる。
>>57の情報は古いのでこっち参考に
http://www.atmarkit.co.jp/fdotnet/chushin/introwpf_index/index.html
0061デフォルトの名無しさん2010/09/25(土) 21:35:45
ListViewのGridViewな行選択スタイルをListBoxで使おうと考えているのだが、これってやる方法あるのだろうか。
0062デフォルトの名無しさん2010/09/25(土) 21:50:40
意味が分からんのだがListBoxItemのDataTempleteに
StackPanelをOrientation=Horizontalにして使うんじゃ駄目なのか?
0063デフォルトの名無しさん2010/09/25(土) 21:57:15
Styleだから選択色半透明にしたいとかそういうんでねえの。
0064デフォルトの名無しさん2010/09/25(土) 22:01:45
じゃあこの辺か?
http://msdn.microsoft.com/ja-jp/library/ms750821.aspx
0065デフォルトの名無しさん2010/09/27(月) 23:43:16
WPFスレが伸びないのは使いにくいからですか?
0066デフォルトの名無しさん2010/09/27(月) 23:56:25
頭でっかちの人たちがつくったもんだからごちゃごちゃしすぎちゃって頭悪い人たちがついていけませんでした
0067デフォルトの名無しさん2010/09/28(火) 00:00:21
でもWPFの表現力には期待してるよ
0068デフォルトの名無しさん2010/09/28(火) 00:10:59
表現力なんかどうでもいいからバインディングをどんどん強化してくれ
0069デフォルトの名無しさん2010/09/28(火) 01:06:13
まあ、新技術の浸透なんて5年10年余裕でかかる。
0070デフォルトの名無しさん2010/09/28(火) 01:37:15
5年後に数字が+5されてないことを祈るわ
0071デフォルトの名無しさん2010/09/28(火) 02:03:20
>>65
新しいってだけで思考停止しちゃう>>66みたいな第2のコボラーが荒らしに来るから普段は離れてROMってる。
0072デフォルトの名無しさん2010/09/28(火) 08:10:13
表現力はともかく、アーキテクチャがぐちゃぐちゃで実装がきたなすぎて分かりに
くい。コントロールのイベントやプロパティも覚えきれないほどたくさんあるけ
ど、肝心なところが「え!こんなこともできないの?」と抜けてることもあるし。リ
フレクションの多用で型の安全性が大きく損なわれてるのも. net frameworkの元々の
思想から大きく逸脱してる。
0073デフォルトの名無しさん2010/09/28(火) 09:02:39
IEでは特に設定しなくても動作するが、FireFoxの場合サーバー側でMIMEの設定が必要になる。
IE以外でローカルで動かす方法は知らない。
LooseXAML: .xaml application/xaml+xml
XBAP: .xbap application/x-ms-xbap
Click Once: .application application/x-ms-application
Chromeもこれで動いていた記憶があるが今は環境がないので試せない。

silverlightでは不要なのでブラウザ上でいろいろやりたい場合はこっちのほうがいいかな。
0074デフォルトの名無しさん2010/09/28(火) 09:21:51
Silverlight(2 以降)の登場後、それでも XBAP 使ってる人ってほとんど見たことないけども。
MIME の設定は、Silverlight の XAP に対しても必要よ。
0075デフォルトの名無しさん2010/09/28(火) 09:42:06
>>74
xapはプラグインがダウンロードするからMIMEの設定は不要。
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2"
 <param name="source" value="xxxxx.xap"/>

MIMEの登録は間違って開かないようにとか、
他のアプリに使われないようにといった意味しかないと思う。
0076デフォルトの名無しさん2010/09/28(火) 14:18:20
MSDNの資料でWPFを使う前にSilverlightを検討してみてくださいって言われてた
0077デフォルトの名無しさん2010/09/28(火) 23:57:45
酷いw

デスクトップでいいものならやっぱフル版の .NET の方が楽なんだけどもねぇ。
0078デフォルトの名無しさん2010/09/29(水) 03:23:29
>>68
強化されて乱用されると複数のバインディングの動作順次第で処理結果が変わるなんて
トラブルが多発しそうで面倒見れないから
バインディングやxamlの処理を直接デバッグできるようにするとかを強化して欲しいなぁ。
0079デフォルトの名無しさん2010/09/29(水) 12:41:11
>>78
デバッグは本当に困るね。なんとかならないのかな。
0080デフォルトの名無しさん2010/09/29(水) 13:10:17
バインディングは鬼門

使ったらだめ
0081デフォルトの名無しさん2010/09/29(水) 14:13:10
ところでいい加減テキストボックス系コントロールは透過できるようになりましたか
0082デフォルトの名無しさん2010/09/29(水) 14:23:40
初めからできてたと思うが?
0083デフォルトの名無しさん2010/09/29(水) 18:09:57
そういう時代錯誤も甚だしい変な制限を一掃するためにWPFが生まれたんだが
0084デフォルトの名無しさん2010/09/29(水) 20:00:19
WPFはWindowsサーバでしか動かせませんでしたっけ?
SilverlightはLinuxサーバでも動かせるんでしたっけ?
0085デフォルトの名無しさん2010/09/29(水) 20:11:41
>>84
バカは死んでください。
0086デフォルトの名無しさん2010/09/29(水) 22:22:21
UIとロジックが分離できるのが長所らしいけど、それぞれが複雑化、冗長化している。
たしかに作業が分担になるかもしれないが、これでは、
『分担しなければ作れない』
になってしまうではないか・・・
個人でプログラム書くには向いてないねこれ。
0087デフォルトの名無しさん2010/09/29(水) 22:24:07
そーかね
俺はもうFormsには戻りたくない
0088デフォルトの名無しさん2010/09/29(水) 22:29:46
俺も。HTML感覚で構築できるのは良い。
0089デフォルトの名無しさん2010/09/29(水) 22:33:45
【IT】台湾のマイクロソフトのサイトが激萌えで凄い! 日本がまさかの敗北
http://kamome.2ch.net/test/read.cgi/newsplus/1285742248/
0090デフォルトの名無しさん2010/09/29(水) 23:17:26
でもコードだけでオブジェクト作れるじゃん
0091デフォルトの名無しさん2010/09/29(水) 23:19:26
Viewをいじるのがだるすぎる
ガワ作るのは楽しいけど、ほんとそれだけ
0092デフォルトの名無しさん2010/09/29(水) 23:31:54
WPFはインフラ整備がクソ過ぎる
.NET5にはようやく…
0093デフォルトの名無しさん2010/09/30(木) 16:56:50
Listboxで選択されているアイテムを再度クリックした時に選択解除させたいのですが、どうすればいいのでしょうか?
0094デフォルトの名無しさん2010/09/30(木) 17:10:16
SelectionMode=Multiple?
0095デフォルトの名無しさん2010/09/30(木) 17:17:06
複数選択はさせたくないのです…
0096デフォルトの名無しさん2010/09/30(木) 17:23:24
ItemsControl.ItemContainerGeneratorのメソッド使えばインデックス取れるよ
そこから選択変更できるはず
0097デフォルトの名無しさん2010/09/30(木) 17:43:03
>>96
すみません、ListboxのItemContainerGeneratorのメゾットを使用して、
既に選択されている項目がクリックされたときに反応する方法がわからないのですが、どうすればいいのでしょうか?
0098デフォルトの名無しさん2010/09/30(木) 17:46:51
>>97
http://msdn.microsoft.com/ja-jp/library/system.windows.controls.listboxitem_events.aspx
>MouseDown


少しは検索しろよチンカス
0099デフォルトの名無しさん2010/09/30(木) 17:51:40
>>98
優しすぎて泣いた
ありがとん
0100デフォルトの名無しさん2010/09/30(木) 18:33:00
unregisterReceiver 忘れると SynchronousQueue#put が deadlock するとは…
01011002010/09/30(木) 18:33:42
ごめん!お隣のタブと間違えた
0102デフォルトの名無しさん2010/09/30(木) 18:37:33
いえいえ
0103デフォルトの名無しさん2010/10/02(土) 10:12:31
メゾットにだれも反応しない件について
0104デフォルトの名無しさん2010/10/03(日) 01:27:24
もう察したからいいんだよ
0105デフォルトの名無しさん2010/10/03(日) 01:40:31
インストロールと同じぐらい使い古されてるからなぁ
0106デフォルトの名無しさん2010/10/03(日) 02:06:45
「インストロール手順を教えてください」とメールを送ると
「インスコール手順は以下の通りです」と平気で返ってくるなんてよくあること
0107デフォルトの名無しさん2010/10/03(日) 08:32:53
メゾットの作り方

1. タマネギはみじん切りにして、オリーブオイル、無塩バター40gで炒める。
2. タマネギが透き通ってきたら、米を入れて中火でさらに炒める。
3. 2に白ワインを加えて強火で煮、沸騰してきたら中火にする。水分がなくなるまで煮詰める。
4. 最初、米がかぶるくらいの分量の水をくわえ、グツグツくらいの火加減で煮る。
  メゾットの表面の泡が少し粘った感じになったら最初の時よりやや少な目の水をくわえ、同様に煮る。
5. 繰り返し水をくわえて好みのかたさに仕上げる。好みのかたさに近くなったら、塩小1/2を加えて煮詰める。
6. 5にすりおろしたパルメジャーノを加え、フライパンを揺すりながら混ぜる。仕上げに無塩バター40gを加えて、バターが溶けたら皿に盛る。
0108デフォルトの名無しさん2010/10/03(日) 08:33:32
リゾット・ネエロ
0109デフォルトの名無しさん2010/10/03(日) 09:04:45
それリセットだから
0110デフォルトの名無しさん2010/10/06(水) 22:50:17
ViewModelにBindした添付プロパティを他の添付プロパティにBindって不味いんでしょうか?

・ViewModelのプロパティをViewの添付プロパティAにBind、
・添付プロパティAを、別な添付プロパティBにコンバータ経由でBind、
として添付プロパティAを書き換えた所、
ViewModelのプロパティおよび添付プロパティAは値が変化したのですが
添付プロパティBは値が変化していないようです(添付プロパティBの変更通知どころかコンバータすら呼ばれないようです)。

しかし以下の場合は2つのケースは動きました。
・ViewModelのプロパティを直接添付プロパティBにコンバータ経由でBind
・ViewModelのプロパティを添付プロパティAにBindせずに初期値をセット。
 その状態で添付プロパティAを別な添付プロパティBにコンバータ経由でBind

なんか動いたり動かなかったり…条件がよく分かりません。
0111デフォルトの名無しさん2010/10/06(水) 23:10:51
>>110
別にそんなことないな
0112デフォルトの名無しさん2010/10/06(水) 23:25:42
どこかコンバートの途中で出てる例外が、WPFのフレームワーク側で握りつぶされてて見えないだけとかは?
0113デフォルトの名無しさん2010/10/06(水) 23:41:23
ありがとうございます。

>>111
ですか…うーん。関係なさそうなコードをだいぶ削っても起きているので、
なにか根本的に間違えているのかもしれません。もうちょっと調べてみます。
>>112
出力ウィンドウを見てもそれらしいものはないので、それは大丈夫そうです。
0114デフォルトの名無しさん2010/10/07(木) 01:54:48
>>110
両方のBindのコンバーターにブレイクポイントを置いてデバッグしてみたら?
0115デフォルトの名無しさん2010/10/07(木) 23:31:13
>>110です。すみません、そもそもBindできていませんでした。
添付プロパティAを持つコントロールを渡して
そのコントロールの添付プロパティAを添付プロパティBにバインドしているつもりが、
添付プロパティAを持つコントロールがContentControlに入っていました。

お騒がせしました。
0116デフォルトの名無しさん2010/10/07(木) 23:42:32
おっちょこちょいだなあ…

しーね(^皿^)
0117デフォルトの名無しさん2010/10/07(木) 23:43:34
 ∧||∧
(  ⌒ ヽ
 ∪  ノ
  ∪∪
遺書
 おっちょこちょいで面目ない
0118デフォルトの名無しさん2010/10/07(木) 23:47:19
Expression4のアップグレード版はVS2010のExpress版も対象に含まれてるよね?
MSのページにはExpressを除くというような表現はないけど、Amazonのページだと
「※無料のダウンロード製品および体験版は対象外。」と書いてあってどっちだか
わからん。
0119デフォルトの名無しさん2010/10/11(月) 19:13:53
DataGridのCanUserAddRowプロパティをデザイナから変更してもチェックが変わらないのは、バグなのでしょうか。
0120デフォルトの名無しさん2010/10/11(月) 21:10:19
WPF
前から興味があって、今日ちょびっと勉強したのでこのスレを開いてみたら
1のやる気の無いコメントで泣いた ('A`)
0121デフォルトの名無しさん2010/10/11(月) 21:23:08
大丈夫、技術なんてそういうもんだから。
いまだのコボルが現役なんだぜ。

例え WPF 自体が下火になろうとも、知識は Silverlight に流用できるし。
0122デフォルトの名無しさん2010/10/11(月) 22:10:53
前スレは3ヶ月で潰したのにこのスレ2ヶ月で120レスしかないお( ^ω^)
0123デフォルトの名無しさん2010/10/11(月) 22:35:23
XAMLの優秀なデザインソフトが無料で提供されれば、
個人レベルのとこからじわじわと着実に広まると思うんだけどな
現状だと一部のオタクがブログでこんなんできたみたいな単発ネタ出してるだけにすぎない
0124デフォルトの名無しさん2010/10/11(月) 22:52:33
それはすいませんねえ!
0125デフォルトの名無しさん2010/10/12(火) 00:02:57
>>123
GridとStackPanelあたりを使って配置していくと
XAMLを書きながらプレビュー表示しているだけという感じになって
デザイナソフトとかどうでも良くなってきたよ。
後はMarginやPaddingなどをリソースに設定しておくと
誰が作っても同じような綺麗に揃ったレイアウトになるのでなかなか楽でいいよ。
0126デフォルトの名無しさん2010/10/12(火) 00:07:00
ChildWindowの外観と同じものをXAML手書きで作れる?
0127デフォルトの名無しさん2010/10/12(火) 00:25:41
>>125 はプログラマー的感覚、>>123 は Flash とか使って UI 作ってる視覚デザイナー的感覚なのかな。
0128デフォルトの名無しさん2010/10/12(火) 00:30:21
大まかには手書きで作れるけど、細かい視覚効果は死ねる
0129デフォルトの名無しさん2010/10/12(火) 00:38:22
Formsのデザインを模倣するだけなら簡単
しかしWPFで求められてることをやろうとするのは大変だ
0130デフォルトの名無しさん2010/10/12(火) 00:38:22
アニメーションとか直書きでなんかやってられない
0131デフォルトの名無しさん2010/10/12(火) 00:38:45
VisualStateManagerなんか完全に人間が扱うものじゃなくなってるからな
0132デフォルトの名無しさん2010/10/12(火) 00:43:03
グラデーション一つ作るのも大変
VS2010はグラデーションエディタ使えるけど相変わらずスタイルやリソースには対応してないから使い物にならない
0133デフォルトの名無しさん2010/10/12(火) 00:43:18
でも実際のところ、そんな凝った視覚効果が求めらてるかというと・・・
データ検証とか、検証通るまでボタン押せなくするとかやりやすいだけでも WPF の価値あると思うんだけども。

で、せっかく開発者とデザイナーの協業想定されてるんだから、
細かい視覚効果が本当に必要になったときにデザイナーさんに UI 修正をお願いするとかがいいと思う。
0134デフォルトの名無しさん2010/10/12(火) 00:53:15
WinForms程度でいいんだったら尚更XAML手書きは要らないと思う
VS2010のXAMLデザイナの使い勝手はWinFormsとそんなに変わらなくなった
0135デフォルトの名無しさん2010/10/12(火) 01:03:58
本当に必要な細かい視覚効果なんてないとおもうんだ
0136デフォルトの名無しさん2010/10/12(火) 01:05:58
>>135
うん、特に業務だと皆無だと思う。
なので、そういうところよりは分業とかMVVMでのモデル分離とかの方がWPFの利点かなぁと思う。

まあ、コンシューマー系だと無意味に思える装飾も目を引きたいって意味合いで使えるけども。
0137デフォルトの名無しさん2010/10/12(火) 03:52:58
結局デザイン面においてもWinFormsで十分ってことか
0138デフォルトの名無しさん2010/10/12(火) 04:07:10
見飽きた流れだ
0139デフォルトの名無しさん2010/10/12(火) 10:57:15
使ってて楽しいアプリつーもんを目指していかなあかんのですわ
0140デフォルトの名無しさん2010/10/12(火) 17:09:19
>>133
データの検証とかコントロールのオンオフ制御とかは正直wpf関係ないじゃん。wpf
のそれは複雑で、かつ分かりにくすぎる。いかにもmsらしい、無意味にいやらしい
アーキテクチャだよな。へジタンの目指した世界がもうめちゃくちゃだよ。
0141デフォルトの名無しさん2010/10/12(火) 17:45:46
わかってないのお前だけじゃね?
ついてこれないならそろそろ辞める事を考えないとね、君はさ
0142デフォルトの名無しさん2010/10/12(火) 18:33:16
カスタムコントロールに使う要素の機能を拡張したいってときの実装方法はどうすればいい?
例えば時間を指定するコントロールを作るとして、
時、分、秒それぞれにTextBoxを用意する。
フォーカスを得るとそのTextBoxが全選択状態になるようにTextBoxに機能を追加するとして、
添付ビヘイビアを使うか、TextBoxを継承したコントロールを用意するか、他には何かある?
0143デフォルトの名無しさん2010/10/12(火) 18:45:08
普通にコードビハインドで書けばいいよ。
DateTimeを指定するだけのコントロールだろ?
単なるビューの部品なんだからMVVMみたいなのを適用するのは不適切。
0144デフォルトの名無しさん2010/10/12(火) 19:28:27
ユーザーコントロールじゃなくてカスタムコントロールだったら、コントロールテンプレートが差し替えられるから
添付ビヘイビアなんか使えないよ。TextBoxを継承したコントロールを使うのも、
テンプレートに制約ができてしまうから良くない。
0145デフォルトの名無しさん2010/10/13(水) 14:35:27
試してみたけどカスタムテンプレートでもビヘイビア使えたよ。
<TextBox local:TextBoxBehaviors.IsFocusSelect="True" Text="{Binding Hour}"/>
てな感じで使える。
TemplatePart属性使ってコントロールのコード内でやるのもお手軽でいいと思ったけど、
ビヘイビアだとロジックを分離できて、ユーザーから見ても機能の取捨がより簡単にできるし
自由度も上がるんじゃないかと思う。
0146デフォルトの名無しさん2010/10/16(土) 03:40:04
>>141
>>140じゃないが、それでお前は、
説明をほとんど読まずに、いろんなことを即実装出来てきたのか?
「なぜいちいちこんなダラダラした書式で書かねばいかんのか」
「なぜこんなことがこんな奥まった位置にあるのか、回りくどい取り付け方をしなくてはいかんのか」
そういう疑念が湧く事など全くないわけだろう。

小物のアプリ一つ動かせたらうれしくて、
「俺ってすごいプログラマ!そしてこれはすばらしい開発システムだ!すごい!」「3流プログラマはろくに動かすことさえできねえんだろうな!」
そういうレベルの話をしているんじゃない。

あるアプリを作るのに、凡庸プログラマならスパゲッティで5万行、そこそこなら1万行、超優秀な設計とコードを書ける人間ならすっきり明瞭高速拡張性大の3千行。
wpfのシステムは、それそのものが2番目程度のものだと(一歩譲っても2.5番目の6千行)、多くの人間が感じているわけよ。
0147デフォルトの名無しさん2010/10/16(土) 09:53:43
このスレにも痛い奴が来るとはねぇ
要はWPFもメジャーになったって事か
0148デフォルトの名無しさん2010/10/16(土) 10:18:40
自分の考えが正解と思ってる
まだまだ入り口君なんだよ
0149デフォルトの名無しさん2010/10/16(土) 10:21:03
所詮は受注アプリプログラマのレベルだろw
0150デフォルトの名無しさん2010/10/16(土) 10:56:41
受注アプリプログラマ・・・なんだよそれ?
0151デフォルトの名無しさん2010/10/16(土) 11:26:33
まあ、今もう、わかってる人はみんなコード生成でやってるからねぇ。

とにかく、データの定義を一か所に集めたいのよ。
データ定義から、Entity Framework の Entity とか、
WPF 向けの ViewModel とか、
あるいは、DataGrid とか DataForm の列定義/フィールド定義を生成してる。

ViewModel に IDataErrorInfo とか INotifyDataErrorInfo 付けてのデータ検証、
そういうやり方には結構あってると思うけどね。
0152デフォルトの名無しさん2010/10/17(日) 02:46:12
WPFはプログラミングとは言えない代物
真のプログラマーは使わない
0153デフォルトの名無しさん2010/10/17(日) 03:50:32
真のプログラマーは何を使うん?
0154デフォルトの名無しさん2010/10/17(日) 05:35:16
OS/370とFortranかな
0155デフォルトの名無しさん2010/10/17(日) 06:36:06
それって例のギャグだろ
0156デフォルトの名無しさん2010/10/17(日) 11:10:29
だね、ギャグ。

プログラム書いて自動化すれば(最初だけちょっと大変だけど以後)数秒で終わる作業を、
Excel 手作業とかで延々と何時間もやってるおっちゃんっているじゃない。
刺身タンポポ的作業。

そこでいう「真のプログラマ」ーって刺身タンポポと大差ないよね。
0157デフォルトの名無しさん2010/10/17(日) 14:52:27
刺身タンポポって何?
0158デフォルトの名無しさん2010/10/17(日) 15:09:25
         ____
       /      \
     /  _ノ  ヽ、_  \
    /  o゚⌒   ⌒゚o  \  今日もまた、刺身の上にタンポポのせる仕事が始まるお…
    |     (__人__)    |
    \     ` ⌒´     /
0159デフォルトの名無しさん2010/10/17(日) 15:50:11
あれは手作業じゃないですよ
0160デフォルトの名無しさん2010/10/17(日) 16:10:04
だからギャグなんだって。
今時工場ライン化されてるはずの作業を手作業でやってるもんだっていう。
0161デフォルトの名無しさん2010/10/17(日) 16:51:08
また街路樹の落ち葉を掃除する仕事が始まるお…
0162デフォルトの名無しさん2010/10/17(日) 17:00:10
あれは食べるものじゃないですよ
0163デフォルトの名無しさん2010/10/17(日) 17:45:53
また街路樹の銀杏を取り合う仕事が始まるお…
0164デフォルトの名無しさん2010/10/17(日) 18:48:58
くせーから早く持ってってくれ
0165デフォルトの名無しさん2010/10/17(日) 21:30:24
WPFは何でも部品としてバラして改造できる柔軟性の高さ故に手間がかかる。
人によっては刺身タンポポに見えるが、人によっては銀の弾丸に見える。

俺にはほぼ刺身タンポポに見えるけどねw
0166デフォルトの名無しさん2010/10/17(日) 21:32:16
俺にはジグソーパズルだな
0167デフォルトの名無しさん2010/10/17(日) 21:35:53
何でもバラせるからって、
別にバラさなきゃいけない訳じゃないし。そのまま使えばOK。
0168デフォルトの名無しさん2010/10/17(日) 21:43:37
俺にはダイヤの原石に見えるね
0169デフォルトの名無しさん2010/10/17(日) 21:45:11
>>165
まあ、ツールの利用とかコード生成とかが前提よ。
それが WPF 刺身タンポポを回避する方法。
0170デフォルトの名無しさん2010/10/18(月) 11:48:50
WindowStyleをNoneにして最大化するとフルスクリーン?になるんだけど
どうすればタスクバーが隠れないようにできるの?
0171デフォルトの名無しさん2010/10/18(月) 20:35:34
WindowsStyleをNoneにしなければできるの
0172デフォルトの名無しさん2010/10/18(月) 23:34:33
>>119
ItemsSourceにデフォルトコンストラクタがある型の追加可能なコレクションを設定しないと有効にならない。
デザイナ上は判りにくい動きになるが一応値はセット出来てるはずだよ。
0173デフォルトの名無しさん2010/10/19(火) 01:19:14
完璧なのはSCCSだけ、だがな。
0174デフォルトの名無しさん2010/10/20(水) 19:47:50
標準で追加されたDataGridって痒いトコに手が届かねぇんだな。
MVVM推奨するならDoubleClickやSelectionChanged用のCommandプロパティぐらい用意しとけよと。
0175デフォルトの名無しさん2010/10/20(水) 19:55:12
WPFはSilverlightのデスクトップ用互換環境に成り下がったからな
Silverlightのダイエット志向に合わせてる
0176デフォルトの名無しさん2010/10/20(水) 22:03:56
>>174
ダブルクリックは普通に InputBindings でいけない?
まあ、Blend SDK 入れて、そっちのトリガー使えば何でもコマンドをバインドできる。
.NET 5 では標準入りするんじゃないかなぁ。
0177デフォルトの名無しさん2010/10/20(水) 22:15:59
ASPのGridよりはマシ
0178デフォルトの名無しさん2010/10/20(水) 23:58:30
>>176
.NET5とか、それまでWPFの息があるかどうか…Orz
0179デフォルトの名無しさん2010/10/21(木) 01:20:44
ListBoxのアイテムにコンテキストメニューをつけそこから削除させようと思ったら、
コンテキストメニューから操作した場合はそれが動くけど
DELキーの場合はListBox自体のキーバインドが先に動くという微妙な結果に。さてどうしたものか。

部品がどのRoutedCommandを出してどのCommandBindingsが登録されているかってMSDNに書いていないよね?
0180デフォルトの名無しさん2010/10/23(土) 17:51:15
RichTextBoxのTextChangedイベントでDocument書き換えるとエラー吐くのは仕様ですか?
0181デフォルトの名無しさん2010/10/23(土) 19:17:24
FocusChangedイベント中にフォーカスを書き換えると書き戻されたり、
そのあたりはいろいろと仕様です。
0182デフォルトの名無しさん2010/10/24(日) 02:16:47
MSもAppleを見習って、WPFで作ったアプリしか受け付けないMS Storeを作って販売すればいいのに。
そうすれば、一挙に普及する。
0183デフォルトの名無しさん2010/10/24(日) 02:30:33
そういう商売はやめてほしい
0184デフォルトの名無しさん2010/10/24(日) 16:10:21
Silverlight&XNAなら普通にやりそう
0185デフォルトの名無しさん2010/10/24(日) 17:46:28
Silverlightなら違う方向で普及を目指してる気がするけど……。
http://www.microsoft.com/taiwan/silverlight/
0186デフォルトの名無しさん2010/10/24(日) 21:48:02
日本でもやるべきだよな
0187デフォルトの名無しさん2010/10/24(日) 22:31:29
日本は公式がやらなくても有志がかってにやってくれる萌え先進国だからな
0188デフォルトの名無しさん2010/10/24(日) 22:56:15
>>185
ほんと、何やってんだかな・・・

まあ、画像は全部保存したけど
0189デフォルトの名無しさん2010/10/24(日) 23:22:32
その有志達
ttp://www.pixiv.net/search.php?word=silverlight&s_mode=s_tag
0190デフォルトの名無しさん2010/10/24(日) 23:50:02
声優にオフィシャルにしてくれと言われても、いろいろあってとしか言えない日本。
いろいろあるだろうにやっちまう台湾。
日本のマイクロソフトは情けない。
0191デフォルトの名無しさん2010/10/25(月) 00:55:36
>>190
だな。
0192デフォルトの名無しさん2010/10/25(月) 08:43:55
中国本土と台湾の温度差はすごいなw
0193デフォルトの名無しさん2010/10/25(月) 09:37:11
独立を公式に認められてないだけで別の国だしね。
0194デフォルトの名無しさん2010/10/25(月) 16:17:20
WPF上のコンボに対して、
コードからRoutingEventを一律Addするのってどうするの?
以下のコードでは追加できね。

this.AddHandler(ComboBox.SelectedEvent, new RoutedEventHandler(Combobox_SelectionChanged));

ボタンのクリックイベントならAddできるのに、コンボにAddできない理由がわからん・・・
0195デフォルトの名無しさん2010/10/25(月) 17:45:58
カスタムコントロールでXamlから
<Button Click="CustomControl1.Button_Click"/>
みたいな感じでコード側にあるハンドラと関連付けることってできないの?
コマンド用意するには大げさなときとか、こんなふうに手軽にかければいいんだけど。
どんな些細な操作でもコマンド使うのがカスタムコントロールの流儀なのかね。
0196デフォルトの名無しさん2010/10/25(月) 18:11:10
FindForm()みたいな、ルート要素を探すメソッドか方法ありませんか。
ユーザーコントロールのどこかから親Windowを捜すにはどうしたらいいんでしょうか。
0197デフォルトの名無しさん2010/10/25(月) 18:17:15
ぐぐれよw
0198デフォルトの名無しさん2010/10/25(月) 18:29:44
Window.GetWindow()

これか!
Windowの方のstaticかー
01991942010/10/25(月) 18:29:55
>> 195

Xaml記述ではできるんだけど、タイミングを制御したいのでコードで書きたいのです。

>>196

Window.GetWindow(control)
0200デフォルトの名無しさん2010/10/25(月) 19:59:38
>>199
>>195>>194とは無関係よ。紛らわしくてすまん
0201デフォルトの名無しさん2010/10/26(火) 05:23:32
webbrowserコントロールで一部のjavascriptが動きません。
javascriptの動作はボタンを押すとデータをPOSTするといったもののようなのですが
他のブラウザだとPOSTされたあと画面が切り替わるのに、
webbrowserコントロールでは切り替わりません。
FiddlerでモニタしたところPOST自体はされているみたいです。
WPFでもFormでもどちらも動かないのですが、どうすれば動くようになるでしょうか?
0202デフォルトの名無しさん2010/10/26(火) 06:03:59
IEで試した?
IEコアを使ってるからIEで動かない物は動かないよ

jsやcssはブラウザ作ってるところ毎で「ぼくのじっそうさいきょう」
やってるから差がある
0203デフォルトの名無しさん2010/10/26(火) 07:37:36
もちろんIEでも試しました
動かないのは
<a href="javascript:void(0);" onclick="hogehoge();">fugafuga</a>
こういう感じのコードです。
0204デフォルトの名無しさん2010/10/26(火) 07:38:59
ナビゲートしてないとか

0205デフォルトの名無しさん2010/10/26(火) 08:51:23
ナビゲートしてないというのはどういうことでしょうか?
0206デフォルトの名無しさん2010/10/26(火) 09:03:57
>>205
動かす予定のjsとかってどういうメソッド使って渡してるの?
0207デフォルトの名無しさん2010/10/26(火) 09:18:07
javascriptはよくわからないのですが
同じページにあるformをsubmitしてPOSTしてるようです
0208デフォルトの名無しさん2010/10/26(火) 14:18:57
将来的な c++ + winapi 辺りへの移植を考えたら.net止まりにせざるをえない
0209デフォルトの名無しさん2010/10/27(水) 11:03:57
ttp://blog.evernote.com/jp/?p=1150

Evernote 4は今までのEvernote 3.5とは全く違います。Evernote 3.5
もたくさんの良い機能を持っていましたが、どうしてもそのままでは直
せない問題がありました。ぼやけたフォント、起動時間の長さ、起動時のメ
モ リー使用量、特定のグラフィックカードとの相性の悪さ等の問題は3.5
が使っているWindows .netとWPFのためになかなか改善する事ができ
ませんでした。皆様がよりEvernoteを便利に使って頂けるような新機能を
追加する前に、改善作業ばかりに追われていました。

なので、もっと早く動く、信頼できるC++で最初から作り直す決心をし
ました。使って頂くと分かると思いますが、すばらしい出来映えになりました。こ
の新しいバージョンがこれから新しい機能などを追加していく基盤になります。
0210デフォルトの名無しさん2010/10/27(水) 14:44:30
C++でサクサク作れる人はすごいね。
0211デフォルトの名無しさん2010/10/27(水) 14:49:51
BASIC、アセンブラ、C、C++、JAVA、C#とかの系譜をこなしてきたなら簡単に出来るべ?
Java以前はリンカのためのヘッダがたまにうざったいとおもうがな。
0212デフォルトの名無しさん2010/10/27(水) 14:56:04
突っ込む場所が違うんじゃないかw
要はWPF使えない宣言されたってわけだ
0213デフォルトの名無しさん2010/10/27(水) 15:31:21
あのフォント問題を長期間放置しておいたのは罪深い
0214デフォルトの名無しさん2010/10/27(水) 16:16:32
さっさとSilverlightに吸収統合されてほしい
0215デフォルトの名無しさん2010/10/27(水) 20:46:35
この流れは止まらないだろうなー
WPF\(^o^)/
0216デフォルトの名無しさん2010/10/27(水) 20:51:46
原文は、「私たちが知ってて、信頼を置いていたC++」みたいな感じなのよね。
要は、Evernote 開発者が C++ な人なんで、慣れない WPF で書いて失敗した感じ。

それがなんか日本語特有の主語抜きに翻訳されちゃってて、
全面的に C++ が信頼置けるみたいな文章になっちゃってる。
0217デフォルトの名無しさん2010/10/27(水) 21:55:14
WPFがC++で.NETに関わらない形で使えるようにしてくれれば面白い。
0218デフォルトの名無しさん2010/10/27(水) 21:57:40
WPFの他にDirectXを使ったGUIフレームワークってないの?
0219デフォルトの名無しさん2010/10/27(水) 22:17:03
>>217
つSilverlight+ActiveX
WPF自体マネージコードで書かれてるので.NETに関わらないWPFというのはありえない
0220デフォルトの名無しさん2010/10/27(水) 22:36:30
ActiveX使うSilverlightって意味なくないか
0221デフォルトの名無しさん2010/10/27(水) 22:38:41
SilverlightはActiveXコントロール。
だからウィンドウに貼ってCOMでホスティングしてやればGUIフロントエンドとして使える。
0222デフォルトの名無しさん2010/10/27(水) 22:44:27
エバーノートのスレ見てきたらみんな早いとか喜んでてワロタ
WPF捨ててお客様満足度アップだなw
0223デフォルトの名無しさん2010/10/27(水) 22:56:53
まあ、XP で WPF の起動がもっさりなのも事実だし、
Evernote 的に、.NET 使うのがモチベーション上がらなかったんだろうなぁってのもあるだろうけど。

ユーザビリティ的に劣化してる部分もあって、twitterとかではそれをたたかれてたりもするが。
結局、信者はいい1点だけ見て喜び、アンチは悪い1点だけ見てけなす。
0224デフォルトの名無しさん2010/10/27(水) 23:09:01
WPF活かすようなナイスなGUIにしてなかったんだったらそもそもWPF使わなくてよかったんだろうし、
使う必要がったなら、自前か代わりの何かを持ってこないとならない。

まぁWPFが微妙にうんこなのは同意。
0225デフォルトの名無しさん2010/10/28(木) 20:00:12
Windows環境でWPF以外のGUI開発の選択肢ってどういったものがあるの?
Formはイマサラ感あるし、QtとかWTLとか?
0226デフォルトの名無しさん2010/10/28(木) 20:31:41
javax.swing
0227デフォルトの名無しさん2010/10/28(木) 21:16:36
もっとない
0228デフォルトの名無しさん2010/10/28(木) 21:43:54
.NET FrameworkはC#で書かれているとかそういうの要らんからネイティブで実装してほしかったな

△△は△△で〜みたいなのって誰得
0229デフォルトの名無しさん2010/10/28(木) 22:00:11
WPFが遅いのは別にC#で書かれてるせいじゃないだろ
バインディングとかゴテゴテの仕組みや描画のせいだから何で書いても一緒
SilverlightのGUIはほとんどネイティブだけどそんなに速くないっしょ
0230デフォルトの名無しさん2010/10/28(木) 22:10:53
描画?軽量だよ。
AtomのPCで動かしてもそこそこいけるしね。
0231デフォルトの名無しさん2010/10/28(木) 22:21:56
Silverlightはシンプルなレイアウトで描画面積が小さいと軽いけど
複雑になってくるとWPFとは比べ物にならないくらい重いよ
Silverlightはシンプルな使い方しかしないことが前提だから軽い
0232デフォルトの名無しさん2010/10/28(木) 23:30:28
WPFとかまだまだβ版じゃまいか。
WinForms+J2EE(WebOTX)が事実上トレンド。
0233デフォルトの名無しさん2010/10/28(木) 23:53:33
>J2EE
いや、それは無いだろう…
0234デフォルトの名無しさん2010/10/29(金) 00:17:40
J2EE使うならWin選択する理由がねえ
0235デフォルトの名無しさん2010/10/29(金) 01:43:16
>>230
WPF は CPU じゃなくて GPU 依存だしね。
あと、Vista か 7 なら軽い。

>>231
Silverlight は GPU の活用度合が低い感じが。
クロスプラットフォームだからある程度仕方がなく。

>>232
いつもの、「MS 製品は3世代目から」ジンクスに従えば、ようやく正式版。
0236デフォルトの名無しさん2010/10/29(金) 01:55:24
>>234
社会じゃ仕方なくWin縛りの案件ばかりなんだよ、僕。
0237デフォルトの名無しさん2010/10/29(金) 18:50:10
>>209
これのGUIって自作なのかな
0238デフォルトの名無しさん2010/10/29(金) 18:54:45
社外品だろ
早くなったのは起動だけ
他は、、まぁわかるよな
0239sage2010/10/29(金) 19:00:59
ビジネス用途での"Windows XP"シェアは全体の75%だからな、
さらに2014年まで使えるから、
あと2,3年はビジネス用途に絡むソフトにはWPFは鬼門かもしれんね
0240デフォルトの名無しさん2010/10/29(金) 19:11:55
EvernoteのおかげでWPFの普及がさらに遅れそうだな
0241デフォルトの名無しさん2010/10/29(金) 20:26:37
正直WPF使ってΣ( ゚Д゚) スッ、スゲー!!ってもんをみたことがない・・・
ほかのFWでもあまり見たことないがw
0242デフォルトの名無しさん2010/10/30(土) 07:23:20
cocoa売ってもらえばいいんだよなw
まあそれはなさそうだからwpf使うけど
0243デフォルトの名無しさん2010/10/30(土) 10:09:16
>>241
スゲー!と思わせてもどうせ2分で慣れる。
重要なのはWhat the fuckの少ない、驚き最小化の原則に乗った動作。
すなわちUIの良し悪しはフレームワークに依らない。

WPFを使うと微妙な挙動が多くてその実現に無駄に手間がかかるがなw
0244デフォルトの名無しさん2010/10/30(土) 10:16:58
>242
いや別にcocoaはいーやw

>243
いやLonghornのデモの時とかなんか色々すごいUIデモしてたような気がしたんだが…
まぁそれが使いやすいかどうかは別物だけど.
0245デフォルトの名無しさん2010/10/30(土) 10:26:36
単にすごければいいだけであれば、
ほとんどXAMLだけでアニメーションゴリゴリで動くものを作ることもできるさ。
限度を越えるとウザいだけだがなw
0246デフォルトの名無しさん2010/10/30(土) 11:56:12
Windows Media Center みたいな奴か。
0247デフォルトの名無しさん2010/10/31(日) 18:53:52
ひょっとしてWPFのWebBrowserってウンコ?
0248デフォルトの名無しさん2010/10/31(日) 18:59:51
ウンコもクソもIEコントロールホストしてラップしてるだけだもん
WPFのWebBrowserと呼ぶほどのものでもない
0249デフォルトの名無しさん2010/10/31(日) 22:17:37
>>247
WebBrowserだけでなくどれもがウンコだろが
0250デフォルトの名無しさん2010/10/31(日) 22:48:37
WebBrowserはWPFですらないのでTransformなども受け付けなくて残念だったんだよなぁ。
0251デフォルトの名無しさん2010/10/31(日) 22:56:36
NewWindowイベとStatusTextがホスィ
0252デフォルトの名無しさん2010/10/31(日) 23:23:45
SilverlightだとエフェクトかけたりできるのはもちろんWebBrowserBrushとかあるんだよな
0253デフォルトの名無しさん2010/11/01(月) 03:36:43
一方 firefox は Direct2D を選択した…!?
0254デフォルトの名無しさん2010/11/01(月) 09:01:54
WPFで開発するプログラムって具体的にどんなものが多いの?
0255デフォルトの名無しさん2010/11/01(月) 09:29:04
VC#2010Expr使ってて、WPFのプロパティウィンドウで値を変更しようとしたら、いつも勝手に日本語入力になるんだけど…
0256デフォルトの名無しさん2010/11/01(月) 12:58:36
【MS】Silverlight終了のお知らせ。今後はHTML5に注力。
ttp://hato.2ch.net/test/read.cgi/news/1288568171/
0257デフォルトの名無しさん2010/11/01(月) 13:07:16
WPFたん・・・orz
0258デフォルトの名無しさん2010/11/01(月) 13:33:46
ARPANET大勝利
0259デフォルトの名無しさん2010/11/01(月) 15:25:38
>>254
Visual Studio 2010 みたいなものです。
0260デフォルトの名無しさん2010/11/01(月) 16:47:18
WPFはまだ終わらんさ。Windowsアプリ開発の標準として揺ぎ無い地位を得るはずだ!はずだっ!
0261デフォルトの名無しさん2010/11/01(月) 17:16:42
wp7はsilverlightなんだし別に死亡じゃなくね?
0262デフォルトの名無しさん2010/11/01(月) 21:59:54
Windows Phone 自体が死んでいる
0263デフォルトの名無しさん2010/11/01(月) 22:03:56
WPF、Silverlightともに糸冬了
http://www.publickey1.jp/blog/10/html5silverlightwindows_phone_7.html
0264デフォルトの名無しさん2010/11/01(月) 22:06:32
3.5で作ったサンプルクラスのお手軽ソフトが4でビルドできない。

そして私はWPFを考えるのをやめた。
0265デフォルトの名無しさん2010/11/01(月) 22:08:34
次世代GUIまだ〜? (・∀・)
0266デフォルトの名無しさん2010/11/01(月) 22:27:17
Visual Studio 2012ではWPFのテンプレートは非標準。代わりにHTML5がメインとなりスマートクライアント時代も終息かと。
0267デフォルトの名無しさん2010/11/01(月) 22:30:45
ウソニュースだしな。
0268デフォルトの名無しさん2010/11/01(月) 23:00:06
>>264
それ4じゃなくて4 Client Profileとかじゃね?
0269デフォルトの名無しさん2010/11/01(月) 23:28:02
4 ⊃ 4 CP
0270デフォルトの名無しさん2010/11/01(月) 23:47:49
WinForm開発中止で、WPFを捨てたら…どこに行くんだよw
0271デフォルトの名無しさん2010/11/02(火) 00:11:57
WinFormsの方はそのまま4CPに移行成功した
WinForms安定だな
サクサク起動するようになったし侮れないな
0272デフォルトの名無しさん2010/11/02(火) 08:40:09
すると MDX2.0 returns がやってくるのか…
0273デフォルトの名無しさん2010/11/02(火) 15:45:51
>>264
どんだけ変な書き方してるんだよ
0274デフォルトの名無しさん2010/11/02(火) 15:58:45
どうせ非推奨APIを使用してて、コンパイルスイッチでエラーになる設定なんだろw
0275デフォルトの名無しさん2010/11/02(火) 20:18:17
// ResourceDictionary.xaml を作って、
<Style TargetType="Button" x:Key="abc">〜</Style>

// App全体に適用でおっけー、と App.xaml で
<Application.Resource>
 <ResourceDictionary Source="ResourceDictionary.xaml" />
</Application.Resource>

// しかし、UserControl.xaml 等からは見えてないわけで
<Button Style="{StaticResource abc}">〜</Button>

これが 「リソース "abc" を解決できません」 警告。
更に、このUserControlを使っているWindow.xamlでは
「"〜"のインスタンスを作成できません」エラー。
(デザイナを開かなければ起動できるし意図通り反映もされてる…)


今は各xaml全部に <ResourceDictionary Source="ResourceDictionary.xaml" /> と書いてますが
「App全体に適用でおっけー」を上手くやる方法はありますか。
0276デフォルトの名無しさん2010/11/02(火) 21:10:11
VSが古くない?
0277デフォルトの名無しさん2010/11/02(火) 21:36:53
>>275
同じことをしてみたけど、うちでは警告でなかったし、デザイナにも反映されたよ。

.NET Framework 4 Client Profile
Visual Studio 2010 Version 10.0.30319.1 RTMRel
+ Hotfix for Microsoft Visual Studio 2010 Professional - 日本語 (KB982218)
0278デフォルトの名無しさん2010/11/02(火) 21:54:05
ナンダッテー
VS2010Expressです。
ちょっと新しく作って最初から試してみます。
0279デフォルトの名無しさん2010/11/02(火) 22:14:57
わかった。
Srcフォルダを作って、そこにxamlとcsを全部入れてたんだけど、それだとダメみたい。
普通にプロジェクトフォルダ内なら大丈夫でした。
詳しいことはわかりませんが、参照の基準の場所?みたいのがあるんでしょうか。

試していただいてありがとうございました。
0280デフォルトの名無しさん2010/11/02(火) 22:20:45
ResourceDirextory.xamlがプロジェクトに追加されてないんじゃ
0281デフォルトの名無しさん2010/11/02(火) 22:30:40
いやー、ソリューションエクスプローラーから
右クリック 追加 新しいフォルダー、ドラッグでどぼどぼ移動、
ってやったので、プロジェクトは大丈夫だとおもいまっす。
(プロジェクトから除外してみたら例外ですた)
0282デフォルトの名無しさん2010/11/02(火) 23:18:51
WPFのTextBoxコントロールって右クリックしたときになんか変なメニューでるね。
なんで今までと同じにしないのか理解できない。
IME使わない国には分からないのかな。
0283デフォルトの名無しさん2010/11/03(水) 00:09:46
OS依存のコンテキストメニューを、自前実装のWPFがわざわざエミュレートするようなことはしない。他のコントロールもそうだろ。
0284デフォルトの名無しさん2010/11/03(水) 00:12:39
Windows以外で誰が使うんだよ
夢見すぎだ
現実に戻ってこい
0285デフォルトの名無しさん2010/11/03(水) 00:45:22
とりあえず、APIつーかネイティブな場合、どのようにしてコンテキストメニューが表示されているか知れば答えがわかるよ。
それを知っていれば、君はおかしな事を言っていた事に気づくはず。
0286デフォルトの名無しさん2010/11/03(水) 01:01:33
技術面でこうだから出来ないというのは三流の言うこと。
ユーザーの実態に合わせないからWPFはこうなった。
どうやら未来もなさそうだ。
0287デフォルトの名無しさん2010/11/03(水) 01:13:21
やっべ、WPF作った人三流らしいぜ
0288デフォルトの名無しさん2010/11/03(水) 01:54:24
>>286
自分こそが三流だと思えないとこが三流の三流たる所以
0289デフォルトの名無しさん2010/11/03(水) 02:12:26
TextBox のデフォルトコンテキストメニューに何で「すべて選択」が無いんだろ?
Ctrl+A で「すべて選択」は出来るから、キーバインドはされている。
なんか理由があるのかな?
0290デフォルトの名無しさん2010/11/03(水) 02:22:58
>>289
一流の仕事なんだから間違いない。
三流は黙っとけ。
0291デフォルトの名無しさん2010/11/03(水) 02:31:02
>>286
自分でどうにかしたらいいじゃないか。
技術的に無理か?
0292デフォルトの名無しさん2010/11/03(水) 02:37:43
Linuxがなぜ一般家庭まで普及しなかったのかを感がる時期に来ているね。
0293デフォルトの名無しさん2010/11/03(水) 02:40:11
一般家庭レベルならしょうがないな
0294デフォルトの名無しさん2010/11/03(水) 02:55:58
WPFなんだからApplicationあたりのリソースに
TextBoxのスタイルのContextMenuに満足のいくContextMenuを設定しておけよ。
もともとTextBoxのメニューなんてあんまり統一されてなかったと思うよ。
0295デフォルトの名無しさん2010/11/03(水) 08:31:05
TreeViewのイベントが複数回発生するのは仕様ですか?
0296デフォルトの名無しさん2010/11/03(水) 09:13:31
仕様です
0297デフォルトの名無しさん2010/11/03(水) 13:00:29
一億総三流時代
0298デフォルトの名無しさん2010/11/03(水) 19:05:34
このスレにあったような。
あった >>23-28
0299デフォルトの名無しさん2010/11/04(木) 21:37:50
MainWindowから Showするのに時間のかかるSubWindowを
非同期で表示するにはどうしたらよいのか、お教えください。


private void button1_Click(object sender, RoutedEventArgs e)

  Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(ShowSub));
}

private void ShowSub()
{
  SubWindow sub = new SubWindow();
  Thread.Sleep(3000);

  sub.Show();
}

こんなコードで実行すると、実行完了まで、MainWindowの操作ができなくなってしまっています。
Dispatcherの使い方が間違っているんだろう…というくらいまでは分かるのですが
それ以上わからず手じまいになってしまっています。
0300デフォルトの名無しさん2010/11/04(木) 21:48:50
無理
SubWindowのロード処理が重いなら、とりあえず表示だけ済ませて
重いロード処理は非同期にするべき
0301デフォルトの名無しさん2010/11/04(木) 21:50:08
>>299
DispatcherにInvokeを送る=UIスレッドで実行する=時間のかかる処理はフリーズしてしまう
のです。
DispatcherPriorityを設定したからって違うスレッドで実行されるわけではないです。
フリーズしないようにするためには別のスレッドで実行するといい。
例えばThreadPool.QueueUserWorkItemとか。
でも、別のスレッドからだとUIスレッドのコントロールに触ると例外が出てしまう。
そこで使うのがDispatcher.BeginInvokeで、UIスレッドにメソッドを送りつけるわけです。
0302デフォルトの名無しさん2010/11/04(木) 21:52:12
あきらめてSplash Windowをだしてごまかすとか。
WPFは簡単に出来たはず。
0303デフォルトの名無しさん2010/11/04(木) 22:07:53
>>300-302

即答ありがとうございました。

ThreadPool.QueueUserWorkItemでは STAスレッドではないということで
InvalidOperationExceptionが発生するということは
ググったり、自身で実行してみて理解していました。

自身に配置したコントロール(たとえばListBoxやTextBox)に対して
Dispatcher.BeginInvokeで非同期実行することはできていたので
Windowではなぜできないのか、悩んでおりました。

無理、という事が判明したのなら
アドバイス通り、スプラッシュやらプログレスの表示で回避するのが良策のようですね。
0304デフォルトの名無しさん2010/11/04(木) 22:33:40
>>303
非同期にやるっつったって、Dispatcher.Invoke の中で重たい処理しちゃいけないのはわかってる?

非同期開始
重たい処理
Dispatcher.Invoke
Window生成&Show

って順でやらないとダメ。
0305デフォルトの名無しさん2010/11/04(木) 22:57:39
ユーザーの文字入力でその文字のボタンを作成していくものを作ろうと思うのだけど
ボタンの作成はXAMLでするの?C#で記述するの?
0306デフォルトの名無しさん2010/11/04(木) 23:02:29
XAMLでスタイル書いといてC#でボタン作ってスタイル突っ込む
0307デフォルトの名無しさん2010/11/04(木) 23:08:55
WPFがもっとも苦手とする部分だな
0308デフォルトの名無しさん2010/11/04(木) 23:14:45
ボタンを追加?
データバインディングで Button.Content にテキストをバインドとかでなく?

動的に追加なら普通に C# で書くね。
0309デフォルトの名無しさん2010/11/04(木) 23:19:43
>>215
昔からそうだね
0310デフォルトの名無しさん2010/11/04(木) 23:22:54
>>306
スタイルとかよくわからないですがそれでやってみます

>>307
そうなんですか、まだXAMLでどこまでできるかよく把握していないので
ロジック分離するにも境界線がわかっていない感じです

>>308
動的なのかわかりませんが、ラップパネルにユーザーが文字を入力して作成ボタンを押すと
その文字が書かれたボタンが新しく追加されていくという感じです
0311デフォルトの名無しさん2010/11/04(木) 23:27:25
>>309は誤爆ですw
0312デフォルトの名無しさん2010/11/04(木) 23:29:05
>>310
そういう用途なら ↓こんな感じでやる。

XAML 側
<ItemsControl ItemsSource="{Binding List}">
  テンプレートで
  <Button Content="{Binding}" />

C# 側(どこかで DataContext 設定)
View.DataContext = new ViewModel();

C# 側(ViewModel クラスで)
class ViewModel
{
  public ObservableCollection<string> { get; set; }
}
0313デフォルトの名無しさん2010/11/04(木) 23:29:46
>>307
WPF で余裕。
データバインディングと ItemTemplate 強力。
03143052010/11/04(木) 23:37:06
>>312
わざわざありがとうございます
覚えなければいけないことがいろいろあるようで
根気よくやってみます
03153052010/11/05(金) 19:08:31
>>312
もう少しだけ細かく教えてもらえませんか?
ラップパネルにはItemsSourceもControlTemplateもないのですがどこのテンプレートですか?
それと作成ボタンが押されたらラップパネルにボタンが追加されるようにする方法もよくわかりません
Binding Listも何をバインディングしているのかもわかりませんでした
ViewModelクラスも何のために作成しているかわかりませんでした

一応こんな風にC#で作成ボタンのクリックイベントでボタンを作成するようにしてできましたが

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            Button button1 = new Button();
            button1.Content = textBox1.Text;
            button1.Background = new SolidColorBrush(Colors.White);
            button1.Foreground = new SolidColorBrush(Colors.DarkGreen);
            this.wrapPanel1.Children.Add(button1);
         }
0316デフォルトの名無しさん2010/11/05(金) 19:38:02
> ラップパネルにはItemsSourceもControlTemplateもないのですがどこのテンプレートですか?
WrapPanelは直接じゃなくてItemsControlのItemsPanelTemplateとして使う
で、この場合のテンプレートはItemsControl.ItemTemplate

> それと作成ボタンが押されたらラップパネルにボタンが追加されるようにする方法もよくわかりません
考え方が違う

A. 自分でやること
・ItemsControl,ItemsControlにObservableCollectionをバインドしておく
・必要なときにObservableCollectionに文字列を追加する

B. 勝手にされること
・ObservableCollectionはデータが追加されたことをItemsControlに通知する
・ItemsControlは増えたデータをDataTemplateをもとに作り上げた要素(ボタン)を自分に追加する
0317デフォルトの名無しさん2010/11/05(金) 20:33:41
>>316
http://ufcpp.net/misc/WpfApplication5.zip
03183052010/11/05(金) 21:07:11
>>316
>>317
わざわざ作って頂いてありがとうございます
でもデリゲートいっぱい、ソースみても何を書いているのかよくわかりませんでした
それと起動しても追加ボタンが灰色のままで押せないのですが

今の自分にはレベルが高すぎる上、なぜこうすべきかもわからないので>>315のやり方でとりあえず妥協します
0319デフォルトの名無しさん2010/11/05(金) 21:08:47
>>315
コード中でボタン作るのはともかく、コードにColor.DarkGreenとか出てくるのはちょっといただけない
せめてStyle使いましょう
0320デフォルトの名無しさん2010/11/05(金) 21:08:51
>>318
おいこらw、セッカクつくってもらったんだから妥協してんしゃねえよ。
つかてめえデリゲートごときでなにびびってんだコラ。
0321デフォルトの名無しさん2010/11/05(金) 21:10:37
はは、まぁ作った奴からすればちょっと悲しいよなw
0322デフォルトの名無しさん2010/11/05(金) 21:11:15
柄の悪いインタネッツですね
0323デフォルトの名無しさん2010/11/05(金) 21:11:27
デリケートは昔でいうgotoだから使う奴は初級者
0324デフォルトの名無しさん2010/11/05(金) 21:12:10
昔で言うgotoは例外ですよ
03253052010/11/05(金) 21:23:47
>>319
本当はスタイルしたいんだけど
C# コードでのstyleを作る方法が見つからなかった
XAMLでのコードはあったけど
でも、C#側で作ったボタンにXAML側で作ったスタイルを適用する
方法もわからなかったので

>>320
デリゲートはずっと避けてきてそれでもwinformsならそれなりのツールが
作れていたので、まった無知です
0326デフォルトの名無しさん2010/11/05(金) 21:26:02
ParallelsとかTaskとかデリゲートだらけに進化してます
0327デフォルトの名無しさん2010/11/05(金) 21:26:54
>>318
データはビューから分離しとかないと、すぐに管理しきれなくなるよ。

ほんとにボタン足して終わりの単純なアプリなら >>315 で全然いいんだけど。
0328デフォルトの名無しさん2010/11/05(金) 21:29:33
>>325
リソースで Style 作っておいて、
C# 側からリソース読み出せばいい。

てか、デリゲート避けてきたって、そりゃかなり酷いぞ。
C 言語でポインターが理解できませんと同レベルにどうしようもない。
0329デフォルトの名無しさん2010/11/05(金) 21:30:30
わからなきゃ投げ出すとか、ほんとゆとりだな
0330デフォルトの名無しさん2010/11/05(金) 21:34:17
デレゲートとラムダ式の違いがよくわからんかったな
0331デフォルトの名無しさん2010/11/05(金) 21:38:18
デリゲートね
デリゲートを簡単に書くためにラムダ式が
03323052010/11/05(金) 21:38:22
>>327
最終的には、追加されたボタンをクリックして色反転
DATAGRIDに並べられたファイルにボタン名(タグみたいな感じ)で関連付けして
xmlで書き出して保存までやりたいです




>>328
> >>325
> リソースで Style 作っておいて、
これはできます
> C# 側からリソース読み出せばいい。
これがわかりません

> てか、デリゲート避けてきたって、そりゃかなり酷いぞ。
> C 言語でポインターが理解できませんと同レベルにどうしようもない。
C言語の例えはよくわかりませんが、デリゲート知らなくても
それなりのソフトはできてました。使う必要がなかった感じです

>>329
投げ出して一生デリゲートを学ばないと言っているわけじゃないので
試行錯誤の過程を断片的に捉えて煽るのはやめてもらえませんかね?
あなたはすぐデリゲート理解できの?
とりあえず、完成まで持っていきたいから他のアプローチを試す
ゆとりというより柔軟と言ってほしい
03333052010/11/05(金) 21:45:41
>>331
簡単に書くというより短く書くだけで
結局、デリゲートがどういうものか理解していないと
よりわかりにくくなっただけって感じ
ラムダ式がなかったころからデリゲートを使っていた人向けで
今から始めた人向けじゃない気がする
0334デフォルトの名無しさん2010/11/05(金) 21:47:12
そうだね
まあ最初はデリゲートを書きなれることかなw
0335デフォルトの名無しさん2010/11/05(金) 21:51:06
イベントには便利だな
0336デフォルトの名無しさん2010/11/05(金) 21:52:36
というかC#のイベントはデリゲートで実装してるんじゃないの?
03373052010/11/05(金) 21:52:50
>>334
でも、使う場面がないですよ?
あらゆるサイトでデリゲートの説明していますが
デリゲートって便利だなと思ったものは1つもない
0338デフォルトの名無しさん2010/11/05(金) 21:54:59
おまえはイベントを書く時にどうやってるんだよ…
0339デフォルトの名無しさん2010/11/05(金) 21:55:37
いろんなとこから呼ばれる非同期処理とか
0340デフォルトの名無しさん2010/11/05(金) 21:56:08
>>337
スレッドとか使うときかなあ・・・

以前C#のほかのスレででてたサンプル
http://cs2ch.blog123.fc2.com/blog-entry-84.html
0341デフォルトの名無しさん2010/11/05(金) 21:57:22
>>337
コールバック処理とかの実装どうしてんだよ。
わざわざクラスこさえて実施するとかJava上がりのバカだけだろ。
0342デフォルトの名無しさん2010/11/05(金) 21:57:32
LINQにメソッド渡すのは嫌ずら
03433052010/11/05(金) 21:57:46
>>336
そういうこと言い出す人がいると思いましたけど
わかってるでしょ?イベントハンドラは自動で作成されるし
別にデリゲートと意識しなくても使えるということを

動的にボタンを作成する場合も必要だけど
それぐらいはわかります。

とにかく>>317はボタン追加が押せないということで
間違っているところがあるんですよね?
それにあれだけ長くて難しいコードを書かなくてはいけない理由もわからない
ただ、ボタンを追加するだけなのに・・・
WPFやってみたけど、不満しかいまのところない
IDEは異常に重いし・・・ヒントの数も少ない
入力候補などが出ず手動で書かないといけないところが多い
0344デフォルトの名無しさん2010/11/05(金) 21:58:40
コレクションを要素の型の特定のプロパティでソートしたいときはデリゲート使わないでどうやるんだろう
Comparerクラスを実装するのはデリゲートと同じだから当然理解できないだろうな
データセットとか使うんだろうか
03453052010/11/05(金) 21:59:22
>>339
>>340
>>341
そういうのをしたい、必要と思ったことはありません
その程度の小規模なツール作っているだけなんで
0346デフォルトの名無しさん2010/11/05(金) 21:59:29
ふーん
能力がないのを棚に上げて道具のせいとかついったーに書いてろよ
03473052010/11/05(金) 22:00:18
>>344
そんなソートをしたいと思ったことがないですね
0348デフォルトの名無しさん2010/11/05(金) 22:01:00
>>345
理解できなくてすいませんでしたって土下座しろよ。
クソして寝ろ、もうくんなw
0349デフォルトの名無しさん2010/11/05(金) 22:01:12
>>345
じゃあ今は覚えなくていいよ
必要になったらここで見たな〜くらいは覚えておけば
0350デフォルトの名無しさん2010/11/05(金) 22:01:32
視野が狭い自慢?
0351デフォルトの名無しさん2010/11/05(金) 22:03:31
>>344
from n in コレクション
orderby n.プロパティ1,n.プロパティ2
select n
0352デフォルトの名無しさん2010/11/05(金) 22:03:51
他に出たのはともかくとして>>344がいらないって一体何作ってるんだろ
スクリプト言語でちょっとした処理書くときでさえ>>344みたいなソートは使わない方が珍しいくらい
03533052010/11/05(金) 22:04:24
winformsで簡単で短いコードでできることを
WPFでは難しく長いコードになってしまうということですよ
0354デフォルトの名無しさん2010/11/05(金) 22:05:02
>>351
それデリゲート使ってるよ
03553052010/11/05(金) 22:06:34
>>352
コレクションのソート使わない方が沢山あるでしょ
0356デフォルトの名無しさん2010/11/05(金) 22:07:07
ラムダ式はいわば簡単にかけるメソッドでしょ
デリゲートにおける扱いは普通のメソッドと変わらん。
0357デフォルトの名無しさん2010/11/05(金) 22:07:25
ソート使わないプログラムの方が少ないでよ
エントロピー減らすためにPC使ってるんだで
0358デフォルトの名無しさん2010/11/05(金) 22:09:05
>>355もういいから涙拭いて布団に入れよ。
0359デフォルトの名無しさん2010/11/05(金) 22:09:52
WinFormsの方が短く書けるってのはWinFormsの方法論でWPF書いてるからですよ
当たり前
03603052010/11/05(金) 22:11:28
てか>>315の何がだめなの?
他の人も言ってたじゃない
追加するならC#で書くってさ
0361デフォルトの名無しさん2010/11/05(金) 22:11:35
俺は半分オナヌー用途だが
0362デフォルトの名無しさん2010/11/05(金) 22:12:02
ウィンホームズの方が他の言語に活かせる学び方ができる
03633052010/11/05(金) 22:13:03
>>359
じゃあ>>317はなぜ長いか説明してよ
追加ボタン押せないのはなぜか教えてよ
0364デフォルトの名無しさん2010/11/05(金) 22:13:14
まあ、実際、値の変更通知を手動で管理しきれて、
ビューから状態分離しなくてもテストしきれるような小規模なら、
WinForms の方法論で全然問題ないんだけどもね。

それを超えることやってないなら WPF はオーバースペックか。
0365デフォルトの名無しさん2010/11/05(金) 22:13:34
>>327辺りが言ってると思うが
お前メクラなの?PCモニタ見るの止めれば?
0366デフォルトの名無しさん2010/11/05(金) 22:14:36
>>363
ああ、ボタン押せなくしたのはちょい蛇足。
テキスト入力されてないときに、空のテキスト追加しちゃうの?って思ったんで。

ああいう、ビュー内の状態に応じてコマンドの実行可否切り替えるとかも、
割かし GUI ではよくある要件。
03673052010/11/05(金) 22:14:52
>>365
具体的に
0368デフォルトの名無しさん2010/11/05(金) 22:15:24
>>363
同じものWinFormsで書いてから言えば?
書いたら戻ってこなくていいけどw
0369デフォルトの名無しさん2010/11/05(金) 22:15:52
ヒートアップしてきたな。
03703052010/11/05(金) 22:15:58
>>366
ボタン押された場合にトリガー発動させて
ボタン追加じゃだめなの?
03713052010/11/05(金) 22:17:32
>>366
文字入力してもボタン押せない状態なんだけど?
0372デフォルトの名無しさん2010/11/05(金) 22:18:28
>>371
パソコンに馬鹿にされてんだよそれ
0373デフォルトの名無しさん2010/11/05(金) 22:20:27
>>370
disable になってる理由が明白な場合には disable にしてた方がいいって感じかな。
Word とかで、クリップボードに何もないときは「貼り付け」が disable になってるでしょ。

まあ、ポイントは、実行可否がコマンドの定義の部分に書かれてるってことかな。
「ボタンが押されたときに」ってやろうとすると、ボタンのイベントハンドラー内にコード書くことになるでしょ。
1つのコマンドに対して、実行と実行可否判定の場所が離れるってのはあまりよくない。
0374デフォルトの名無しさん2010/11/05(金) 22:22:23
>>371
フォーカスはずすと切り替わるはず。
キー入力のたびに切り替えたければ、
{Binding NewText} を {Binding NewText, UpdateSourceTrigger=PropertyChanged}
に書き換えて。
0375デフォルトの名無しさん2010/11/05(金) 22:23:01
機械の分際で>>305様に楯突くなんて!
0376デフォルトの名無しさん2010/11/05(金) 22:25:24
ちなみに、>>372 の補足。

なんで disable になってるのかパッと見てわからない場合は disable にせず、
実行されたときにアラート出す方がいいらしい。
でないとユーザーは「この機能は使えないものなんだ」って思うとかで。
03773052010/11/05(金) 23:05:40
>>316さんの説明はある一定の知識のある人には丁寧で
わかりやすいんだろうけど、おれのレベルだと
何を言っているのかわからない
俺はただ、追加ボタンがクリックできない状態になっている
テキスト入力しても出来ない状態
だからずっとできる状態にしてほしいの
どこをどういじればそういう風になるのかもわからないレベルなの

初心が遠く昔の人って、知識がある前提で話すからほんとわかりにくい
0378デフォルトの名無しさん2010/11/05(金) 23:09:02
>>377
あっ、ちなみに、>>316>>317 は別人よ。
あれじゃわかんないと思ってコード書いた。
余裕あったら説明コメントも入れたと思う。
0379デフォルトの名無しさん2010/11/05(金) 23:14:01
オラオラ、初心者様の御通りだぞ
平伏せ下郎
03803052010/11/05(金) 23:21:49
>>378
なんだ別人かー
わからないよね?>>316の説明だと
一応これに近いことなのかなと思ってみていたけどよくわからなかった
●コレクション・オブジェクトへのバインド
http://www.atmarkit.co.jp/fdotnet/vblab/uiframework_02/uiframework_02_04.html

>A. 自分でやること
自分?何が自分?おれのこと?ユーザー?

>B. 勝手にされること
誰が勝手にするの?
>ObservableCollectionはデータが追加されたことをItemsControlに通知する
このやり方がわからないんですけど。

そもそも何の説明?
もうまったくわかんなかった
例えると、ため口の説明を同じ内容でただ敬語で説明されただけって感じ。

>>317>>316の説明の通りにしたソースだよね?
いつかわかる日が来た時のために永久保存しておきます
0381デフォルトの名無しさん2010/11/05(金) 23:24:39
まだやってるのか
落ち着け
03823052010/11/05(金) 23:27:19
パソコン今日届いて初めて触る人にコピペを教えるようなもの

初「コピペって何?」
上「クリップボードを中継してデータを写す作業」
初「クリップ・・何それ?」
上「クリップボードにコピーしたデータを保存して、適当な場所にペーストすることだよ」
初「いや、だからクリップってなに?コピーって?ペーストって?それってコピペの説明?」
別の上「Ctrl+C、Ctrl+Vでできる」
初「え?それってどういう意味?」(←キーボードのキーだということすらわかっていない)

今こういうのを体験した気がするわ
0383デフォルトの名無しさん2010/11/05(金) 23:28:07
>>380
すまん、正直 >>316 は最後まで読んでない。
普通に、WPF の基本ラインで実装しただけ。

まあ、WPF に慣れた人でも、現状は Forms 時代よりはだいぶ better にはなってるけど
その代償にめんどくささも幾分かあって、まだ過渡期って認識かも。
0384デフォルトの名無しさん2010/11/06(土) 00:13:00
>>382
あるある
03853052010/11/06(土) 00:22:25
>>382
これってさプログラマにとって根幹にかかわることだと思うんだよね
自分で理解できればそれでいいってソフトを作っている人はこれでいいだろうけど
初心者でも直感的に操作できるソフトを作るというのは難しそう

現に>>317はtabでフォーカス移動しなければ使えなかった
これって初心者からしたらバグでしかない

結局機能はしょぼいけど、初心者が作った初心者のためのソフトが使いやすかったりする
上級者で初心者の気持ちもわかる人って解説サイトでも少ないよねー
0386デフォルトの名無しさん2010/11/06(土) 00:24:58
しょぼいのでいい
地道にいけ
0387デフォルトの名無しさん2010/11/06(土) 00:25:52
実際でもなぁ、それは UX デザインを専門にやってる人に任せたいというのが本音。
となると、「UX デザインが専門であってプログラミング詳しくない」って人がやれなきゃ意味ないのよね。

そこは WPF は「分業を推し進める」って方向に舵を切ってるわけだけども。
XAML 側は UX デザイナーが Blend とか使って作る、
プログラマーはビューには触れず、ビューモデルを作るっていう。
0388デフォルトの名無しさん2010/11/06(土) 00:26:01
初心者が作ったソフトは使いにくいです
拡張性0、ボタン大量、etc...
アラアラと思う…
0389デフォルトの名無しさん2010/11/06(土) 00:27:25
というか、 >>317 は、コード少ない方が理解しやすいかなって思って
Binding の記述削ってたんだけど。

その結果、バグだと言われて、
一方、「C# 側がコード量多い」って言われたのはさすがにちょっとへこむ。
03903052010/11/06(土) 00:33:47
private void button1_Click(object sender, RoutedEventArgs e)
{
Button button1 = new Button();
button1.Content = textBox1.Text;
this.wrapPanel1.Children.Add(button1);
}

だってさ、初心者でもたったこれだけでできることを
上級者がXAMLでやると、デリゲートだとか、バインドがあっちこっちにあったりして
どうしてそうなっちゃうの?って感じ
0391デフォルトの名無しさん2010/11/06(土) 00:37:01
たいていそれだけで要件収まらないから。
いいのよ、別に、ほんとにそれだけの要件ならそれで。
0392デフォルトの名無しさん2010/11/06(土) 00:40:42
コードの小分けが出来るのがいい
というかさ、winformsでもbind使ってたろ?
使ってなかったのか?もしかして…
0393デフォルトの名無しさん2010/11/06(土) 00:46:42
先日の初心者スレの人はブーブー言いつつ皆に熱心に諭され勉強し、
1日でWPF使いに変身したというのに
0394デフォルトの名無しさん2010/11/06(土) 00:47:10
>>392
そういうことだ。
多くの人が使ってないんだよ、bind。

で、不意に規模が膨らんじゃってからギャップが越えられなくなる。
03953052010/11/06(土) 00:47:59
>>392
使ったこと無いよ
ソースが変わったら、ターゲットのプロパティを書き換えるコードを書いてた
イベントハンドラ大量、更新させるためのコード

結果、ある程度の規模になると、更新一部し忘れたり、どこで更新されたかわからなくなったり
イベントハンドラが大量で一体どこで何をしているのかわからなくなった

だからそんなことにならないような簡単なユーティリティだけ作ることに
例えば、空フォルダを見つけて削除や、削除したファイルをリストアップするだけなど
ファイラーから実行できるような手軽なものを作っていた
03963052010/11/06(土) 00:49:34
>>393
それおれだから
WPF使いじゃなくてWPF始めただけだからw
0397デフォルトの名無しさん2010/11/06(土) 00:51:54
いやいや、Bind使おうよ…
WinFormsでもさ…
UserControlでView作ってBindで繋げて、振る舞いはインターフェイスで定義してってやるだろ…
その辺がもうちょい賢くなって便利になったのがWPFなんだし…
0398デフォルトの名無しさん2010/11/06(土) 00:54:20
イベント直書きは10年前のdelphiでもうこりごり
0399デフォルトの名無しさん2010/11/06(土) 00:54:59
>>395
もうPythonとかスクリプト言語使えば?
君はそのほうがよっぽど幸せになれると思うよ
04003052010/11/06(土) 00:57:18
>>397
使えるなら使うさ
俺は基本どぼんに乗っているコードをコピペすることしかできないさ
2001C# 発売当日に魔が差して買ったおれがさ
04013052010/11/06(土) 00:59:13
>>399
Python、Rubyとかもやったよ
でもやっぱ、GUIのかっこいいの作りたいじゃない?
0402デフォルトの名無しさん2010/11/06(土) 00:59:51
うーん、コピペ自体は悪いとは言わないんだけどね。
そうなると、古い、現代的には問題が明らかになってるコードって、人類の抱える負債だなぁ。
0403デフォルトの名無しさん2010/11/06(土) 01:00:12
空フォルダを見つけて削除するGUIユーティリティ?w
そういうのはコマンドラインで使えた方がどう考えても便利です
0404デフォルトの名無しさん2010/11/06(土) 01:00:31
>>401
かっこよくねぇよww
かっこいい人が作った GUI がかっこいいだけだよ。
0405デフォルトの名無しさん2010/11/06(土) 01:03:31
こういう技術の根底にある考え方って敷居高いのかなぁ
うーむ…
0406デフォルトの名無しさん2010/11/06(土) 01:04:14
スレがのびてると思ったら…
まぁ宗教議論よりはいいか
04073052010/11/06(土) 01:06:09
>>403
文脈理解しろよ
今作ろうとしているのは動画ソフトのフロントエンド的なものを作ろうとしているの
多分完成したら新しい時代がくる

アイデアだけはすばらしいんだよおれって
そこらのフリーソフトを超える使い易いソフトをいくつも妄想してきたが
プログラミングができない
0408デフォルトの名無しさん2010/11/06(土) 01:09:27
>>407
なんか急に口調変わったぞw騙り?w
0409デフォルトの名無しさん2010/11/06(土) 01:12:29
他の言語でもフレームワーク触った事あるならすぐ理解出来ると思うけどね
名前は違えどやってる事は一緒だし
0410デフォルトの名無しさん2010/11/06(土) 01:20:14
ただでも、でかいフレームワークだと、その裏にある要求とかモデルとかを簡潔に説明した文章って少ないからねぇ。
0411デフォルトの名無しさん2010/11/06(土) 02:53:26
WPFがダメなのはIDEの至れり尽くせりサポート大前提で設計してるくせに
肝心のサポートが話にならないチープさなところ
こう書くと老害が「HTMLだって手書きでやってきた」とかほざくんだがナンセンス
今時のCSS&JavaScriptごちゃごちゃに入り交じってる案件メモ帳でやってみろってんだ
0412デフォルトの名無しさん2010/11/06(土) 02:57:54
Blendは敷居高いと思うが
windowsFormで作る程度のならVisualStudioでドラッグ&ドロップで行けるだろ
0413デフォルトの名無しさん2010/11/06(土) 04:02:01
>>411
こういうの見ると
あぁ、この人ってWPF使った事ないのに批判してるんだな と哀れに思うわ。

実際は>>412なのにまるで分かってない。
0414デフォルトの名無しさん2010/11/06(土) 04:04:14
否定だけなら子供でもできる
反論があるなら根拠を述べよ
0415デフォルトの名無しさん2010/11/06(土) 04:05:49
>>414
日本語がわからないとは
0416デフォルトの名無しさん2010/11/06(土) 07:30:20
>>411のほうが老害くさいよな
どうせVB6のクラサバみたいなのしか作ったこと無いくせにw
0417デフォルトの名無しさん2010/11/06(土) 08:11:04
TabControlの複数のページでListViewを表示していて、
GridViewの列の並びや幅などを同期させたいのですが、どのようにすればいいのでしょう

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SubmenuItemTemplateKeyに適用するコントロールテンプレートと同様のものを
SeparatorStyleKeyスタイルのTemplateプロパティに適用して、同じサイズグループを
使いたいと思ってたんですが、セパレータのアイテムだけうまくグループ化されません。
0513デフォルトの名無しさん2010/11/11(木) 18:17:35
Windowsフォームで作ったアプリのボタンの形状は
クライアントのOSに依存すると思うのですが
WPFのコントロールはOSに依存しないのですか?
xpしかないので確かめられないんですけど
0514デフォルトの名無しさん2010/11/11(木) 18:19:20
システムカラーとか使ってたら当然依存する
0515デフォルトの名無しさん2010/11/11(木) 18:23:29
既定のTemplateはOSのテーマに従った外見になるように作られてる
0516デフォルトの名無しさん2010/11/11(木) 18:37:13
http://www.atmarkit.co.jp/fdotnet/chushin/chushinmeeting_01/chushinmeeting_01_01.html

DataGridコントロールやデータ・バインディングがサポートされ、例えば、データベース・オブジェクトをドラッグ&ドロップするだけで、それらの機能をアプリケーションに貼り付けられるようになっていたりします。

これってどうやってするの?
0517デフォルトの名無しさん2010/11/11(木) 18:49:10
ここてソースうpしたら指摘もらえたりする?
0518デフォルトの名無しさん2010/11/11(木) 18:52:04
一つ良い事を教えておく。俺たちは君の道具でも、無償サポセンでもない。
by 503
0519デフォルトの名無しさん2010/11/11(木) 19:00:41
役立たず
0520デフォルトの名無しさん2010/11/11(木) 19:26:19
MSDNフォーラムに行けよ
0521デフォルトの名無しさん2010/11/11(木) 20:42:38
いいからさっさと質問しろ
0522デフォルトの名無しさん2010/11/11(木) 22:02:52
>>502のように、動かないと書いてもどう動かないか書かない、
試行錯誤したと書いても何を試しどうなったのか書かない、
デバッグ作業を他人に丸投げした挙句に
"始めたばかり"を錦の旗のように掲げるようなカキコじゃなきゃ
大抵回答はもらえると思うぞ。
0523デフォルトの名無しさん2010/11/11(木) 22:07:18
ごちゃごちゃ理屈っぽい奴らだな
嫌なら答えなければいいだろ
始めたばかりって前置きするのは普通の会話だろ

やさしく教えてねー
初心者的間違いしてますーって意味含んで言ってるんだろ

おまえは日常で人と会話できるのか?
0524デフォルトの名無しさん2010/11/11(木) 22:09:23
>>522みたいな人間的に終わっている奴は
ある程度プログラミングできてもずっとこき使われるだけの平止まりだろな
根暗で誰からも相手されず、飲みにも誘ってもらえない童貞
いつか鬱病になって自殺するんだろうな
0525デフォルトの名無しさん2010/11/11(木) 22:15:54
そんなレッテル貼りいらんわ
0526デフォルトの名無しさん2010/11/11(木) 22:18:20
しょうもねえw
0527デフォルトの名無しさん2010/11/11(木) 22:25:10
>>522
またおまえか
0528デフォルトの名無しさん2010/11/11(木) 22:28:50
同僚にもいるな、プログラム好きだけど人と接するのが嫌いなやつ
気持ち悪い、早くやめればいいのに
0529デフォルトの名無しさん2010/11/11(木) 22:29:30
で、>>528はどうWPFと関係あるの?
0530デフォルトの名無しさん2010/11/11(木) 22:46:49
>>528がやめればいいのに
0531デフォルトの名無しさん2010/11/12(金) 00:07:34
>やりたいことはWindowがアクティブなときとディアクテブなときで
>コントロールの背景色を変えることです。

この説明があって動かないっていったら十分すぎる説明だろ
おまけに貼っつけてあるコードだって大して長くないし
最初から教える気ないのに偉そうなこと言うな
まあ俺も教える気ないけどな
0532デフォルトの名無しさん2010/11/12(金) 00:12:57
自演擁護うぜえ
0533デフォルトの名無しさん2010/11/12(金) 00:23:23
「俺も」だってw
0534デフォルトの名無しさん2010/11/12(金) 00:28:54
自演乙
0535デフォルトの名無しさん2010/11/12(金) 20:20:42
俺俺俺も
0536デフォルトの名無しさん2010/11/13(土) 09:16:53
Prism 4 - November 2010
http://compositewpf.codeplex.com/releases/view/55576

Prism 4.0 Readme
http://msdn.microsoft.com/en-us/library/gg405471(PandP.40).aspx

What's New in Prism 4.0
http://msdn.microsoft.com/en-us/library/gg430871(PandP.40).aspx
0537デフォルトの名無しさん2010/11/13(土) 15:17:03
WPFやってみた
Windows Formとは作り方がかなり異なってるな
依存関係プロパティとか、以前はなかったものがあるみたいだし。

解説サイトも少ないし、C#5.0が出るくらいまで様子見しててもよさそうだな。
0538デフォルトの名無しさん2010/11/13(土) 15:36:45
>>537
その姿勢だと一生やらないに一票
0539デフォルトの名無しさん2010/11/13(土) 15:47:07
様子見は賛成
0540デフォルトの名無しさん2010/11/13(土) 15:49:04
俺は日和見で
0541デフォルトの名無しさん2010/11/13(土) 16:06:10
WPFのフリーソフトがあったら使う?
まったく同じ機能のFormアプリケーションとWPFアプリケーションを比べた場合、
どちらが好まれるの?
0542デフォルトの名無しさん2010/11/13(土) 16:28:26
WPFはエロゲ開発者向けですね
0543デフォルトの名無しさん2010/11/13(土) 16:37:29
>>541
機能が同じでUXが違うということ?
無駄に重くて面倒くさいUIになってればWPFは避けられるし
美しくスッキリ見やすくなっていればWPFを選ぶでしょ
0544デフォルトの名無しさん2010/11/13(土) 16:43:16
現状だとWPF使う人のほうがスキルが上だろうからWPFの方を選ぶな
0545デフォルトの名無しさん2010/11/13(土) 16:44:50
DataGrid置いただけなのに
GF9800だとfpsが30しかでない
スクロールするとfpsは一桁
相当重いね
0546デフォルトの名無しさん2010/11/13(土) 17:01:08
何言い出してるのこの子…
0547デフォルトの名無しさん2010/11/13(土) 17:30:59
ボタンの中にボタンを入れられるんだな
クソワロタ

<Button>
<Button>
</Button>
</Button>

ってやったらボタンの中にボタンが入った
0548デフォルトの名無しさん2010/11/13(土) 17:31:50
>>541
機能もUIも完全に同一のアプリケーションが二種類有ったら、
一般ユーザは 「どっちでも良い」 って言うだろう。

一部のナード層は、 「実行速度が」「メモリ消費量が」 とか言うかも知んないけど
未だにIEのシェアが6割も有る様に、多数のユーザはそこまで気にしない。
(強いて挙げるとすれば、古いOSを使ってるユーザだと
 .NET Framework必須な点が、若干面倒に思われるかもだが)

WinFormかWPFかってのは、ユーザ視点でどうこうじゃなく
開発側が、生産性を考えてどちらを使うか選ぶ物なんじゃないか?
0549デフォルトの名無しさん2010/11/13(土) 17:37:35
>機能もUIも完全に同一のアプリケーション
ならわざわざ間口が狭いWPFは使わんだろう。
何かしらWPFならではの機能を使って快適・高機能になるとかの理由で使うんじゃないの。
あとは将来webに持っていく可能性有りとかならSilverlightへの移植がしやすいとかで使うかもしれない
0550デフォルトの名無しさん2010/11/13(土) 17:40:29
>>547
ああ、あるある。
ComboBoxの中にDataGridが入ったりとか、マジでキモいUIが作れるよな…w
0551デフォルトの名無しさん2010/11/13(土) 17:49:42
コンテンツモデルが奇っ怪だよなあ
エッセンシャルWPF読むまで理解できなかった
0552デフォルトの名無しさん2010/11/13(土) 18:02:06
デザイナが謎のぬるぽで、
でもエラー0で普通に起動できて普通に動いて・・・

って2時間悩んだ末、VS再起動したら直った。
ふざくんな!
0553デフォルトの名無しさん2010/11/13(土) 18:07:03
http://msdn.microsoft.com/ja-jp/library/bb546934.aspx#WritingCodeforDesignTime
この辺の問題な気がする
相対パスが役立たずになるのはどうにかして欲しいものだ
0554デフォルトの名無しさん2010/11/13(土) 20:54:40
>>551
コンテンツモデルの柔軟さは認めるけど、結局見た目の組み合わせじゃろくなもんで
きないんだよなあ。コントロールの振る舞いは組み合わせじゃどうにもならないか
ら、実はあまり柔軟でも簡単でもない。WPFのコンボボックス一つとっても最初
はリストボックス使って実装しようとしたけど、結局スクラッチから作ってるし。ボ
タンの中にボタンみたいな、なんの意味もないもんしかできない。
0555デフォルトの名無しさん2010/11/13(土) 20:58:41
つまり吉里吉里でいいということですね
0556デフォルトの名無しさん2010/11/13(土) 20:59:15
まったく持ってその通りですわ
0557デフォルトの名無しさん2010/11/13(土) 21:17:50
見た目の組み合わせはともかくとして、
GridやStackpanelは便利だと思う
0558デフォルトの名無しさん2010/11/13(土) 21:30:03
コンテンツモデルはたまにとんでもない挙動をするからなぁ
結局部品の中身を理解していないと使いこなせない。
0559デフォルトの名無しさん2010/11/13(土) 21:48:23
超エリート集団が作ったものがそんな糞なわけがない
0560デフォルトの名無しさん2010/11/13(土) 21:53:31
Meもか?
0561デフォルトの名無しさん2010/11/13(土) 21:55:11
Meたんとか超可愛いじゃない
0562デフォルトの名無しさん2010/11/13(土) 22:13:38
xamlって#regionみたいに折りたたんだりできないの?
0563デフォルトの名無しさん2010/11/13(土) 22:16:28
タグ単位で折りたためるじゃないか
0564デフォルトの名無しさん2010/11/13(土) 22:25:06
できたー
0565デフォルトの名無しさん2010/11/13(土) 22:30:56
>>563
そうだけど、コメントにした瞬間に萎える
0566デフォルトの名無しさん2010/11/13(土) 22:33:54
>>554
ぼのぼののおとうさんみたいだな
0567デフォルトの名無しさん2010/11/13(土) 22:34:55
Meは2000の片手間に鼻くそほじりながら作ったんだろ。

カスタムコントロール作ってるけど、なんか作り方が独特な感じで難しい。
Xaml側でイベントハンドラ登録できないので、要素のName属性使ってコード側から
インスタンス取得、そしてハンドラ登録という流れになる。

処理を結びつけるのはコマンドでやれってことなんだろうけど、
コマンドは発生タイミングを細かく制御できないよね?
例えば、2桁入力できるTextBoxを横に何個も並べたとして、
2桁入力した時点で自動的に右にフォーカス移動させるようにしたいときって
イベントだとTextBoxChangedとか使えばいいけど、コマンドではどうするのか。

なんだかいつものWindowとかUserControlでやる書き方とは違って、
コード側の記述が増えてしまってる。
0568デフォルトの名無しさん2010/11/13(土) 22:38:14
>Xaml側でイベントハンドラ登録できないので

できるだろ
0569デフォルトの名無しさん2010/11/13(土) 22:38:57
>>567
クラックソフトでも作ろうとしてるの?
0570デフォルトの名無しさん2010/11/13(土) 22:41:05
>>568
どうやるの?
>>569
扱いやすいコントロールをつくろうとしてるんだけど、なんでそう思ったの?
0571デフォルトの名無しさん2010/11/13(土) 22:43:05
カスタムコントロールは単体で配布したりするような
ちゃんとしたコントロールを作るためのもの。WinFormsでもカスタムコントロールは
OnPaintオーバーライド必須だっただろ。
0572デフォルトの名無しさん2010/11/13(土) 22:45:50
>>570
ボタン作ってダブルクリックしてみ
0573デフォルトの名無しさん2010/11/13(土) 22:49:27
>>572
ResourceDictionaryに書いてるからデザイナ使えないよ。
<Button Click= って書いても候補すらでないしコードビハインドが無いから指定できない。
これはカスタムコントロールの話だからね。

>>571
やっぱエレガントに書くのは諦めたほうがいいかな。
WinFormsやったことないからどうなってたのかわからん。
0574デフォルトの名無しさん2010/11/13(土) 22:51:32
>>573
SilverLight4をインストールしたらできる
0575デフォルトの名無しさん2010/11/13(土) 22:54:14
>>574
流れ的にちょっと分かりにくいので何が出来るのか詳しく頼んます。
デザイナ使ってのデザイン?
0576デフォルトの名無しさん2010/11/13(土) 23:01:43
>>574
SilverLight 銀の光ワロタ
0577デフォルトの名無しさん2010/11/13(土) 23:07:22
Silverlight4 ToolkitにはWPFデザイナの更新が多数含まれてるので
Silverlight使わないとしてもWPF使うなら必ずインストールしましょう
0578デフォルトの名無しさん2010/11/13(土) 23:10:46
はーい
0579デフォルトの名無しさん2010/11/13(土) 23:17:07
>>577
無くても普通にインテリセンス機能してるけど?
例えばブラシのカラー候補とか出る
自前のプロパティなどは候補には出てこないけど
Silverlight4 Toolkit 入れたらそれもできるようになる?
0580デフォルトの名無しさん2010/11/13(土) 23:51:06
コントロールの削除はXamlのコードだけではできないですよね?
0581デフォルトの名無しさん2010/11/13(土) 23:52:52
インジケータ的なものならVisualStateManagerで隠す
データ項目に対応するものならバインド元のデータを消す
0582デフォルトの名無しさん2010/11/13(土) 23:56:56
それってどうするの?
List<string>にボタン名の一覧が入っていて
一覧から削除すると、そのボタンが削除されるといったこともできますか?
0583デフォルトの名無しさん2010/11/13(土) 23:58:43
できる
DataTemplateでググれ
0584デフォルトの名無しさん2010/11/14(日) 00:03:07
Listで出来るか?
ObservableCollectionじゃなくて?
0585デフォルトの名無しさん2010/11/14(日) 00:05:06
>>570
どうやったらできなかったの?
0586デフォルトの名無しさん2010/11/14(日) 00:05:15
List<T>では削除はできないけど別にそういうことを聞いてるんじゃないでしょう
05875822010/11/14(日) 00:19:37
>>584でできました
ありがとう
05885822010/11/14(日) 00:33:18
ああ、でも>>584はちょっと違う
データクラスで保持してるコレクションデータを
ObservableCollectionに毎回追加しないといけないから

やっぱりList<string>のボタン名でそれぞれのボタンで表示して
任意のボタンを削除するならDataTemplateですか?
0589デフォルトの名無しさん2010/11/14(日) 00:59:03
>>588
List をラップした INotifyCollectionChanged 実装クラス作るのがいいと思うけど、
面倒だからよく ObservableCollection にコピー持たせる。

モデルとかビューモデル側でコレクションに要素足したときに
即座にビューに反映されて欲しければ INotifyCollectionChanged 必須。
0590デフォルトの名無しさん2010/11/14(日) 01:19:59
>>585
カスタムコントロールのXamlはルート要素がResourceDictionaryだからハンドラ指定はできないはずだが。
05915822010/11/14(日) 01:20:41
>>589
なるほどー、いろいろ試してみます
ありがとうございます
0592デフォルトの名無しさん2010/11/14(日) 01:30:04
最初からモデルかビューモデルに変更通知機能を入れとくのがベター
さすがにそんな上のレベルでListに依存するのは設計としてまずい
05935822010/11/14(日) 01:38:57
>>592
ビューモデルにINotifyCollectionChangedを実装しても
List<T>.Addでは変更通知されないですね
List<T>クラスを自作してそこにINotifyCollectionChanged入れるしかないのかな

そうなるとObservableCollectionでプロパティ公開してデータクラスのList<T>の値を追加していく方が楽なのかな
0594デフォルトの名無しさん2010/11/14(日) 03:57:45
>>590
そうだった
0595デフォルトの名無しさん2010/11/14(日) 04:53:27
  <WrapPanel Grid.Column="0">
   <ItemsControl ItemsSource="{Binding Names}">
   <ItemsControl.ItemTemplate>
   <DataTemplate>
   <Button Content="{Binding}" />
   </DataTemplate>
   </ItemsControl.ItemTemplate>
   </ItemsControl>
  </WrapPanel>

上記だとただ縦に並ぶだけです

パネルのデータテンプレートってどうすればいいですか?
かれころ5時間ぐらいぐぐってもわかりません
助けて
0596デフォルトの名無しさん2010/11/14(日) 05:29:43
テンプレートってレベルでいいなら、ItemsPanel かな。

もっと柔軟に、レイアウト方法を自作したいなら
Panel クラス継承して MeasureOverride とかを自作。
0597デフォルトの名無しさん2010/11/14(日) 06:02:38
ItemsPanel使ってどうすればいいんでしょうか?
質問する前からその単語でもぐぐってます
ItemsPanelTemplateでもぐぐってるけど
同じようなコードが見つからないんです

前にテスト用に作った時はあっさり作れたのでメモってなかったのが失敗
0598デフォルトの名無しさん2010/11/14(日) 06:30:44
半年ggr
0599デフォルトの名無しさん2010/11/14(日) 07:06:02
こういうケチ臭いところが
世界的に見て日本のプログラマのスキルが低い所以なんだろうね
優秀なソフトはいつも海外
ゲームも海外

日本は自社製の糞重いフレームワークで時代遅れのゲームしか作れない
0600デフォルトの名無しさん2010/11/14(日) 07:25:42
http://homepage2.nifty.com/natupaji/DxLib/
0601デフォルトの名無しさん2010/11/14(日) 08:29:47
>>599
むしろ基礎すら理解できていないコード切り貼り魔がいることが原因だと思う。
5時間ググる前に何が足りないか3分考えろ。
0602デフォルトの名無しさん2010/11/14(日) 08:34:22
海外フォーラムで質問すれば〜
0603デフォルトの名無しさん2010/11/14(日) 14:38:39
>>593
データクラスでList<T>公開して
周りから弄繰り回すこと自体が間違ってるよ
実際に実装の変更に対応できてないわけで、publicフィールド公開してんのと一緒だぞそれ
0604デフォルトの名無しさん2010/11/14(日) 18:39:16
>>603
お前はデータクラスの値をVMで毎回コピーしてVに公開してんのか?
0605デフォルトの名無しさん2010/11/15(月) 07:58:04
コピーする必要なんか無いだろ。
頭使えよ。。。
0606デフォルトの名無しさん2010/11/15(月) 20:41:58
WPFは大きさを相対的にそろえられるのか

<Button Height="3*"/>
<Button Height="2*"/>
みたいに。

今までだとちょっとだけ面倒だったな
0607デフォルトの名無しさん2010/11/15(月) 22:22:57
ちょっとしかうれしくないw
0608デフォルトの名無しさん2010/11/15(月) 22:40:57
ちょっとした幸せでいいんだ
0609デフォルトの名無しさん2010/11/15(月) 23:10:23
Grid 使った auto の方が便利かも。
多言語対応したりフォントサイズ変更したりに強いし。
0610デフォルトの名無しさん2010/11/15(月) 23:12:35
何も考えずにprismを入れたらユーザーフォルダがレイプされた
0611デフォルトの名無しさん2010/11/15(月) 23:18:05
prismには勝てなかったよ…
0612デフォルトの名無しさん2010/11/16(火) 01:53:34
WPFはデザイナで変えた部分とXMALが前面に出されてるな。

古いWindows Formアプリケーションだと
デザイナで変更された部分は基本的に隠されててキモかった。

Button1.click += button1_Click;
この部分が隠されてて
button1_Click(object,eventargs)
だけ現れててマジきもい
0613デフォルトの名無しさん2010/11/16(火) 06:46:06
InitializeComponent(); 簡単に見れたじゃん。
WPFの方が別ファイルでコソコソ作られててキモイ。
0614デフォルトの名無しさん2010/11/16(火) 07:08:07
>>613
WinFormsも別ファイルだろ
0615デフォルトの名無しさん2010/11/16(火) 07:27:20
隠されてはないだろ。
0616デフォルトの名無しさん2010/11/16(火) 08:01:22
InitializeComponent();は作成順序で不具合でたりするから
直接弄れるWPFのが便利
0617デフォルトの名無しさん2010/11/16(火) 10:24:09
WPFの隠し方は異常
0618デフォルトの名無しさん2010/11/16(火) 11:04:03
>>617
どこが隠蔽されてるって?XAMLが理解できないって話か?だとしたらお前が悪いw
あれは宣言型言語でオブジェクト ツリーを構築しているだけ。

全てWinFormsに似た等価な手続型言語で表すことができるが、
誰もやろうとしないのはそれがメンテナンス性を著しく損ねてしまう結果に終わると知っているから。

ま、WPF使った事ない人は表面だけ見て隠蔽されてるように感じるのだろう。
0619デフォルトの名無しさん2010/11/16(火) 11:21:09
いきなり煽りから本題に入るとは恐れ入ります。
プログラミングにどっぷりつかってる人間ってコミュニケーション能力低いってよく言われるが
こういうことなのでしょうな。
0620デフォルトの名無しさん2010/11/16(火) 12:18:55
まあおちつけ
0621デフォルトの名無しさん2010/11/16(火) 13:38:02
XAMLいい
最初、C#の文法だけでなくこっちも覚えなきゃならないのかよ
とか思ってたら案外簡単だった。
<Button Height="200">
みたいに書けばいいだけみたいだ。
むしろButton button1=new Button();button1.Height=100;
とかやるより簡単かもしれんね。
0622デフォルトの名無しさん2010/11/16(火) 13:51:17
その程度で全部済ませられるなら誰も悩まない
0623デフォルトの名無しさん2010/11/16(火) 13:58:12
ToggleButtonとContextMenuの組み合わせで、
トグルのIsCheckedとメニューのIsOpenをバインドして、表示させることはできたけれど、
右ボタンで、通常通りポップアップさせたときにはContextMenuService.Placementで指定したならびになるのに
左ボタンで、バインディング通して表示させたら、マウスカーソルの位置にポップアップされてしまう
どうすればいいの? プログラム書いたらすむんだろうけど
0624デフォルトの名無しさん2010/11/16(火) 14:01:52
拡張マークアップで
何じゃこの気持ち悪い書式はー!!
とプリプリした。
0625デフォルトの名無しさん2010/11/16(火) 14:23:21
>>619
煽りだけで本題書いてないwww
0626デフォルトの名無しさん2010/11/16(火) 18:05:23
TabControlのItemTemplateってどこに影響するのん?
いろんなサンプル見てると、閉じるボタンを付けたり、各タブに関係しそうなんだけど、
じぶんでちっちゃいコード書くとなんにも変わらない
0627デフォルトの名無しさん2010/11/16(火) 18:17:28
>>626
TabControl.ItemsSourceにバインディングしてる?
0628デフォルトの名無しさん2010/11/16(火) 18:51:44
バインディングしたらできたよ、ありがとう
0629デフォルトの名無しさん2010/11/17(水) 02:43:45
コントロールのTextBlockとLabelってどう違うんだろう
ただ文字表示するだけでしょ?ほとんど同じに見えるんだが
何が違うの
0630デフォルトの名無しさん2010/11/17(水) 03:35:51
テキスト描画系のコントロールの使い分けはこんなとこかな。MSDNに全部書いてある。

Labelはコントロールの説明用。
アクセスキーを設定して他のコントロールにフォーカス移したりできる。

TextBlockは少量のテキストをUIに表示するための物。
1行の表示に最適化されているけど数行まで高いパフォーマンスを発揮する。

数行以上のテキストを表示する場合はFlowDocumentを使う。(下に行くほど多機能で重い)
FlowDocumentScrollViewer スクロール表示
FlowDocumentPageViewer 1ページ単位のスクロール
FlowDocumentReader ユーザが表示モードを切り替える場合に使う

---
この辺は低レベルで滅多に使わないけど
Glyphs と GlyphRun を使用してグリフ レベルでテキスト コンテンツを生成するのが最速。
書式指定された文字列を描画したいならFormattedTextが適している。
0631デフォルトの名無しさん2010/11/17(水) 03:40:59
WPFで作ると倍以上時間がかかるな
慣れたらもっと早くなるのか・・・?
保守は楽だけど、作るまでが大変

やっぱりコンソールアプリが最強だな
0632デフォルトの名無しさん2010/11/17(水) 04:15:11
WPFだとVisual Studioのプロパティのとこに
説明が書いてないし
タイマーコンポーネントとか
OpenDialogやSaveDialog
みたいな便利なコンポーネントも標準でついてないんだね。
残念
0633デフォルトの名無しさん2010/11/17(水) 05:37:20
>タイマーコンポーネント
そもそも非UIデザインのコントロールなのに存在してたのがおかしい。(WM_TIMERの大義名分はあったけど)
UIスレッドで処理するならDispatcherTimer

>OpenDialogやSaveDialog
それは標準である。
Microsoft.Win32.OpenFileDialog
Microsoft.Win32.SaveFileDialog
.NET3.5まではXP風のクラシックスタイル、.NET4はVista風の新しいスタイル。
.NET3.5でVista風スタイル、.NET4でXP風スタイルを使いたい場合はWinFormsのDialog

WPF使ってるのにWinFormsのアセンブリから読み込むのはいい気分じゃないけど、同じのを再定義されるよりは遥かにマシだな。
0634デフォルトの名無しさん2010/11/17(水) 11:46:17
LabelのContentの内容を、バインドしてるbool値の値によって変更するにはどうすればいいんでしょうか?

例えば、VM上で公開しているbool値のプロパティ IsEnableとバインドしているとして、
IsEnableがTrueの場合:  Label Content="可能"
IsEnableがFalseの場合: Label Content="不可能"
といったことがしたいです。

TriggerかDataTriggerを使えばできそうなんですが、書き方がよくわからず、Intellisenseに怒られてばっかりで。
0635デフォルトの名無しさん2010/11/17(水) 11:46:47
意図的な空白ってなんだよ…
0636デフォルトの名無しさん2010/11/17(水) 12:20:52
>>634
普通にDataTriggerの中にSetter入れて文字列変更できるはずだけど
そういう可/不可みたいな一般的なものだったらIValueConverter実装してもいいと思う
その方が使いまわしが楽
0637デフォルトの名無しさん2010/11/17(水) 16:13:40
リソースとスタイルの違いがよくわからん
x : Key = "MyButton" TargetType = "Button"
みたいなx :keyいうのがついたらリソース
つかないで
TargetType = "Button"だけならスタイル
でいいのか?
0638デフォルトの名無しさん2010/11/17(水) 16:44:11
何でそんな偉そうなの。

リソースは最初に用意しといて後で使い回しましょう、って奴で
スタイルはプロパティの設定のセット。比較するのがそもそもおかしい。
で、エスパーレスすると、

x:Keyつかないと<Button>全部に適用
x:Keyついたら<Button Style="{StaticResource キー}"> だけに適用
0639デフォルトの名無しさん2010/11/17(水) 17:33:18
x:KeyはCSSでいうところのIDみたいなもんか
0640デフォルトの名無しさん2010/11/17(水) 17:36:17
というかXAMLはhtml+CSS関連の技術の応用だからなあ・・・
0641 ◆Jzt/EX0TGY8T 2010/11/17(水) 19:25:44
>>634
>>637
おれも2週間前まではそんな感じだったけど
もうマスターしちゃった
デリゲートも完全に理解した

>>640
未修得の技術を教えるのに未修得の技術を例にしても意味がない
0642デフォルトの名無しさん2010/11/17(水) 19:45:00
そうでもない
0643デフォルトの名無しさん2010/11/17(水) 19:50:39
なんであいつは未だにコテなの?
スキルもないのに自己顕示欲は人よりも強いの?
0644デフォルトの名無しさん2010/11/17(水) 19:59:41
ずっとコテでいてくれたほうが助かるよ
いつ変な吹き出し方してくるか分からんし判別出来た方がいい
0645デフォルトの名無しさん2010/11/17(水) 21:25:51
NG用にコテ付いてる方が便利
まぁコテなくてもすぐ判別できるぐらい鬱陶しいけどなw

いつも変わらぬアホさに安心感すら覚えるようになってきた。
人並みの頭はないけど少しは身に付けて前進している点は評価したい。
こんなのでも使いもせずに見当違いの所を叩いてる連中よりは遥かにマシ
0646 ◆Jzt/EX0TGY8T 2010/11/17(水) 21:42:11
初心者のみなさんはまず沢山のサンプルを見るとこだね
なぜそのようにしているのかひとつひとつ調べていくこと
そうすれば今の俺みたいにWPFマスターになれる

俺の作り方はまずコンソールアプリを作る
ロジックだけに集中するため
そしてどうしてもコンソールじゃ足りないGUI部分が見えてくる
そしたらそのロジックを利用してWPFでGUIを作る
このアプローチはWPFに最適だと思う
Winフォームの場合、その手軽さからまずGUIを作りながら
いろいろイメージしていって、データやコントロールするクラス
を作ったりするだろうけど、WPFではおすすめしない

WPFではまず、データ構造とロジックから作り始めた方が効率がいい
簡単なツールの場合はWPFが必要ない場合が多いしね。
0647デフォルトの名無しさん2010/11/17(水) 21:44:07
いいから素人は評価なんて下さずベット勉強しましょうね^^;
0648デフォルトの名無しさん2010/11/17(水) 21:46:31
さすがシムシティもどきの表示部分だけ作ってた人のいうことは違うなあ
0649デフォルトの名無しさん2010/11/17(水) 22:47:35
>>631
コンソールと比べんなw

まあ、マニュアル作らず使ってもらえるとか、
たいていの人でも触れるとかそういう足かせはめるとコンソールの方がかえって楽だけど。
0650デフォルトの名無しさん2010/11/17(水) 22:47:53
あっ逆、そういう足かせあるとWPFの方が楽。
0651デフォルトの名無しさん2010/11/17(水) 22:50:16
実際WPFで作られたソフトってほとんどないよね
0652デフォルトの名無しさん2010/11/17(水) 23:11:06
まだだ、まだこれからだ。
0653デフォルトの名無しさん2010/11/17(水) 23:19:53
「まだこれから」のまま消えていった技術なんて数知れずだがなw

今気がついたが、ComboboxにAllowDropを設定したけど縁にしかdropできない…
PART_EditableTextBoxにもAllowDropを設定しろってことかw
0654デフォルトの名無しさん2010/11/17(水) 23:20:36
Microsoftが言うにはWPFは
「かっこいい外観」が特徴の一つらしいが
それ使うのはExpress Brendとかいう70000円もするソフト必要らしいな。
単純な外観のならVisual Studioでもいいけど、3D表示やあにめーしょん駆使しまくって派手なソフトは
きついらしい。
0655デフォルトの名無しさん2010/11/17(水) 23:25:24
そりゃまあ、対抗製品がAdobeスイートだっけ?
Adobeのひとしきり入ってるやつだから。
0656デフォルトの名無しさん2010/11/17(水) 23:26:29
VS持ってるならもっと安く買えるよ。
それこそExpressですら対象だから定価は罠。
0657デフォルトの名無しさん2010/11/17(水) 23:27:33
アニメーションはVisual Studioだけでもどうとでもなるだろ。
0658デフォルトの名無しさん2010/11/17(水) 23:28:29
どうとでもという言葉の意味が、10倍とか時間かけてもいいというみなら
確かにどうとでもなる。
0659デフォルトの名無しさん2010/11/18(木) 00:01:08
かっこいい外観なんて飾りさ
0660デフォルトの名無しさん2010/11/18(木) 00:17:29
かっこいい外見なんて飾りです
上の人はそれがわかってるから買ってくれんのです
0661デフォルトの名無しさん2010/11/18(木) 00:18:20
でもどーせ使うならかっこいいほうがいいよね。
MSもそう言ってる。
0662デフォルトの名無しさん2010/11/18(木) 00:35:06
二つのウィンドウを持ったWPFどうやんの?
まずVSでWPFアプリケーション作成して
MainWindowとかいうのが出てくるから、XAMLでName="MainWIndow"
に変更
次にSHIFT+CTRL+Aで新しい項目→WPFウィンドウ
これで二つ目のWPFのほうにName="SubWindow"
ってやって
MainWindowのコンストラクタの部分に
SubWindow.Show()
みたいに書いても、SubWIndowは存在しません
とか言われる。
0663デフォルトの名無しさん2010/11/18(木) 01:00:06
>>661
かっこよくて使いやすいならそれがいいね。

>>662
子ウィンドウ作成
SubWindow subWnd = new SubWindow();
subWnd.Owner = this;//親ウィンドウのインスタンス
subWnd.Show();
0664デフォルトの名無しさん2010/11/18(木) 01:06:23
親の初期化が完了してないと子は作れない(コンストラクタでは×)からLoadedイベント以降に作るように
0665デフォルトの名無しさん2010/11/18(木) 02:19:17
PowerShell ISEってやつがWPFっぽい
0666デフォルトの名無しさん2010/11/18(木) 03:05:37
データバインディングのXMALの書き方について教えてくれ
テキストボックスとボタンを配置して、テキストボックスに書かれている内容が
ボタンのContentになる、よくあるサンプルみたいなもの作ってみたんだが。

<TextBox Name="T"/>
<Button Content="{Binding ElementName="T" Path="Text}"/>

こんな感じにしてみたんだが、エラーになる。
<Button>
<Binding ElementName="T" Path="Text"/>
</Button>

ってやったら、ちゃんと動いた。
データバインディングの{Binding なんちゃら}
って直接書かずにプロパティ要素構文として書かないとダメなの?
0667デフォルトの名無しさん2010/11/18(木) 03:13:27
コンパイル通らない単なる構文ミスじゃねぇか…
<Button Content="{Binding ElementName=T, Path=Text}"/>
0668デフォルトの名無しさん2010/11/18(木) 03:18:40
マジだ
なぜ
<Button>
と</Button>の間にBindingを入れると
ElementName="T"
みたいに"が入ってるのに
Content=で直接書いたら"を入れちゃいけないんだ?
変な規則だなー
0669デフォルトの名無しさん2010/11/18(木) 03:29:50
なぜって…C#すら使えないとは思わなかった。

二重引用符入れ子にすんなよw
文字列の中に二重引用符入れたいなら(XAML,C#に限らず)普通エスケープするでしょ "\""
引用符を入れ子にしたいなら二重引用符["]の中に引用符[']入れるってのもよくある一般的な方法。

なんでこんな初歩的な事に気が付かないんだw
0670デフォルトの名無しさん2010/11/18(木) 07:23:04
ある程度慣れたらBlend買え

いろいろ捗るぞ
0671デフォルトの名無しさん2010/11/18(木) 09:51:57
>>668
XML だからしょうがないだろ。
あと、Content="{Binding ...}" の方はマークアップ拡張、
<Binding ... /> の方は要素構文で、XAML のパース方法が違う。
0672デフォルトの名無しさん2010/11/18(木) 16:32:12
Visual Studio2010の
XAMLのコードエディタがバグや使いづらい点が多すぎる
ダメだこりゃ
0673デフォルトの名無しさん2010/11/18(木) 18:33:56
バグや要望あったらぜひ報告してやってくれ
0674デフォルトの名無しさん2010/11/18(木) 20:04:58
>>668>>669
WPFより先にXML覚えれ
0675デフォルトの名無しさん2010/11/19(金) 00:45:10
Visual Studio 2008 では俺の作った ColorPicker コントロールが
表示されない。2010 使いたいよい
0676デフォルトの名無しさん2010/11/19(金) 14:45:47
Visual C#のXAMLのコードエディタで
複数の同じようなコントロールがあるときそのコード上の配置を同じにするにはどうやればいい?

<Rowdefinition Height=なんちゃら name=なんちゃら VerticalAlignment=なんちゃら・・・ その他/>
<Rowdefinition Name=なんちゃら margin=なんちゃら VerticalAlignment=なんちゃら name=なんちゃら 他/>

みたいなぐちゃぐちゃしたコードになってなんとなく気持ち悪いんだけど上と下を自動整理するにはどうしたらいい?
そういう昨日ないの?
0677デフォルトの名無しさん2010/11/19(金) 14:50:13
>>676
配置を同じって、どういう意味だ。同じ箇所にまとめるということなのか。
同じ座標に重ねて配置するという意味なのか。
気持ち悪いけど上と下を自動整理ってなんだ。

質問が曖昧過ぎる。
0678デフォルトの名無しさん2010/11/19(金) 14:51:38
意味がわからん
0679デフォルトの名無しさん2010/11/19(金) 14:56:53
RowDefinitionの属性の記述順を、自動一括整理して欲しいってことだろ
06806792010/11/19(金) 14:57:53
やりかたは知らんけど
0681デフォルトの名無しさん2010/11/19(金) 15:05:46
XMLの整形機能はついてるけど、記述順は変わらないし、1行1属性になってしまうので、
外部ツールにXML整形ツールでも登録した方がいいと思う。
0682デフォルトの名無しさん2010/11/19(金) 15:06:46
何か正しい順番でもあるのか?
0683デフォルトの名無しさん2010/11/19(金) 15:21:10
属性の自動整理できないのか
自分でやるしかないのかー
面倒だな

<Width="100" Name="ABC" Height="200"/>
<Name="DEF" Height"300" Width="200"/>
みたいな書き方マジきもい
一行が短いならまだいいけど、長いとキモ過ぎる
0684デフォルトの名無しさん2010/11/19(金) 16:21:58
>>683
要素名と属性って次元の違う話なんだが
0685デフォルトの名無しさん2010/11/19(金) 20:37:14
まあ、XAML 手書きをメインにやるか、デザインツール使うなら生成される XAML 気にしないかの2択。
0686デフォルトの名無しさん2010/11/19(金) 21:15:05
>>683
その例がきもいわw
0687デフォルトの名無しさん2010/11/19(金) 21:36:25
まあ何だ、自分ひとりでこだわる分にはいいが
プロジェクトで「誰だ!せっかく俺が整理したソースを!」とか言い出さんようにな
0688デフォルトの名無しさん2010/11/19(金) 22:49:08
デザイナでカットペーストすれば一応辞書順になる
0689デフォルトの名無しさん2010/11/19(金) 23:07:11
>>687
言うだろJK。書き方が混ざるとミスが入りやすくなる。
他人がコードをいじる時は自分のスタイルに合わせてもらい、
他人のコードをいじる時はそのスタイルに合わせる。
0690デフォルトの名無しさん2010/11/20(土) 00:27:13
プロジェクトの規約で「揃える事」と決まってればそうすればいい。
そうでなきゃ属性の順番なんぞがそろってるだとか気にも留めないから
その人なりのスタイルだとなんて認識してもらえない

そんなくだらん事で自分なりのスタイルとか主張するな。
0691デフォルトの名無しさん2010/11/20(土) 16:35:01
マウスが乗ったら「あいうえお」と表示されるボタンを作ろうとした

<Button>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Content" Value="あいうえお"/>
</Trigger>
</Style.Triggers>
</Style>
</Button>

これやったら、ButtonのContentがSystem.Windows.Styleって表示されて
マウスのっけてもかわらない

どこが間違ってる?
0692デフォルトの名無しさん2010/11/20(土) 17:24:13
うん
0693デフォルトの名無しさん2010/11/20(土) 18:10:54
<Button>

<Button.Style> // ButtonのStyleプロパティが
<Style TargetType="Button"> // Styleクラス

</Style>
</Button.Style>

Buttonの子はContent

</Button>
0694デフォルトの名無しさん2010/11/21(日) 20:44:39
TextBlockの下線の位置って変えられますか?
フォントにもよるけど、ニコニコという言葉に下線を加えると、
字と下線が重なってしまって、非常に読みづらくなってしまいます。
0695デフォルトの名無しさん2010/11/21(日) 20:59:24
TextDecorationでPenOffset調整するとか
0696デフォルトの名無しさん2010/11/21(日) 21:12:08
まさにやりたかったことができました。
ありがとうございました。
0697デフォルトの名無しさん2010/11/22(月) 00:16:38
世の中には無料でも高度なプログラミングができるコンパイラや開発環境、ツールが出回っている。
C言語コンパイラ、Visual C#、Ruby

それでもプログラミングは全然はやることはない。
WPFなんて素晴らしいものなのに、注目されてなさすぎる。
0698デフォルトの名無しさん2010/11/22(月) 00:23:06
作る必要がないほどあらかたそろってるからな
みんな一体何を書いてるのだろうと時々不思議になる
0699デフォルトの名無しさん2010/11/22(月) 00:33:18
>>697
一般的に普及しているWindowsだと、プログラミングの第一歩の敷居が高すぎるんだと思われ。
開発環境があって、書籍があっても、辞書一冊を渡されて「この本を翻訳しなさい」と言われてる状態だからなぁ。

SmalltalkやEmacsみたいに、ベースである程度使える環境に機能を付け足していくって言う方が今は敷居が低そうだ。
あと、最近の環境はプログラムのエントリーポイントが判りづらいのが多い…
0700デフォルトの名無しさん2010/11/22(月) 02:31:49
プログラミングの第一歩なんてちょっとした作業を自動化するためのバッチファイルでいい。
0701デフォルトの名無しさん2010/11/22(月) 04:38:26
>あと、最近の環境はプログラムのエントリーポイントが判りづらいのが多い…

関数型言語のことですねわかります
0702デフォルトの名無しさん2010/11/22(月) 16:20:55
Rubyとかなんであんなに初心者向けの本が出てるのかわからん
実装剥き出しのオブジェクト指向でどう考えても初心者向きじゃないし
多くの初心者がプログラムと聞いてイメージするGUIアプリ開発には使い物にならんのに
0703デフォルトの名無しさん2010/11/22(月) 17:03:30
本出すと売れるからだろうな
0704デフォルトの名無しさん2010/11/22(月) 17:15:19
XAMLのほうで、テキストを結合する方法を教えて?

person.name="仙石";
のとき

<Button.Content="私は"+person.name+"です"。/>

私は仙石です
person.nameが"管"に変わった瞬間
私は管です
って表示されるみたいなことやりたいんだけど。
0705デフォルトの名無しさん2010/11/22(月) 17:38:47
StringFormat ※.NET3.5 SP1〜
以前はちょっとした変換にもコンバーターが必要になって面倒だった。
MultiBindingと組み合わせれば姓・名が別々になっててもXAMLだけで結合できる。
0706デフォルトの名無しさん2010/11/22(月) 17:41:40
<Button.Content="{Binding Path=name, StringFormat=私は{0}です。}"/>
0707デフォルトの名無しさん2010/11/22(月) 17:54:55
すげー

そういうTipsみたいなのってどこに書いてるの?
WIndows Formだとテクニック集みたいなページがいっぱいあるけど
WPFは小技/裏技みたいなページがないから困る・・・
0708デフォルトの名無しさん2010/11/22(月) 19:43:34
VSでバインディング書いてたらインテリセンスにStringFormatを見つける→何これ?→MSDN

あちこちのブログでも取り上げてあるから、検索してたらその内たどり着くんじゃないか。
0709デフォルトの名無しさん2010/11/22(月) 19:58:08
WPFのTips集って作りづらいかもしれない。
何やるにしてもBindingやナンチャラTemplateでお好きにどうぞという話になるので、
結局その辺から勉強することになる。
0710デフォルトの名無しさん2010/11/22(月) 20:14:20
そうかー
テンプレートを利用すれば
なんかキモイもの作れるね

ボタンにTextBlockをテンプレートに組み込んで
テキストボックスのようなボタンを作ったり。
0711デフォルトの名無しさん2010/11/22(月) 21:07:14
>>697
wpfは個人がちくちく作るツール向けの開発者ツールなんかじゃないし。
winformの時代もonpaintをオーバーライドしてなんかするなんて滅多に無かっただろ?
wpfの胆は見た目周りは実はどうでも良くて、MVCをきちんと分けるためのインフ
ラが揃ってることだと思うんだけどなあ。
0712デフォルトの名無しさん2010/11/22(月) 21:21:48
そこまでは素人だよ
玄人になると見た目周りにこだわりを持つようになる
0713デフォルトの名無しさん2010/11/22(月) 21:24:19
本当のプロは拘りなんてないよ。
要求されたことを完璧にこなすだけ。
0714デフォルトの名無しさん2010/11/22(月) 21:42:19
WPFはレイアウトに関するプロパティや機能が多すぎワロタ
0715デフォルトの名無しさん2010/11/22(月) 23:00:25
Microsoftは見た目にこだわるからね

office製品は昔はヘルプがイルカだった。
検索したい文字を入力してください
とかいう味気ないダイアログボックスを出すよりイルカのほうがよかったんだろう。
office 2007からも
今までのメニューバー
(ファイル 編集 表示とかいう文字ベースのやつ)を完全に撤廃し、
今までのやり方や操作性を犠牲にしてまでリボンとかいうグラフィカルな項目にした。

Microsoftにとっては見た目が非常に大事なんだろう。
0716デフォルトの名無しさん2010/11/22(月) 23:25:53
見た目は重要だからね
0717デフォルトの名無しさん2010/11/22(月) 23:38:14
リア充クラスはイケメンクラスを継承した。
俺はイケメンクラスを継承してないのでリア充になれなかった。

俺も顔のテンプレートを修正したい。
0718デフォルトの名無しさん2010/11/22(月) 23:40:40
イケメンクラスを包含すればいいじゃない。


お前の心の中にな!
0719デフォルトの名無しさん2010/11/22(月) 23:41:29
データバインディングわかんねぇえええええええええ

dataContextとかいうオブジェクト型の特殊な変数があって
そこになんか代入すればいいんだな!?

じゃあバインディングしたいデータがいっぱいあったらどうするんだ!?
dataContextはひとつしかないぞ!

なんか方法あるらしいが、わかんねええええええええええ
0720デフォルトの名無しさん2010/11/22(月) 23:50:50
Resultが1個しかなかったらSQLでテーブル1個にしかアクセスできないか?
結合があるんだそんなわけあるめえ
0721デフォルトの名無しさん2010/11/22(月) 23:53:04
バインディングしたいデータを詰め込んだクラス(ViewModel)を作ってDataContextに突っ込めばいい。

>>715
UXを重視した結果
0722デフォルトの名無しさん2010/11/23(火) 00:35:34
>>721
殺意をMicrosoftやOffice自体ではなく、
それと無関係なイルカに向けるという高度なUX重視判断の結果だなw
0723デフォルトの名無しさん2010/11/23(火) 00:37:12
| 何について調べますか?
| ┌────────────┐
| | お前を消す方法       |
| |                   |
| └────────────┘
| [ オプション(O) ]   [ 検索(S) ]
|
`──────────┐ ┌───
           , '´l,  ..| ./
       , -─-'- 、i_  |/
    __, '´       ヽ、
   ',ー-- ●       ヽ、
    `"'ゝ、_          ',
      〈`'ー;==ヽ、〈ー- 、 !
       `ー´    ヽi`ヽ iノ
                ! /
              r'´、ヽ
              `´ヽノ
0724デフォルトの名無しさん2010/11/23(火) 00:51:01
>>717
おまいら、よくわかってるじゃん
0725デフォルトの名無しさん2010/11/23(火) 01:30:01
>>722
MS擁護派の俺でもイルカは邪魔だと思うわw
0726デフォルトの名無しさん2010/11/23(火) 01:37:31
WPFならofficeのイルカみたいなのも簡単に作れる♪
0727デフォルトの名無しさん2010/11/23(火) 01:50:32
XPまでだとリージョンつかわないとパフォーマンス落ちてたんだよな
Vistaからその辺気にしなくてよくなった
0728デフォルトの名無しさん2010/11/23(火) 02:09:24
XAMLが楽だと思ったのはコントロールが継承できるとこだな。依存プロパティっていうんだっけ?
メニューなど入れ子になってる場合、親メニューをいじるだけでいいから楽チンだわ
0729デフォルトの名無しさん2010/11/23(火) 02:12:01
>>725
まあでも、擁護派・アンチ問わずありとあらゆる方面から「要らない」と言われた結果、
次バージョンでとっととイルカ消してくるのはいいところだと思う。
0730デフォルトの名無しさん2010/11/23(火) 02:29:27
>>723
なつかしいな
0731デフォルトの名無しさん2010/11/23(火) 02:46:08
お前らなぁ、言われる方の身にもなってやれよ!
>つぶやき始めてから、これまでにいただいたつぶやきで、一番多いのが「お前を消す方法」。。。たしかに、いろいろと言われてたのは知ってましたが。。。キュッ #saeko2010
0732デフォルトの名無しさん2010/11/23(火) 03:11:17
複数のWindowでデータバインディングするのはどうやんの?
WPFアプリ作った時に最初に出てくるMainWindowにテキストボックスが二つあって
その両方がバインドするやり方はわかった。
binding elementname=textbox path=text
みたいにやればいいだけみたいだ。これは簡単だった。

じゃあMainWindowの他に、CTRL+SHIFT+Aで新しい項目→WPFウィンドウ(名前はWindow1)を作り
その二つ目のWindow1にテキストボックスを配置し
Window1.TextBoxとMainWindow.TextBoxをバインドさせる方法はどうやればいいか教えてくれ。
0733デフォルトの名無しさん2010/11/23(火) 03:16:25
DataContextかBindingのSourceに共通のVMを入れてプロパティ経由で
0734デフォルトの名無しさん2010/11/23(火) 08:32:56
いまだに冴子先生が現役です・・・
0735デフォルトの名無しさん2010/11/23(火) 12:17:42
VS2010のメインレイアウトって、DockPanelかGridPanelに見せかけて、実はCanvasPanel?
0736デフォルトの名無しさん2010/11/23(火) 12:22:45
Grid だけども、Margin を駆使して Canvas っぽくレイアウトしてる。

一応、Grid のセル内の相対 Margin になるので、
Canvas よりは幾分かウィンドウサイズ変更に強いと思う。
0737デフォルトの名無しさん2010/11/23(火) 17:04:07
ListViewに4カラムで30行表示しただけなのにスクロール重すぎワラタ。内容は全部固定Textなのに。
一体何がどうしてこんなことになったのか分からないからどうやって改善すればいいのやら。
0738デフォルトの名無しさん2010/11/23(火) 17:09:50
2000行くらいになってくると重量感じるけど
30行だと何かやらかしてるとしか思えんな
0739デフォルトの名無しさん2010/11/23(火) 18:52:10
>>735
CanvasPanelというコントロールは御座いません。
0740デフォルトの名無しさん2010/11/23(火) 19:14:20
WinFormだけど,OwnerDrawの中でtrycatchで例外発生しまくりでlistviewが劇遅になったことならあるよw
0741デフォルトの名無しさん2010/11/23(火) 19:39:43
ばか?
0742デフォルトの名無しさん2010/11/23(火) 19:58:07
はい、あなたはばかです。
0743デフォルトの名無しさん2010/11/23(火) 20:40:55
VS2010の作業領域の背景って、グラデーション+ドット模様になってるじゃん
ワンパスで描画できるの?
0744デフォルトの名無しさん2010/11/23(火) 20:43:50
>>743
どういうのを言ってるかわからんがwinformでもグラデーションブラシを使えば2色の合成は簡単だけど
0745デフォルトの名無しさん2010/11/23(火) 20:44:22
テスト的にMとVMとVを分けてホイホイっと表示させるのは簡単だけど
いざ実際にアプリ作るのは設計がむじゅいね。
以前作ったFORMアプリを移植しようとしたらイベントぐちゃぐちゃで我ながら萎え萎え。
がんばる。
0746デフォルトの名無しさん2010/11/23(火) 20:57:22
>>745
MVVMは実際に設計すると非常に悩ましい。
 ・Command内の処理からダイアログをどうやって出そうか?
 ・フォーカス制御にはViewのインスタンスが必要じゃん
 ・値の検証はMでするの?VMでするの?
 ・"最大値"、"最小値"のようなパターンってどうやってエラーだすのよ
 ・数値入力フォームにアルファベットを入れたらどこでどうエラー処理する?
 ・一つのMで複数のVMが居る場合どうすんのよ、コレ
こういう綺麗にMVVMが当てはまらない場所全てで頭を抱え込むことになる。ガンバレ。
0747デフォルトの名無しさん2010/11/23(火) 21:24:38
>746
・VMのダイアログをだすよ処理にViewからインジェクト。だすよというよりIConfirmとかそんな感じ。
・フォーカスはViewですればいい。Focusなどの状態自体がVM、Mまたーなら話は別だが。
・MがVMからしかいじられないならVMで。でないなら両方ヤッとけ。
・VMでエラー吐いて表示などなどViewでやっとけ。
・上と同様。
・Observerパターン使え。
0748デフォルトの名無しさん2010/11/23(火) 22:08:36
RoRみたいにガチガチじゃないから逆に書きにくい…
0749デフォルトの名無しさん2010/11/23(火) 23:38:55
タブ型エディタみたいなのってMVVMだとどういう構造になるの?
外枠を担当するMVVMセットがあって、さらにタブ毎にMVVMセットがあるような
モデル?
0750デフォルトの名無しさん2010/11/23(火) 23:52:49
タブの1個1個がドキュメントよね。
その上位に、ドキュメントマネージャー的なのが居るのかな。

ウィンドウ自体のVMがドキュメントマネージャー持ってて、
タブごとのVMがドキュメント持ってるって感じじゃないかな。
0751デフォルトの名無しさん2010/11/23(火) 23:54:18
>>749
Evernoteクライアントのversion 3をダウンロードして動かしてみれ。
0752デフォルトの名無しさん2010/11/24(水) 01:33:55
>>750
やっぱりそんな感じよね
WPF自体経験ないからうんうん唸る

>>751
あれは重かった…
0753デフォルトの名無しさん2010/11/24(水) 01:39:32
だいたい、ビューが階層的ならビューモデルも階層にすればOK。
0754デフォルトの名無しさん2010/11/24(水) 01:57:42
MVVMでオプション設定ダイアログを作りたい
オプション設定のVは作ったのだけど、この後どのようすればいいですか?
Vの起動方法とVの設定値の取得方法が想像つかないんですが
0755デフォルトの名無しさん2010/11/24(水) 02:01:15
>>754
従来のタブ切り替えみたいな方式じゃなくて、
XAMLらしくリンクとして実装してあげるといいだろうね。
0756デフォルトの名無しさん2010/11/24(水) 03:01:47
データバインディング

TextBox.Textと普通のプロパティをバインdする方法はわかったんだが
インデクサはどうやればいい?

たとえばLabeの文字を
str[i]とバインドして

str[0]="A";
str[1]="B";
str[2]="C";

i=0になった瞬間LabelがAになって
i=1になった瞬間B、i=2の瞬間C

みたいな感じ。
ValueCangeイベントのようなイベントで処理したり
なんとかタイマーで、0,01秒ごとにLabelのContentを変える
みたいな処理しかわからない
0757デフォルトの名無しさん2010/11/24(水) 03:06:10
string hoge
{
get{return str[i];}
}
をバインドする

iのsetterでhogeのpropertyChangedをおこす
0758デフォルトの名無しさん2010/11/24(水) 03:53:39
>>756
そもそも i の変更に合わせてっての自体やらない。

i の変化自体、たぶん、ListBox の SelectedIndex とかの変化と連動してる場合が多いから、
i を介さず、直接 SelectedItem をデータバインディングしてしまう方が早い。

↓コレクション走査パスの指定ってのもできるし。
http://www.atmarkit.co.jp/fdotnet/chushin/introwpf_05/introwpf_05_02.html
0759デフォルトの名無しさん2010/11/24(水) 10:53:38
以下のxaml上のEventSetterをコードで書きたいのだが、書き方がわからない・・・

<Style TargetType="{x:Type ComboBox}">
<EventSetter Event="SelectionChanged"
Handler="SampleList_SelectionChanged" />
</Style>

動的にイベント有無を変更したいので、コードで書きたいのですが。
0760デフォルトの名無しさん2010/11/24(水) 19:45:24
そのまま書くだけだと思うけど
ルーティングイベントだけは〜〜Eventって名前の静的フィールド
0761デフォルトの名無しさん2010/11/25(木) 01:55:11
WPFいいなぁ
そろってるコントロールやパネルとかが優秀すぎて
XAML使ってもいいけど
仮に全部C#コードで書いたとしても別に問題にならない
0762デフォルトの名無しさん2010/11/25(木) 01:58:04
でもXAMLを知ればC#でなんでもやろうとは思わなくなるよ。
0763デフォルトの名無しさん2010/11/25(木) 02:05:10
XAMLって
プログラムの外観とロジックを分離させるために作った
みたいに書いてるけど
俺みたいな外観もロジックも一人で造らなきゃならないぼっちにとっても
勉強したほうがお得なの?
0764デフォルトの名無しさん2010/11/25(木) 02:11:53
>>763
というより、使わなきゃUIデザイナーの支援を受けられないんだから、嫌でも使うことになる。
0765デフォルトの名無しさん2010/11/25(木) 05:03:31
>>763
外観とロジックを分離することとぼっちは関係ないよ
0766デフォルトの名無しさん2010/11/25(木) 05:54:52
>763
宣言的にオブジェクトを配置するXAMLと、
手続処理を中心としたプログラムコード。
普通の静的なUIデザインには、前者の方が向いてるよね。
0767デフォルトの名無しさん2010/11/25(木) 06:01:04
WPFはまあ乱暴な言い方すればWinFormにブラウザコントロール貼り付けて
ローカルでhtml+css+javascript流し込んで実行してるような感じかな・・・

WinFormで凝ったGUIやると面倒だな〜->ブラウザコントロールが結構使えるなあ->WPFでいいじゃん
みたいな感じ

まー必要ない人には必要ないかもしれない
0768デフォルトの名無しさん2010/11/25(木) 06:07:55
>767
それはUIデザインのコーディングスタイルだけの話じゃないか?
WPFは強力なバインディング機構の方がキモだろ。
0769デフォルトの名無しさん2010/11/25(木) 06:52:41
xml自体がバインディング向けですしね
0770デフォルトの名無しさん2010/11/25(木) 07:23:37
でも、WPFは糞重いし、小規模なツール作るには手間がかかるだけ
UIデザイナー?そんな形態持ってる企業なんてない
0771デフォルトの名無しさん2010/11/25(木) 08:39:44
WPFが重いのはきっとMSがなんとかしてくれるよ。

きっと
0772デフォルトの名無しさん2010/11/25(木) 09:43:23
まだWPF重いのかよwww
0773デフォルトの名無しさん2010/11/25(木) 10:26:05
Boldフォント使うとすぐに字がにじむんだけど、どういうこと?
0774デフォルトの名無しさん2010/11/25(木) 13:55:39
WPFだとWndProcつかえんの?
0775デフォルトの名無しさん2010/11/25(木) 13:57:49
使える
0776デフォルトの名無しさん2010/11/25(木) 13:59:46
ふーん
0777デフォルトの名無しさん2010/11/25(木) 14:33:56
>>770
まだ小規模なツールでWinFormsより手間がかかると思ってる人居るんだ。
使ってから騒ぐ分だけコテハンのアイツの方がよっぽどマシだな。
0778デフォルトの名無しさん2010/11/25(木) 14:48:20
「オシャレなUIならWPF」とか言ってる奴もいるぞw
0779デフォルトの名無しさん2010/11/25(木) 14:51:07
いるいるw
0780デフォルトの名無しさん2010/11/25(木) 15:05:56
お前ら頭良すぎだな

お前らの脳味噌を俺の脳味噌にデータバインドしてくれよ
0781デフォルトの名無しさん2010/11/25(木) 15:19:00
それじゃちょっとこの音楽聴いといてくれるか
一万人分ぐらいの脳と繋がるから
0782デフォルトの名無しさん2010/11/25(木) 15:21:39
WPFでカスタムコントロール(Canvas継承)を作って、
Canvas上のControlに拡張プロパティを設定したいのだけどうまくいかない。

C#のIExtenderProviderにあたるWPFの機能ってなんでしょ?
DependencyPropertyでごちゃごちゃとやらないといけない?
07837822010/11/25(木) 18:31:49
AttachedPropertyBrowsableForChildren()で解決しました。
0784デフォルトの名無しさん2010/11/26(金) 03:10:23
グラフィックを半透明にしたり、画像の拡大縮小がきれいだったり

ゲームや簡易ペイントソフト作成用ですか
0785デフォルトの名無しさん2010/11/26(金) 04:07:37
XAMLのほうでは直接Width="100"みたいな定数しかできなくて
たとえばButton Width=button1.Height+30
みたいな足し算や掛け算を行ったりできないの?
こういうことしたかったらC#のコードでやらないと無理?
0786デフォルトの名無しさん2010/11/26(金) 04:28:26
まずやりたいことが、Gridなどのコンテナで実現できるか考えよう。
それでも無理ならバインドしてコンバーターで計算させるとかじゃね?
0787デフォルトの名無しさん2010/11/26(金) 09:01:28
キャンバスをEXCELのように多数のセルに分けて、それぞれ文字を入力させる。
で、フォームがリサイズされたらセルの大きさもその割合に応じて変わる。

こんなプログラムはWindows Formのほうがいいのかな?
0788デフォルトの名無しさん2010/11/26(金) 09:47:33
>>784
グラフィックきれい = ゲーム って発想やめようよ。
いわゆる可視化、見える化とかが有効とされるものならなんにでも応用効く。

>>785
コンバーター書いて Binding するか、
データコンテキストに渡した ViewModel 内で +30 するか。
どっちにしろ C# コード書くね。

>>787
リサイズへの追従とかそれこそ WPF 向きじゃない。
0789デフォルトの名無しさん2010/11/26(金) 09:52:22
ファイルのドラッグ&ドロップ部分を書こうとしているとこなんだけど
MVVMの場合イベントはすべてDeleteCommandを通して書くの?
0790デフォルトの名無しさん2010/11/26(金) 10:02:04
MVVMは質問してまでやることじゃない。
自分が無理なくやれる方法でやることが重要。
0791デフォルトの名無しさん2010/11/26(金) 10:16:04
ドラッグ&ドロップみたいなビュー内で完結してるものは
むしろビヘイビアで書く方がいいよ。
0792デフォルトの名無しさん2010/11/26(金) 10:31:21
ドラッグ&ドロップ部分はView.csで書いて
リストに追加された時にBindingで値を取得するってことでいいのかな
0793デフォルトの名無しさん2010/11/26(金) 12:41:13
MVVMの雛形を毎回作るのが面倒なんだけど
何か良い方法ないですか?
テンプレートみたいなものは自分で作れるんだっけ?
0794デフォルトの名無しさん2010/11/26(金) 13:42:47
その程度のことが面倒に感じるようなものにMVVM適用するのはどうかとおもうけど
必要ならPrism Template Packでも使えば
0795デフォルトの名無しさん2010/11/26(金) 13:45:03
Prismって何かバグがあったような気がするんだが
0796デフォルトの名無しさん2010/11/26(金) 14:09:36
>>794
なにそれ?
0797デフォルトの名無しさん2010/11/26(金) 21:02:09
何かバグはあるさ!
0798デフォルトの名無しさん2010/11/26(金) 22:58:04
>>793
テンプレートでできなくもない。t4 templateでぐぐると、いくつかmvvmのコード自動生成の作例が出てくる。
WPFはもっとコードの自動生成を取り入れないと普及しないだろうねえ。
イベントハンドラのスタブをタブキー二回で作ってくれるぐらい簡単に。
0799デフォルトの名無しさん2010/11/27(土) 01:28:16
xamlにインラインコードが使えるようにならないかな…
0800デフォルトの名無しさん2010/11/27(土) 07:31:38
VMのプロパティはEXCELとか正規表現とかでなんとか生成できるレベルだけど、
DependencyProperty実装するときのの凶悪なコーディング量はどうにかしてほしいもんだ
0801デフォルトの名無しさん2010/11/27(土) 11:22:15
>>800
あれはほんと後付けらしい醜さがあるな・・
lispのマクロとか欲しくなる
F#のワークフローとかコード引用符使ったらすっきり書けるかな(よく知らないけど)
0802デフォルトの名無しさん2010/11/27(土) 13:15:23
propdp[TAB]

まぁ、メンテも含めたらそれでも十分に極悪だがなw
0803デフォルトの名無しさん2010/11/27(土) 13:37:58
>>802
そんなのあったんだ
http://msdn.microsoft.com/ja-jp/library/z41h7fat.aspxに載ってないのに…

でもコールバックは自分で追加せんといかんのが片手落ちだな
0804デフォルトの名無しさん2010/11/27(土) 13:38:29
WPF入門とかのページそこそこあるけど
イゾンプロパティの話で
propdpのインテリセンスのこと書いてるのほとんどないよね


ぶっちゃけ、細かい使用とか話してpublic static readlyうんちゃらかんちゃら作る必要があります
ってかくより、これらはおまじないです
propdpでイゾンプロパティが作れます
だけでいいと思うんだが。
0805デフォルトの名無しさん2010/11/27(土) 13:44:26
いや見た目にうざいしスニペットがありゃいいってもんじゃないと思うけど
0806デフォルトの名無しさん2010/11/27(土) 13:47:11
WPF入門であって、VS入門じゃないから
0807デフォルトの名無しさん2010/11/27(土) 19:39:55
StyleCop先生「
 さぁ、private static readonlyは先頭に並べるのです、
 そしてプロパティはコンストラクタ、イベントの後ろです。
 イゾンプロパ…何それ?」
FxCop先生「
 アホかぼけ、なんでこんな糞コードを書…XAMLから自動生…しるかボケ!」

言語構文に組み込んでくれとまではいわないが、
せめて自社ツールだけでもどうにかしてくれ
0808デフォルトの名無しさん2010/11/28(日) 13:55:50
>>788
つかってるよー
3次元プロットはグラボ必須だし、
4次元の可視化はシェーダが欲しい。
0809デフォルトの名無しさん2010/11/28(日) 18:13:02
オサレなGUIより地味だけど機能的で快適なほうが良い
0810デフォルトの名無しさん2010/11/28(日) 18:21:32
美しさが分からん奴にそんなもの作れないよ
機能美って言葉を知ってるかい

VimだってEmacsだってあれはあれで美しいのだ
0811デフォルトの名無しさん2010/11/28(日) 18:29:02
>>809
オサレ⇔地味って軸と UX の良し悪しはそこまで相関ないよ。
オサレで使いやすい、オサレだけど使いにくい、
地味でも使いやすい、地味な上に使いにくい、全部ある。
0812デフォルトの名無しさん2010/11/28(日) 18:43:57
特定の顧客から依頼を受けて作るならいいけど
そうでなきゃ「うわ、地味。ショボそう」とか思っちゃう人もいるしな
0813デフォルトの名無しさん2010/11/28(日) 21:34:41
モジの色がカラフルで、画像と合わせて、グラデーションかかったボタンが激しく動き回り・・・
おしゃれだけど、見づらくて使いづらそうだね。
0814デフォルトの名無しさん2010/11/28(日) 21:36:08
地味に作りたきゃ地味に作れるだろ
お前しだいだ
0815デフォルトの名無しさん2010/11/28(日) 21:38:34
というか>>813がオシャレかな
派手でセンス悪いだけだろう
0816デフォルトの名無しさん2010/11/28(日) 22:05:10
>>813
おしゃれなの?それ
楳図かずおみたいな奴だな
0817デフォルトの名無しさん2010/11/28(日) 22:08:32
どんな恐怖アプリだよ
0818デフォルトの名無しさん2010/11/28(日) 22:12:43
そういうセンスの人はblinkとかマーキーとか使いまくっちゃうんだよ
0819デフォルトの名無しさん2010/11/28(日) 22:26:27
提供された機能は使い切らないといけないみたいな信条でもあるんじゃねえか
0820デフォルトの名無しさん2010/11/28(日) 22:29:10
ボタンが動き回り・・・
の点々がいいよね

ボタンなんかどんなGUIフレームワークでも動かせるけどお前ボタン動き回る画面なんか作ったことあんのかよとw
0821デフォルトの名無しさん2010/11/28(日) 22:30:05
js覚え初めのころ逃げるボタンとか作ったよ
0822デフォルトの名無しさん2010/11/28(日) 22:31:16
>ボタン動き回る画面
Blend最初触ったとき作ったぞw

残念ながら世に出ることは無かったが
0823デフォルトの名無しさん2010/11/28(日) 22:47:37
画像に合わせて激しく動き回るんだぞw
0824デフォルトの名無しさん2010/11/28(日) 22:49:33
つかまえてごらん〜

うふふふ
0825デフォルトの名無しさん2010/11/28(日) 23:21:43
埼玉の産婦人科「愛生会」の医院長が作った。
0826デフォルトの名無しさん2010/11/28(日) 23:46:57
>>825
あの人、美的センスはあるはずw
ネイチャーフォトのレベル高いよ
0827デフォルトの名無しさん2010/11/28(日) 23:55:05
WPFを使っているとありがちなこと
・なんでもかんでもアニメーション
・フェードインフェードアウト乱発
・とりあえず半透明
・以上を全てやっていないとゴネだす上司や低能デザイナーがいる

VS2010のI/Fのようにシンプルな見た目で
要所要所をピンポイントで強調するような使い方が一番上手いんだろうが、
そこまで理解できる人(得に上司)が世の中どれだけいることやら。
0828デフォルトの名無しさん2010/11/28(日) 23:55:21
ところでみんな、SQL使ってる?性能でてる?
0829デフォルトの名無しさん2010/11/28(日) 23:56:48
ごめん、誤爆
0830デフォルトの名無しさん2010/11/29(月) 00:07:50
>>827
だって、せっかくそういう機能があるんだもん
使わないともったいないじゃん
0831デフォルトの名無しさん2010/11/29(月) 00:24:48
アニメーションは体感速度に繋がるから
不必要値は言い切れない
0832デフォルトの名無しさん2010/11/29(月) 00:36:36
アニメーションも入れ方次第なのよね。
単に派手にするだけのビジュアルデザインじゃだめ。
UX デザインしないと。

例えば、Windows のウィンドウを最小化するときのアニメーションには
「次、ここをクリックしたら元のサイズに戻せますよ」という場所を示す意味がある。
でたらめな場所に向かって縮小したりしちゃダメ。
0833デフォルトの名無しさん2010/11/29(月) 01:51:37
ウィンドウは四角ければ十分な俺には全て無駄に見える
なんで見た目に凝るのか
0834デフォルトの名無しさん2010/11/29(月) 01:55:20
まあwindows上だと意味ないよね
ひたすら効率化の世界だしUIもあれだし

凝るとすればタブレットとか最近流行りのUIなどでの話だね
0835デフォルトの名無しさん2010/11/29(月) 01:56:18
>>833
まだ見た目(ry
0836デフォルトの名無しさん2010/11/29(月) 01:56:29
機能だけでいいならものつくりは簡単だな

車、パソコン、携帯電話、携帯ゲーム機、扇風機etc
たんにその本来の役目さえ果たせればいいんじゃなくてかっこいい見た目じゃないと売れない。
プログラムも同じことだよ
0837デフォルトの名無しさん2010/11/29(月) 01:59:25
>>833
ウィンドウなんて必要か?凝りすぎじゃね?
0838デフォルトの名無しさん2010/11/29(月) 02:05:14
そういえばそうだな
だが文字入力はいやだ
0839デフォルトの名無しさん2010/11/29(月) 02:18:29
文字入力が嫌ってイミフ CUIが嫌なんじゃないのか。
0840デフォルトの名無しさん2010/11/29(月) 02:25:10
ここの人たちCUIでわかるのか
じゃあCUIがいやだ
0841デフォルトの名無しさん2010/11/29(月) 02:26:44
データバインディングってのは
ターゲットもソースも
両方依存関係プロパティじゃないとダメなの?
0842デフォルトの名無しさん2010/11/29(月) 02:27:43
ああ、アレだろ、クイね。
もちろんわかるよ。
0843デフォルトの名無しさん2010/11/29(月) 02:28:42
>>836
まったく。
機能だけなら簡単と言い切るつもりもないけど、機能そろってりゃ他はどうでもいいってもんじゃない。

芸術的な意味のビジュアルデザインよくないと売れないというのももちろんあるし、
同時に UX デザインもされてる。

ボタンの位置とか大きさはどうなってれば使いやすいかとか、
ものすごいノウハウの積み重ねがある。
0844デフォルトの名無しさん2010/11/29(月) 02:29:23
>>841
ソース側は割と自由効く。
0845デフォルトの名無しさん2010/11/29(月) 02:30:30
>>841
ターゲットは依存関係プロパティじゃないとダメ。ソースは普通のプロパティでおk
0846デフォルトの名無しさん2010/11/29(月) 02:41:25
>>845
なるほどThx
TextBoxに入力した値が、いちいちなんちゃらイベントとか作らずすぐに画面に反映されて感動した。
0847デフォルトの名無しさん2010/11/29(月) 13:07:33
まともにWPFを解説してるサイトが
@IT、未確認飛行C
の二つしかない。

この二つだけで勉強しろというのか
もっとふえねぇかな。
0848デフォルトの名無しさん2010/11/29(月) 13:14:30
>>847
msdnが基本だろ
0849デフォルトの名無しさん2010/11/29(月) 13:18:32
wpftutorialはダメなん?
0850デフォルトの名無しさん2010/11/29(月) 20:18:41
俺もデータバインディングやって触ってみたけど、
XaML
0851デフォルトの名無しさん2010/11/29(月) 20:20:07
やべ途中で切れた
XAML手書きでやってるのが多いね
VS2010のデザイナでどうやるのかよくわかんね
デザイナでできる事をわざわざ手書きでやりたくないしな・・
0852デフォルトの名無しさん2010/11/29(月) 20:39:08
デザイナなんて飾りです
0853デフォルトの名無しさん2010/11/29(月) 20:40:09
デザイナって
プロパティウィンドウのこと?
0854デフォルトの名無しさん2010/11/29(月) 22:50:42
デザイナーもIntelliSenseもVisual Studio 2010の一部です!
0855デフォルトの名無しさん2010/11/30(火) 00:08:02
俺のした勉強の仕方。
>>847 で概要チェック。
後は Expression Blend いじりながら Binding, Template, Animation まわり
の知識を固めていく。( 〜ブログ放浪〜 )
最後に MSDN。

まあ、WinForms の時もこんな感じで勉強、ってか慣れていったが。。
素養のある人は MSDN 直でもわかるのかね。
0856デフォルトの名無しさん2010/11/30(火) 00:17:54
Blendなって持ってネーヨ (´・ω・`)
0857デフォルトの名無しさん2010/11/30(火) 00:40:09
つ【学生】
0858デフォルトの名無しさん2010/11/30(火) 00:51:19
解説サイト見てちょっと改変して分かった気分になって、エッセンシャルWPF読んだらよく分からなくて
ブログ放浪してやっと自分がやってた事が理解できるようになって、最後にMSDN見て納得した。

その後Blendも買って楽しいWPFライフ←今ここ
0859デフォルトの名無しさん2010/11/30(火) 02:50:27
<setter property="なんとか"/>

このなんとかの部分インテリセンスきかねぇ
クソだな
0860デフォルトの名無しさん2010/11/30(火) 04:31:01
依存関係プロパティをもっていれば
INotifyPropertyChange
を実装する必要はないんですか?
0861デフォルトの名無しさん2010/11/30(火) 08:55:23
持てるなら。
0862デフォルトの名無しさん2010/11/30(火) 10:20:42
持たせてみせよう。
0863デフォルトの名無しさん2010/11/30(火) 10:23:48
プロパティ。
0864デフォルトの名無しさん2010/11/30(火) 10:31:37
>>859
最新の Silverlight Tools 入れたら IntelliSense 効くようになる。
0865デフォルトの名無しさん2010/11/30(火) 11:30:42
コマンドってなんやん
イベント利用したら

Button1Click+=(sender,e)=>MessageBox.Show("Hello World");

これだけでいいのに
なんかICommandインターフェースを実装してExecuteがどうたらこうたらやらなきゃいけなくてわけわからん
なんでイベントがダメでコマンドならいいんだ?俺には難しすぎる
0866 ◆Jzt/EX0TGY8T 2010/11/30(火) 11:48:37
>>865
別にコマンドは無理して使わなくてもいい

コマンドじゃなくてイベントだと
例えばボタンが押された処理動作を
メニューやホットキーなど複数の条件から呼び出したい場合
それぞれイベントハンドラを記述していくことになる
だが、コマンドを作っておけば、XAMLでコマンド名を書くだけでいい
それ以外はバインディングなどをイベントハンドラで処理する場合
値が正しいかどうかのチェックで動作を変える場合も
イベントだと自前で実装することになる
コマンドなら雛形があるのでそれにあわせて書けばいい

今のおれがわかるのはこれぐらいだな
0867デフォルトの名無しさん2010/11/30(火) 12:02:05
>コマンドじゃなくてイベントだと
>例えばボタンが押された処理動作を
>メニューやホットキーなど複数の条件から呼び出したい場合
>それぞれイベントハンドラを記述していくことになる
>だが、コマンドを作っておけば、XAMLでコマンド名を書くだけでいい

それはイベントだって同じじゃあないの
Methodというメソッドを作って
<Button Click="Method"/>
<Menu Click="Method"/>
ホットキーはしらんけど
<KeyPress="Method"/>
多分こんな感じでしょ
イベントハンドラはひとつで
XMLのほうでイベントハンドラ名を書くだけでいいっしょ
0868 ◆Jzt/EX0TGY8T 2010/11/30(火) 12:13:20
>>867
そういえばそうだな
Winフォームと比べてたわ

あとは、CanExuteがfalseの場合
呼び出しもとのコントロールが自動で無効になるとか
イベントだとEnable=falseとかしないとだめでしょ
0869デフォルトの名無しさん2010/11/30(火) 12:15:06
>>865
デリゲートがシリアライズしづらいからクラスでラップしちゃって Java みたいになってる。
あと、コマンドには実行可否の判定(CanExecute)がつきものなので。
0870デフォルトの名無しさん2010/11/30(火) 12:16:45
>>867
それはでも、コマンドである必要ない。

ユーザーからの入力イベントの他に、
ちゃんと意味論的なレイヤーのイベント(今コマンドでやってるようなこと)をデリゲートで処理ってのもできたはず。
やっぱ、CanExecute とシリアライズのしやすさの問題でわざわざ ICommand インターフェイスにしてあるんだと思う。
0871デフォルトの名無しさん2010/11/30(火) 12:30:33
イベントに実行できるかどうかの判定を持たせたものがコマンド
ってもんでいいのかなぁ・・・

コマンドの説明見ても、「上書き保存」は、既存のファイルが無かったらできないようにする
「切り取り」は、テキストが選択されてないとできないようにする
とかそんなサンプルばっかりだし
0872 ◆Jzt/EX0TGY8T 2010/11/30(火) 12:35:03
>>871
結局MVVMで依存しないようにするにはコマンド使うことになるわけで
そういうのが必要ない場合はイベントで普通に書けばいいんじゃない
0873デフォルトの名無しさん2010/11/30(火) 12:46:02
要するにイベントハンドラだけでは書きづらいような部分について、
新たにコマンドという概念を追加して
XAML上で使えるようにしたってことだな。
0874デフォルトの名無しさん2010/11/30(火) 13:27:05
シリアライズってのはどゆこと?逐次化?
0875デフォルトの名無しさん2010/11/30(火) 13:35:30
>>874
バイナリ列とかXML文字列に変換って意味<シリアライズ(直列化)。

コードビハインドなしのXAML中にかけるのは、直列化可能なものだけなのよね。
デリゲートは実は直列化できなくて、
XAML のイベントへの代入は結構内部的に微妙なことしてる
(XAML から自動生成される .g.cs の方にイベント追加の += が生成されてる)
0876デフォルトの名無しさん2010/11/30(火) 13:43:35
>>875
なるほど、たしかにビハインドのないカスタムコントロールではXAMLにイベントを書けない。
コマンドはプロパティで扱えるのでXAMLでかけるということだな。
プロパティが直列化できるのはMSがそう設計したから?イベントも同じように出来なかったのかな。
0877デフォルトの名無しさん2010/11/30(火) 14:27:35
デリゲートは中身メソッドだからなぁ。

プロパティ = 見かけ上はデータ → 直列化可能
イベント = デリゲート = 中身メソッド → ダメ

という感じ。

なんというか、初期化子使って
var obj = new Type { X = ... }
みたいに書けるものだけが XAML 化可能。
0878デフォルトの名無しさん2010/11/30(火) 15:42:31
コマンドはロジック側がビューに依存するのを避けるためにあるんだよ。
イベントだとイベントハンドラを登録する際にロジックがビューに依存してしまう。
コマンドは結局、ビューがロジックのpublicメソッドを呼んでるのと同じなんだけど
それをXAMLだけで宣言的に書けるようにしてある。
0879デフォルトの名無しさん2010/11/30(火) 15:47:01
XAMLとコードビハインドは同じViewとみなしてやっても問題ない。
0880デフォルトの名無しさん2010/11/30(火) 15:50:56
>>878
お前なんか勘違いしてるだろ

>>879
だよな、イベントでまったく不都合はない
08818782010/11/30(火) 16:15:23
コードビハインドをViewと見做すのはわかってるよ。
>>878でロジックがビューに依存すると言ったのは、VとVMの間の接続をそのままイベントに置き換えてしまった場合。
VのイベントハンドラでVMのメソッドを呼ぶようにすれば問題はないけど
それをXAMLだけでやれるようにしようとすれば、コマンドバインディングが必要になる。
0882デフォルトの名無しさん2010/11/30(火) 16:18:33
あんまりXAML側で何でもやる、というのは避けたほうがいいと思うけどなぁ。
デザインとメタデータに徹しさせて。
多国語対応するなら文字列リソースも分けないといけないし。
0883デフォルトの名無しさん2010/11/30(火) 16:26:41
あったまわりーから話の流れがつかめんが、イベントハンドラって種類によっては引数ちゃうやん?
イベントハンドラの場合、シグネチャ一緒やったらイベントハンドラ流用できっけど、シグネチャちゃうやつのイベントの場合やと
同じ処理したいって時は、いったんそいつのイベントハンドラ関数作ってからその関数内で同じ処理呼びださにゃならん。
コマンドにすりゃ、シグネチャ関係無しにどのイベントに対しても使える。って理解でOK?
0884デフォルトの名無しさん2010/11/30(火) 16:29:12
用語に酔ってる素人って事までわかった
0885デフォルトの名無しさん2010/11/30(火) 16:37:58
遅延バインドではいけないのですか?
0886デフォルトの名無しさん2010/11/30(火) 16:44:33
>>882
ユーザーコントロールとかビヘイビア作って XAML にそいつを書くってやり方すれば、
XAML 肥大化させず、かつコードビハインドにコード書く必要なくせる。

>>883
それは微妙。
イベントハンドラーの引数揃えりゃいいじゃん。
ICommand だって、パラメーター色々変えたいけどやむを得ず object 型だし。

そうでなくて、デリゲートはメソッドへの参照だというのがネックで、
XAML 化/XAML 中への記述がしにくいのよ、.NET のデリゲートの仕様的に。
0887デフォルトの名無しさん2010/11/30(火) 16:45:48
>>885
データバインディング自体が遅延バインドだけどもね。

遅延バインド/dynamic な動作は極力プログラマーの目に触れない方が安全。
だから、それをフレームワークの内側に閉じ込めて直接見えなくしてるのが WPF。
0888デフォルトの名無しさん2010/11/30(火) 17:05:14
イベントって Button.Click += this.OnClick; みたいに登録するでしょ?
つまりthisのクラスはButtonに依存するんだわ。
それをもしV-VMに置き換えたら V.Hoge += ((VM)this).OnHoge; となって
thisのクラス(VM)がVに依存してしまう。
0889デフォルトの名無しさん2010/11/30(火) 17:09:19
>>888
それも、データバインディングでイベントハンドラー登録ができれば解決したものの、
結局そこで >>886 の話になる。

XAML 中に書けるイベントハンドラー(のメソッド)はコードビハインド中のものに限られる。
ここが一番のネック。
0890デフォルトの名無しさん2010/11/30(火) 17:15:07
結論、イベントで問題なし
つまりWPFは必要ない
0891デフォルトの名無しさん2010/11/30(火) 17:19:47
>>890
XAMLとコードビハインドの関係が
イベントハンドラを介してつながるのが未だ主流、という話をしてるだけで、
誰もWPFが必要ないとは言ってないだろ。

日本語が読めないのか。
0892デフォルトの名無しさん2010/11/30(火) 17:20:00
流れ全く無視ワラタwwww
0893デフォルトの名無しさん2010/11/30(火) 17:24:36
なんか話の軸が色々あるね

・今利用者が多いの
→ コードビハインド中にイベントハンドラー直書き

・じゃあ、コマンドって?
→ イベント処理をデータバインディング使ってビューから分離するときに使う
 ここでネックになるのは、イベントだとビューから分離できない
 (ただし、ビューからの分離っての自体、アプリ規模がそこそこ大きくないと有効性低い)

・なんで Action とかでなく ICommand なの?
→ CanExecute も持たせたいから
 デリゲートの方がシリアライズしにくいから
0894デフォルトの名無しさん2010/11/30(火) 17:25:40
>>891-892
昨晩騒いで涙目になってた人でしょ
0895デフォルトの名無しさん2010/11/30(火) 19:18:38
>>888
thisのクラスはここでいうとコードビハインドのクラスでしょ。つまりXamlで宣言してる
ルート要素と同じインスタンス。
なのでXamlとコードビハインドはセットでViewなので、
V-VMでいうと
コマンドなら<Button Command={Binding hoge... } />と、XamlでVMの機能を呼び出すのに対し、
イベントなら、コードビハインドのハンドラ内でVM.hoge();と呼び出すことになる。
呼び出す場所がXamlかコードかの違いだけで、VとVMの結びつき自体は変わらないと思うんだが。
0896デフォルトの名無しさん2010/11/30(火) 19:29:01
>>895
クラスの依存か、インスタンスの依存かはちゃんと区別しないと。

インスタンスの依存は絶対起きる。これは当たり前。

切りたいのはクラスの依存。
で、そのためには dynamic にやる。

もちろん、コードビハインドで dynamic に VM 操作してしまえば依存は切れる。
けども、極力ユーザーに dynamic なコードは書かせたくなくて、
出来ればデータバインディングを使いたい。
(dynamic はフレームワークの内側に隠ぺいする。)
0897デフォルトの名無しさん2010/11/30(火) 19:36:48
つまり、WPFは使うなってことだな
0898デフォルトの名無しさん2010/11/30(火) 19:38:22
>>896
クラスの依存とインスタンスの依存の違いを教えて。
コマンドでもイベントでも、VがVMのインスタンスを持つのは同じ、
そしてどちらもそのインスタンスに対して呼び出しを行ってる。
0899デフォルトの名無しさん2010/11/30(火) 19:45:24
例えば、

ViewModel vm;
void ButtonClick(sender, e) {
vm.DoWork();
}
とかやってしまうと、View が ViewModel 参照しちゃってるでしょ、アセンブリ的に。
で、

void ButtonClick(sender, e) {
dynamic vm = DataContext;
vm.DoWork();
}
なら ViewModel の参照要らない。

データバインディングがやってることは後者(に近い)。
0900デフォルトの名無しさん2010/11/30(火) 19:47:07
これで何がいいかというと、DataContext をダミークラスに差し替えてテストができる。

interface とか継承ベースの強い型付けはテスト用のダミー差し替えがしにくい。
結局、リフレクションとかに頼った dynamic な挙動させたくなる。

でも、一方で、それは利用者の目には触れさせたくなくて、
出来ればフレームワークの内部に隠ぺいしたい。
0901デフォルトの名無しさん2010/11/30(火) 22:18:14
要するに大規模開発じゃなければ
ibentoでいい
0902デフォルトの名無しさん2010/11/30(火) 22:20:32
commandやビヘビヤーはblendで使うためのものだと自分を納得させた
0903デフォルトの名無しさん2010/11/30(火) 22:21:29
俺の場合は当分イベント利用で問題なさそうだ。
後からちまちまコマンドに書き換えても遅くはないだろう。
0904デフォルトの名無しさん2010/11/30(火) 22:28:08
コマンド面倒だから

>>899
ちょっと違うけどほぼ前者で
vm = DataContext as ViewModel;
ってやってた。
dynamicって何じゃー
0905デフォルトの名無しさん2010/11/30(火) 23:03:16
WPFすごすぎワロタ
0906デフォルトの名無しさん2010/11/30(火) 23:45:39
dynamicって遅延バインディングだからお勧めしないけどな。
ビルドは通るのに動かないなんて箇所を増やしてメンテできないだろ。
Bindingのエラーも潰すのが大変だっていうのに。
0907デフォルトの名無しさん2010/12/01(水) 00:30:20
>>904
as ViewModel したら結局クラス依存するからいまいち。
dynamic は C# 4.0 の機能で、内部的に動的コード生成して遅延バインド。

>>906
効率の意味で言ってるなら、メソッドキャッシュって仕組み持っててそこそこ早いよ。

ビルド時にチェック聞かないという意味で言うと、
どの道データバインディングしてる時点で内部挙動はリフレクション。

ただ、直接ユーザーの目に触れるかどうかって点では、触れない方がよくて、
その点、データバインディング使うとフレームワークの中に隠れてくれるのはありがたい。
0908デフォルトの名無しさん2010/12/01(水) 01:15:40

よく分からんが、ViewがViewModelにクラス依存したらダメなの?
Bindを使ってもdynamicを使っても結局ViewがViewModelにプロパティ名レベルでは依存するけど。
MVVMの動機の一つ「ViewModelの単体テストがしやすい」を考えると
ViewModel->Viewの依存を切っていることだけが重要だと思うが。

この動機で考えると、ViewのコードビハインドからViewModelを叩くこと自体はまったく不味くはないけど
密接に関連してしまい「ViewModelがViewの動作に依存する」になってしまうと不味い。
0909デフォルトの名無しさん2010/12/01(水) 01:54:16
coded-UI テストとかもあるし、View→ViewModelもやっぱ切りたいよ。

テスト抜きにしても、切れる依存は切りたい。
Java とかが DI とかに走りまくってるのも、静的な結合なくすためだし。

全くダメじゃなくて、程度の問題ではあるけども。
(依存あるコードの方が圧倒的に書きやすいので、そことのトレードオフ。)
0910デフォルトの名無しさん2010/12/01(水) 02:15:25
View->ViewModelはHogeViewがIHogeViewModelとかにだけ依存するようにすればよかろ。
どのみちVMはView専用なんだしテスト用のVMにだけ差し替えできれば夜露死。
0911デフォルトの名無しさん2010/12/01(水) 03:07:16
型チェックだけのためにインターフェイス継承は実装が面倒というのもあって。
実装自体じゃないな、その後の保守。

あと、継承ベースの型チェックはやっぱり依存度強い。
ダックタイピング的な型チェックでも、静的にチェックすることはやりようによってはできるんで、
そういう機能が C# に欲しかったりはする。
0912デフォルトの名無しさん2010/12/01(水) 03:22:28
念のために言っておくと、コスト/メリットのバランス考えると、
現状一番だと思うのは >>910 の言うようなインターフェイス挟むやり方。

で、>>911 は今後期待したい機能。
0913デフォルトの名無しさん2010/12/01(水) 03:35:30
テスト用とかが意味わからん
そんなもん必要ない
0914デフォルトの名無しさん2010/12/01(水) 03:36:13
アニメーションできた
単純にrectangleの色を変化させるとかLabelが動く程度なら難しいXML構文とかほとんど覚えなくていいから簡単だなぁ
0915デフォルトの名無しさん2010/12/01(水) 12:07:53
ListViewでデータの値に応じて表示したりしなかったりしたいんですけどどうしたらいいですか?
0916デフォルトの名無しさん2010/12/01(水) 12:09:52
スタイルを定義し、Style.TriggerでDataTriggerを定義。
0917デフォルトの名無しさん2010/12/01(水) 15:50:32
ちょっと意味不明なんだが教えてくれ

XAMLのほうで、Gridの中にRectangle(Name=rectangle1)とButton(Name=button1)を別々におく

で、C#のコードのほう

private void button1_Click(object sender, RoutedEventArgs e)
{
Duration d = new Duration(TimeSpan.FromMilliseconds(1000));
var a = new System.Windows.Media.Animation.DoubleAnimation(0, d);
rectangle1.BeginAnimation(Button.OpacityProperty, a); //ここでButtonのopacity
}

これ実行したら、button1を押すとrectangle1のOpacityが減っていって透明になるんだけど
なんでBeginAnimationの引数がButton.OpacityPropertyなの?
Rectangle.OpacityPropertyだとエラーでるんだけど。
なんでrectangle1のopacityに関するアニメなのに引数がButtonの依存プロパティなの?

どういうこと?
0918デフォルトの名無しさん2010/12/01(水) 16:03:36
んなこたないだろ
0919デフォルトの名無しさん2010/12/01(水) 16:08:46
>>917
気のせいじゃないの?
http://msdn.microsoft.com/ja-jp/library/ms605728.aspx
0920デフォルトの名無しさん2010/12/01(水) 16:47:48
>>864
VC#2010ExpressだけだとSilverlight Toolsインスコできなかった。書いてある通りだけど。
http://msdn.microsoft.com/ja-jp/library/cc838244%28VS.95%29.aspx

Visual Web Developer 2010 Expressの一番基本っぽいのだけ入れたらインスコできた。
http://www.microsoft.com/japan/msdn/vstudio/express/

xamlエディタがパワーアップしたにょろ!
0921デフォルトの名無しさん2010/12/01(水) 17:00:15
依存プロパティってなんでstaticなのに既存のインスタンスに影響持たせられるんだ

storyboad s= new storyboad();
Storyboad.setTargetProperty(なんとか);

Storyboadのstaticメソッド実行しただけなのに
これでなんかsのターゲットプロパティ変わってるし。
複雑怪奇すぎるぞwpf
0922デフォルトの名無しさん2010/12/01(水) 17:04:17
DependencyObjectから勉強しろ
0923デフォルトの名無しさん2010/12/01(水) 19:54:12
GridSplitterを使った時にさ、うまくGrid内に変化を納める方法ないの?
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MinWidth="25" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Button Content="button1" />
<GridSplitter Grid.Column="1" Width="10" ResizeBehavior="PreviousAndNext" />
<Button Grid.Column="2" Content="button2" />
</Grid>
みたいなレイアウトで、スプリッターを左に持って行ったら、
スプリッターの移動は端っこで止まるけど、右のレイアウトがどんどん大きくなっていってしまう…
0924デフォルトの名無しさん2010/12/01(水) 22:29:32
>>923
ttp://www.netframeworkdev.com/windows-presentation-foundation-wpf/gridsplitter-drags-out-of-the-window-27306.shtml
0925デフォルトの名無しさん2010/12/01(水) 23:06:05
newしたい
0926デフォルトの名無しさん2010/12/02(木) 00:23:06
WPFのサイトってほとんどC#関連しかかかれてないね。
確かVisual Basic netでもWPFって使えたよね?
VBでWPFの人気がないのはなんでだろう
0927デフォルトの名無しさん2010/12/02(木) 00:25:48
WPFが使える、もしくは使おうと思うような人はそもそもVBなんて使わないから
0928デフォルトの名無しさん2010/12/02(木) 00:30:40
海外ソースの情報が多いというのもあるんじゃね
世界的にはC#のほうが多く使われてるから
0929デフォルトの名無しさん2010/12/02(木) 00:35:36
ググって出てきたサンプルがVBだとガックリ
0930デフォルトの名無しさん2010/12/02(木) 00:36:31
単純にVB使いがWPFについていけないんじゃない
0931デフォルトの名無しさん2010/12/02(木) 00:36:32
アニメーションやテンプレート、スタイルの単独での使い方はわかったが
スタイルとテンプレート合わせたり
スタイルとテンプレートとアニメーション合わせるともうわけわからん。

テンプレートで丸いボタンにして
ストーリーボードとかいうの使ってマウスカーソルが合わさると色が光って
スタイルでそれを全部のボタンに適用

みたいなことしたいんだがどうすればいいんだ。
0932デフォルトの名無しさん2010/12/02(木) 00:39:30
>>930
×VB→○VB6
×WPF→○OOP/CLR
だと思う
0933デフォルトの名無しさん2010/12/02(木) 00:58:01
WPFに限らず、漁って出てくる有益な情報はほぼ100%C#な気がする
有益な情報を発信できる人がVBしか使えないことはないだろうし、
そのうちでC#よりもVBのほうが好きって人はあんまりいないんじゃないかな
0934デフォルトの名無しさん2010/12/02(木) 01:01:47
>>931
一番いいのは、Blend で適当に何か書いてみて
生成されたコード眺めることなんだけどもね。

ほんと、Blend Express(無償)出ればいいのに。
0935デフォルトの名無しさん2010/12/02(木) 01:06:47
>>931
VisualStateManager使うのが正しいやり方だけど
正直VSMはBlendないときつい
0936デフォルトの名無しさん2010/12/02(木) 01:07:51
要するに
Visual Studio Expressだけしかもってない貧乏人は
アキラメロンってことか。
XAML PADとかいうのも使いづらい品
0937デフォルトの名無しさん2010/12/02(木) 01:14:55
やってできないことはないよ>VSM手書き
ただ明らかにデザインツール前提で非常にわかりにくい
0938デフォルトの名無しさん2010/12/02(木) 01:15:18
Blend高い(*´・ω・)(・ω・`*)ネー
趣味レベルの人向けのを5000円くらいで出してヨ
0939デフォルトの名無しさん2010/12/02(木) 02:21:56
自作のコントロール作って
それをVisual Studioのデザイナのツールボックスに追加するのはどうやんの?
0940デフォルトの名無しさん2010/12/02(木) 02:22:38
簡単なコードでコントロールができるのがかわいくして仕方がない
0941デフォルトの名無しさん2010/12/02(木) 02:25:08
>>939
リビルドで認識するはず
されない場合はIDEの設定を見てみて
0942デフォルトの名無しさん2010/12/02(木) 03:31:20
<Button.Background>
<StaticResource ResouceKey="なんとか"/>

このStaticResouceがインテリセンスで候補になーい!
Visual Studioの早期改善が求められる。
0943デフォルトの名無しさん2010/12/02(木) 03:37:53
関係ないけど、省略できる ResouceKey= や Path= を省略した場合に
値が属性と勘違いされて赤い字になるのがイヤ。
0944デフォルトの名無しさん2010/12/02(木) 04:29:22
現段階でWPFを使うのは時期早々
0945デフォルトの名無しさん2010/12/02(木) 04:34:31
ルーティングイベントがインテリセンスで出てこない

<Grid Button.Click="なんとか">
ここにボタンいっぱい配置するコード
</Grid>

↑のButton.Clickがインテリセンスで出てこない。
確かにまだ早い、のかも

でもWPFってVisual Studio 2005のころから(まだテスト段階だったらしいが)あるんだろ
それでもまだ早いって、相当遅れてるね。こりゃ、
0946デフォルトの名無しさん2010/12/02(木) 09:25:17
>>945
そのやり方に力入れてないからなぁ・・・
0947デフォルトの名無しさん2010/12/02(木) 09:26:13
というか、ForumなりConnectなりなんなりでフィードバック入れればいいのでは・・・
0948デフォルトの名無しさん2010/12/02(木) 12:01:23
Flexとか似たような技術の中ではWPFの開発環境はよくできてると思うよ
WinForms+VSが神すぎるだけ
そりゃVBやDelphiから続く系統の完成形なんだから比べたら可哀想
0949デフォルトの名無しさん2010/12/02(木) 13:20:17
個人輸入で買えば安いんじゃない
0950デフォルトの名無しさん2010/12/02(木) 14:18:58
外観はXAMLで
コードはC#で
が基本らしいけど
一部の外観はC#のほうで書いたほうがやりやすい。
0951デフォルトの名無しさん2010/12/02(木) 15:24:58
<Button Content="Button" Height="57" HorizontalAlignment="Left" Margin="110,118,0,0" Name="button1" VerticalAlignment="Top" Width="262">
<Button.Triggers>
<EventTrigger RoutedEvent="Mouse.MouseEnter">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.Angle"
To="90" Duration="0:0:2" AutoReverse="True"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>

ボタンにマウスが乗ったら、ボタンが回転するアニメーション作ってみたかった
このXAMLだと、ボタンにマウスがのったらエラーが出る。

どうやって直せばいいんでしょうか。
「プロパティ パス 'RenderTransform.Angle' に解決できないプロパティ参照があります。該当するオブジェクトでそれらのプロパティがサポートされていることを確認してください。」
とかいうメッセージ出てくる。イミフ
0952デフォルトの名無しさん2010/12/02(木) 15:55:04
<Button Content="Button" Height="57" HorizontalAlignment="Left" Margin="110,118,0,0" Name="button1" VerticalAlignment="Top" Width="262">
<Button.RenderTransform>
<RotateTransform />
</Button.RenderTransform>
<Button.Triggers>
<EventTrigger RoutedEvent="Mouse.MouseEnter">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(RotateTransform.Angle)"
To="90" Duration="0:0:2" AutoReverse="True"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>

これで動いた。プロパティ指定は"(自身のもつプロパティ).(プロパティの持つインスタンスの型.プロパティ)"という書き方になるらしい。
なんでRenderTransform.Angleって書き方じゃだめなのか俺も解説ほしい。
あと、RenderTransformにRotateTransformを入れとく必要があるぜ。
0953デフォルトの名無しさん2010/12/02(木) 16:48:30
添付プロパティって

<Button Grid.Row=1/>

これをC#のコードで書いたら
Grid.SetRow(button1,1)

なんか依存プロパティとか難しいこと言ってたけど書き方を少しだけかえただけじゃん。

C言語だとOpen(door)だったのがオブジェクト指向で
door.Open()
になったのと同じ感じがする。
0954デフォルトの名無しさん2010/12/02(木) 21:20:33
>>950
それはテンプレート使いこなしてないだけでない?

具体的にはどういうの?<一部の外観、C#の方がやりやすい。
0955デフォルトの名無しさん2010/12/02(木) 23:49:09
テンプレートでWPFアプリケーション作ったときに
using System.Windows.Media.Animation
が書いてない。
いちいち新しいプロジェクト付くる旅にusing書くのめんどくせ。
最初から書けよクソ
0956デフォルトの名無しさん2010/12/02(木) 23:50:25
テンプレート書き変えろクソ
0957デフォルトの名無しさん2010/12/02(木) 23:52:32
VBだとプロジェクト単位で弄れるのにね
0958デフォルトの名無しさん2010/12/03(金) 14:22:40
うわああああああああああああ
0959デフォルトの名無しさん2010/12/03(金) 14:30:24
XAMLコードで#if DEBUGみたいなことできる?
0960デフォルトの名無しさん2010/12/03(金) 14:31:37
Styleを使えばボタンの上にマウスがのったらボタンのプロパティ(ContentとかBackgroundとか)を変える
みたいなことはやり方を覚えた。

<Button>
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Content" Value="マウスがのってます"/>
<Setter Property="Background" Value="blue"/>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>

これでいいみたいだ。
でもこれだとトリガーでセットするプロパティはマウスが乗ったコントロールと同じものしかできん。

ボタンの上にマウスカーソルがのったらテキストボックスの色が変わる
みたいなことはどうやればいい?
0961デフォルトの名無しさん2010/12/03(金) 19:43:28
テキストボックスのStyleに記述
Triggerの代わりにDataTriggerでバインディング
0962デフォルトの名無しさん2010/12/03(金) 19:44:20
Button の方と TextBox の方のトリガーになってるプロパティをデータバインディングしとくとかかなぁ。
0963デフォルトの名無しさん2010/12/03(金) 23:34:37
関連性があって近くにあるならControlTemplateでまとめる、ってわけには。
1対1じゃないとダメか。
0964デフォルトの名無しさん2010/12/04(土) 14:16:29
TextBlockの文字の縁取り?って出来ないんですか?
09659642010/12/04(土) 14:47:40
自己解決しました
0966デフォルトの名無しさん2010/12/05(日) 00:59:28
MVVMって何

<Grid>
<Button Width="100">
<Button.Template>

こういうのがViewで

class person{
int age;
string name;
}

これがModelなの?
ModelViewって何
0967デフォルトの名無しさん2010/12/05(日) 01:00:10
ぐぐって勉強してください
0968デフォルトの名無しさん2010/12/05(日) 01:12:27
>>966
データバインディングでビューから色々分離する設計パターン。
0969デフォルトの名無しさん2010/12/05(日) 01:17:52
何で「M-V-VM」なんだろうか。
M-VM-V か V-VM-M の方が繋がってる方向的に良くなーい?
0970デフォルトの名無しさん2010/12/05(日) 01:19:24
MVC
0971デフォルトの名無しさん2010/12/05(日) 01:27:06
MVP
0972デフォルトの名無しさん2010/12/05(日) 01:50:39
主役はあくまでViewとModelだからかなぁ。
0973デフォルトの名無しさん2010/12/05(日) 14:43:10
MVVMはシンメトリックでなんか安定してるだろ?
0974デフォルトの名無しさん2010/12/05(日) 14:56:59
じゃあVMMVで
0975デフォルトの名無しさん2010/12/05(日) 16:56:20
大抵はpythonだけで事足りるからな
オサレなGUI?そんなの個人でやるもんじゃないでしょ
0976デフォルトの名無しさん2010/12/05(日) 17:04:19
美的感覚のない奴にきれいなコードが書けますか?
ハイ無理ですね
0977デフォルトの名無しさん2010/12/05(日) 21:13:14
PythonにWPFより出来のいいGUIビルダあるの?
教えて
0978デフォルトの名無しさん2010/12/05(日) 21:14:22
>>975
まだWPFがオサレな
0979デフォルトの名無しさん2010/12/05(日) 21:20:16
Python製のGUIアプリって外観とか以前に異常に使いづらいのしか出会ったことないわ
0980デフォルトの名無しさん2010/12/05(日) 21:32:41
釣りか嵐でしょ。
突然何を書いてるのかと。
0981デフォルトの名無しさん2010/12/05(日) 21:34:07
>>969
まったくだよな。
言いやすさなんだろか?
0982デフォルトの名無しさん2010/12/05(日) 21:37:51
難しい面倒くさいと言うけどWPF+VC#って
スクリプト言語なども含めて他の言語のGUIアプリ開発環境と比べたら神だよ
最高の完成度なのはWinFormsだが
0983デフォルトの名無しさん2010/12/05(日) 21:48:58
なんつったっけ
firefoxのguiフレームワーク
あんなわけわからんのでもガンガンいくからな外人は
0984デフォルトの名無しさん2010/12/05(日) 21:51:21
>>982
そう、他の言語やら使うと(使わされると)実感するよ。
0985デフォルトの名無しさん2010/12/05(日) 22:09:00


WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part8
http://hibari.2ch.net/test/read.cgi/tech/1291554513/
0986デフォルトの名無しさん2010/12/05(日) 22:13:48

1のコメントが前向きだ
0987デフォルトの名無しさん2010/12/05(日) 22:20:02
1 .NET3.0もリリースされて盛り上がってまいりますた。
2 .NET3.5 SP1 Betaもリリースされて盛り上がってまいりますた。
3 .NET3.5 SP1 もリリースされて盛り上がってまいりますた。
4 .NET3.5 SP1 もリリースされて盛り上がってまいりますた。
5 .NET3.5 SP1 もリリースされて盛り上がってまいりますた。
6 .NET4.0もリリースされたけど別に盛り上がってはいないよね…。
7 パワフルで柔軟すぎるのが敗因か? 正直ついていけないよね…。
0988デフォルトの名無しさん2010/12/05(日) 23:11:17
昔に戻っただけでしたね
あと別に盛り上がってないよね(銀光的な意味で)
0989デフォルトの名無しさん2010/12/05(日) 23:25:35
いつも荒らしに来る子?がテンプレ書き変えちゃってたから元に戻したよ。
C#スレでもWPFの質問(回答が付いてる!)見る機会が増えてきて、盛り上がってまいりますた。
09909762010/12/05(日) 23:29:29
荒らし呼ばわり来たよこれ
たまんねー
0991デフォルトの名無しさん2010/12/05(日) 23:43:58
自分が荒らしと呼ばれるかもという感覚はあるんだな
0992デフォルトの名無しさん2010/12/05(日) 23:57:31
>>976>>990
これが荒らしじゃなかったら何だって言うんだw
0993デフォルトの名無しさん2010/12/06(月) 00:08:25
どうでもいいけどVS2010ってなんでソリューションエクスプローラやクラスビューのツリービューのところだけ
WPFじゃないんだろう
エディタはWPFで作ってるくせにそんなに特別負荷のかかるところとも思えないんだが
0994デフォルトの名無しさん2010/12/06(月) 00:14:20
どうやってそういうのわかるのん?
0995デフォルトの名無しさん2010/12/06(月) 00:18:06
割と有名な話でしょ
Windowsの設定によってはスクロールバーなんか明らかに他の部分と違うし
http://connectppe.microsoft.com/VisualStudioJapan/feedback/details/564203/
単にリリースに間に合わせるためっぽいね
0996デフォルトの名無しさん2010/12/06(月) 00:44:54
盛り上がっては来てるんじゃないの。楽観だけど
0997デフォルトの名無しさん2010/12/06(月) 01:01:14
Part1 2006/11/08-2008/05/24 563日
Part2 2008/05/22-2009/01/11 234日
Part3 2009/01/09-2009/06/20 162日
Part4 2009/06/19-2009/12/27 191日
Part5 2009/12/27-2010/05/21 145日
Part6 2010/05/21-2010/08/28 99日
Part7 2010/08/22-2010/12/06 106日
Part8 2010/12/05-2011/?

1の過疎時代を知っていると感慨深いものがある。
0998デフォルトの名無しさん2010/12/06(月) 01:21:46
ume
0999デフォルトの名無しさん2010/12/06(月) 01:23:08
sine
1000デフォルトの名無しさん2010/12/06(月) 01:23:18
cosine
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。