WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part7
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/08/22(日) 21:11:53Windows 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:370003デフォルトの名無しさん
2010/08/24(火) 01:40:56乙
0004デフォルトの名無しさん
2010/08/27(金) 21:46:28ボタンのコマンドを変えたい場合、ボタンのコマンドをチェックボックスの値にバインドして
booleanからICommandへのConverterを書くしか方法はないでしょうか?
Styleのtriggerのpropertyはターゲット自身のプロパティしか参照できないですよね??
0005デフォルトの名無しさん
2010/08/28(土) 01:17:36TriggerはTargetName=チェックボックスのName、Property=IsChecked、Value=Falseを指定する。
SetterのTargetName=ボタンのName、Property=IsEnabled、Value=Falseを指定する。
0006デフォルトの名無しさん
2010/08/28(土) 14:14:230007デフォルトの名無しさん
2010/08/28(土) 17:51:30言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究
0008デフォルトの名無しさん
2010/08/31(火) 22:50:420009デフォルトの名無しさん
2010/08/31(火) 22:55:16忘れてたけど
0010デフォルトの名無しさん
2010/09/01(水) 22:15:42Expression3→4へ無償UPGキャンペーンってまだやってんの?
0011デフォルトの名無しさん
2010/09/01(水) 22:41:57実質永久にキャンペーン中
0012デフォルトの名無しさん
2010/09/01(水) 22:49:200013デフォルトの名無しさん
2010/09/01(水) 23:07:490014デフォルトの名無しさん
2010/09/03(金) 15:06:37キャンペーンのこと知らなくて、体験版入れたら何時まで経っても使用期限が来ないもんで
登録情報見たら登録済みになっててびっくらこいたよ。
もしかして落とせるようになってたの体験版じゃなくて正規版??とか一瞬ドキドキしたw
Expressionの3とは別にインストールされるみたいだけど、3はアンインスコしちゃって
いいのかねえ???
0015デフォルトの名無しさん
2010/09/03(金) 16:11:21入れっぱなしだけど…
0016デフォルトの名無しさん
2010/09/05(日) 19:22:49ListBox の外枠でクリッピングされてしまいますが、これをはみ出させる方法はありますでしょうか?
とりあえず、ListBox と ListBoxItem の ClipToBounds = false にしてみましたが、
これではだめなようです。
0017デフォルトの名無しさん
2010/09/05(日) 20:32:31スクロールバー表示のため制御されてる
001816
2010/09/07(火) 09:15:51難しそうなんであきらめることにします。
0019デフォルトの名無しさん
2010/09/07(火) 21:50:55で、UserControl で、
<UserControl.InputBindings>
<KeyBinding Key="Left" Command="HogeHoge" />
</UserControl.InputBindings>
としたんですが、ScrollViewer にキー入力をとられてしまい、
HogeHoge が発生しません。
UserControl で先にイベントを取得する方法はないでしょうか?
(PreviewKeyDown イベントを使う方法だと、KeyBinding が使えなくなって
しまうので、それ以外の方法でお願いします。)
0020デフォルトの名無しさん
2010/09/10(金) 04:05:20[Category("共通")] 以外あったら教えてくれ。
0021デフォルトの名無しさん
2010/09/10(金) 11:37:140022デフォルトの名無しさん
2010/09/11(土) 20:01:19今はttp://gurizuri0505.halfmoon.jp/develop/csharp/zorderの方法を試してみたのですが、
最背面どころか画面が消えて見えなくなってしまいます。
0023デフォルトの名無しさん
2010/09/12(日) 09:34:54<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:45ActivatedイベントでWin32APIのSetWindowPos関数使ってHWND_BOTTOMにセットするとか
一瞬アクティブになったりもするけど
>>23
e.Sourceで判断する
0025デフォルトの名無しさん
2010/09/12(日) 10:13:53>ルート上のその後の MouseDoubleClick イベントは、Handled が false に設定された状態で発生します。
>コントロール作成者がマウスのダブルクリックを処理する場合は、
>ClickCount が 2 に等しいMouseLeftButtonDown イベントを使用する必要があります。
>これにより、要素ツリー内の別の要素がそのイベントを処理する場合に、Handled の状態が適切に伝播されます。
うわ面倒くさ
0027デフォルトの名無しさん
2010/09/12(日) 10:36:42senderで判別しろってことだろ
下位の層でイベントを拾ったら上の層を無視するようにする
002823
2010/09/12(日) 10:43:42ありがとうございました
0029デフォルトの名無しさん
2010/09/12(日) 11:25:18自分のやりたい事は壁紙を変更する事だと気づき、最背面はあまり関係ありませんでした。
でも、壁紙変更もWin32APIで出来る事がわかりました。
あまりWPF関係ないですね。ありがとうございました。
0030デフォルトの名無しさん
2010/09/13(月) 02:25:12ウィンドウ内で画面遷移させるのってWPFだとどうやるの?
UIをそれぞれリソースにしてContent = FindResource("...")とやれば一応動作はするんだけど、
これだとそれぞれのUIにコードビハインド付けられないし使いにくい。
PageはWeb用みたいなかんじだし、UserControlでまとめるのもなんか違う気がする。
0031デフォルトの名無しさん
2010/09/13(月) 04:25:18003230
2010/09/13(月) 10:50:35それぞれのUIはこれで作ってMainWindowに統合する形でやってみます。ども
0033デフォルトの名無しさん
2010/09/13(月) 13:22:270034デフォルトの名無しさん
2010/09/13(月) 13:36:04http://msdn.microsoft.com/ja-jp/library/ms611061.aspx
0035デフォルトの名無しさん
2010/09/13(月) 21:16:35普通にUserControlだろ
リソースディクショナリにコードビハインドとかどう考えてもおかしい
0036デフォルトの名無しさん
2010/09/14(火) 00:11:17テキストを表示するのに必要な幅を知りたいので、
これをよこいっぱいに広がらず WinForms の AutoSize = true の
ような状態にしたいのですが、そのような設定ができるプロパティ
とかありますか?
現在は、StackPanerl(Orientation = Horizontal)の中にいれて
横幅いっぱいまでひろがらないようにしていますが、
そのためだけに StackPanerl を使うのは無駄なような気がして、
なにか方法あるんじゃないかと思ってるんですが。
0037デフォルトの名無しさん
2010/09/14(火) 00:16:54たしかにデザイナも使えないしやめたほうがいいかも
それでやってみます
0038デフォルトの名無しさん
2010/09/14(火) 00:20:05HorizontalAlignment/VerticalAlignment?
003936
2010/09/14(火) 00:52:41HorizontalAlignment プロパティは知ってましたが、WinForms と同じで
TextBlock 内で Text をどこに表示するかという意味だとばかり思ってました。
HorizontalAlignent でコントロール自体の大きさが変わるとは・・・。
勉強になりました。ありがとうございました。
0040デフォルトの名無しさん
2010/09/14(火) 00:59:56TextBlockにはないけど子要素をどう配置するかはHorizontalContentAlignment
HorizontalAlignmentは親要素に対し自分をどう配置するか
0041デフォルトの名無しさん
2010/09/14(火) 02:19:51コントロールが複数ならgeneric.xamlでマージする。
0042デフォルトの名無しさん
2010/09/14(火) 12:59:41特にテンプレートのサポート
中は泥臭くていいからコンポーネントの利用者には完璧なAPIを提供しろっていう
いかにもMSらしい思想を感じる
0043デフォルトの名無しさん
2010/09/14(火) 13:25:56テンプレートになかったら、自力で書くしかないね。
しかし XAML 使い出すと、フォームはもう使うことないわ。古臭すぎる。
0044デフォルトの名無しさん
2010/09/14(火) 13:36:370045デフォルトの名無しさん
2010/09/16(木) 01:48:180046デフォルトの名無しさん
2010/09/16(木) 01:51:51http://msdn.microsoft.com/ja-jp/library/ms752097.aspx
泥臭いよなー
マジどうにかしてほしい
0047デフォルトの名無しさん
2010/09/16(木) 01:56:34ttp://gun.world.coocan.jp/guns/shooting_re/031205hdd.htm
0048デフォルトの名無しさん
2010/09/20(月) 03:50:290049デフォルトの名無しさん
2010/09/22(水) 00:58:44TextBlock オブジェクトをたくさん作ってずらせば出来そうだけど
もっとスマートな方法あるよね。
0050デフォルトの名無しさん
2010/09/22(水) 01:25:24FormattedTextのBuildGeometryを縁取りをつけて描画。
http://msdn.microsoft.com/en-us/library/ms745816.aspx
小さめの文字ではあまり見栄えが良くないので使いどころに困る。
Effectでお茶を濁したほうが楽だろうなぁと思う。
0051デフォルトの名無しさん
2010/09/22(水) 01:30:50神だわ、マジサンクス!
0052デフォルトの名無しさん
2010/09/22(水) 02:00:260053デフォルトの名無しさん
2010/09/22(水) 02:12:200054デフォルトの名無しさん
2010/09/22(水) 02:43:00できた、ありがとう
0055デフォルトの名無しさん
2010/09/22(水) 23:34:42・ViewModelでチェック
・ModelをIDataErrorInfoの具象にしてModelで値のチェック
・ValidatesOnExceptionで入力値の型をチェックさせることもできたり
・BindingのValidationRuleでチェックさせることができたり
・ViewのDependencyPropertyにValidateCallbackでもチェックできたり
・ViewのDependencyPropertyにCoerceValueCallbackを登録すれば
(チェックではありませんが)入力値自体を正常範囲に丸めたり、不正な入力を蹴ったりできたり
と、色々な箇所にチェックを入れれるようで、どれをどういう場合に使えばいいのやらサッパリで…
0056デフォルトの名無しさん
2010/09/22(水) 23:57:53HasError とかに何を入れるかよね。
モデルに投げちゃう方式だと、モデルが WCF サービスでウェブ越しとかな時に困りそう。
最近多いのは、VM のプロパティに DataAnntations の検証属性つけて、
HasError とかの中では Validator.ValidateObject/ValidateProperty するだけとかかな。
O/R マッパーのエンティティクラスの方と2度手間になったりするんで、
T4 とか使ったコード生成で対処してる人もちらほら。
0057デフォルトの名無しさん
2010/09/23(木) 12:38:05上記のサイトを参考にwin.xaml実行したのですが、xpcom.dllがないってエラー表示されます
ブラウザはgoogle chromeを既定に設定してます。
xamlを動かすには何かランタイムが必要なのでしょうか?
net flamework4.0はインストール済みです
0058デフォルトの名無しさん
2010/09/23(木) 14:47:05ググってみたらFireFoxをインストールしてパスを通せばChromeで動くようになるらしいけど
そんなんで動いても意味ないでしょ。配布先にそんなことさせるの?
XBAPなんて完全に見捨てられた技術だからブラウザで動かしたかったらSilverlight使うべき。
0059デフォルトの名無しさん
2010/09/23(木) 14:57:09006058
2010/09/23(木) 14:58:14LooseXAMLといって、.NETが入ってればIEで直接開けるものもあるんだけど、
一般にはXAMLはそれ単体では動かない。VSでビルドしてアプリケーションに組み込まれて初めて動くようになる。
>>57の情報は古いのでこっち参考に
http://www.atmarkit.co.jp/fdotnet/chushin/introwpf_index/index.html
0061デフォルトの名無しさん
2010/09/25(土) 21:35:450062デフォルトの名無しさん
2010/09/25(土) 21:50:40StackPanelをOrientation=Horizontalにして使うんじゃ駄目なのか?
0063デフォルトの名無しさん
2010/09/25(土) 21:57:150064デフォルトの名無しさん
2010/09/25(土) 22:01:45http://msdn.microsoft.com/ja-jp/library/ms750821.aspx
0065デフォルトの名無しさん
2010/09/27(月) 23:43:160066デフォルトの名無しさん
2010/09/27(月) 23:56:250067デフォルトの名無しさん
2010/09/28(火) 00:00:210068デフォルトの名無しさん
2010/09/28(火) 00:10:590069デフォルトの名無しさん
2010/09/28(火) 01:06:130070デフォルトの名無しさん
2010/09/28(火) 01:37:150071デフォルトの名無しさん
2010/09/28(火) 02:03:20新しいってだけで思考停止しちゃう>>66みたいな第2のコボラーが荒らしに来るから普段は離れてROMってる。
0072デフォルトの名無しさん
2010/09/28(火) 08:10:13くい。コントロールのイベントやプロパティも覚えきれないほどたくさんあるけ
ど、肝心なところが「え!こんなこともできないの?」と抜けてることもあるし。リ
フレクションの多用で型の安全性が大きく損なわれてるのも. net frameworkの元々の
思想から大きく逸脱してる。
0073デフォルトの名無しさん
2010/09/28(火) 09:02:39IE以外でローカルで動かす方法は知らない。
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:51MIME の設定は、Silverlight の XAP に対しても必要よ。
0075デフォルトの名無しさん
2010/09/28(火) 09:42:06xapはプラグインがダウンロードするから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:200077デフォルトの名無しさん
2010/09/28(火) 23:57:45デスクトップでいいものならやっぱフル版の .NET の方が楽なんだけどもねぇ。
0078デフォルトの名無しさん
2010/09/29(水) 03:23:29強化されて乱用されると複数のバインディングの動作順次第で処理結果が変わるなんて
トラブルが多発しそうで面倒見れないから
バインディングやxamlの処理を直接デバッグできるようにするとかを強化して欲しいなぁ。
0079デフォルトの名無しさん
2010/09/29(水) 12:41:11デバッグは本当に困るね。なんとかならないのかな。
0080デフォルトの名無しさん
2010/09/29(水) 13:10:17使ったらだめ
0081デフォルトの名無しさん
2010/09/29(水) 14:13:100082デフォルトの名無しさん
2010/09/29(水) 14:23:400083デフォルトの名無しさん
2010/09/29(水) 18:09:570084デフォルトの名無しさん
2010/09/29(水) 20:00:19SilverlightはLinuxサーバでも動かせるんでしたっけ?
0085デフォルトの名無しさん
2010/09/29(水) 20:11:41バカは死んでください。
0086デフォルトの名無しさん
2010/09/29(水) 22:22:21たしかに作業が分担になるかもしれないが、これでは、
『分担しなければ作れない』
になってしまうではないか・・・
個人でプログラム書くには向いてないねこれ。
0087デフォルトの名無しさん
2010/09/29(水) 22:24:07俺はもうFormsには戻りたくない
0088デフォルトの名無しさん
2010/09/29(水) 22:29:460089デフォルトの名無しさん
2010/09/29(水) 22:33:45http://kamome.2ch.net/test/read.cgi/newsplus/1285742248/
0090デフォルトの名無しさん
2010/09/29(水) 23:17:260091デフォルトの名無しさん
2010/09/29(水) 23:19:26ガワ作るのは楽しいけど、ほんとそれだけ
0092デフォルトの名無しさん
2010/09/29(水) 23:31:54.NET5にはようやく…
0093デフォルトの名無しさん
2010/09/30(木) 16:56:500094デフォルトの名無しさん
2010/09/30(木) 17:10:160095デフォルトの名無しさん
2010/09/30(木) 17:17:060096デフォルトの名無しさん
2010/09/30(木) 17:23:24そこから選択変更できるはず
0097デフォルトの名無しさん
2010/09/30(木) 17:43:03すみません、ListboxのItemContainerGeneratorのメゾットを使用して、
既に選択されている項目がクリックされたときに反応する方法がわからないのですが、どうすればいいのでしょうか?
0098デフォルトの名無しさん
2010/09/30(木) 17:46:51http://msdn.microsoft.com/ja-jp/library/system.windows.controls.listboxitem_events.aspx
>MouseDown
少しは検索しろよチンカス
0099デフォルトの名無しさん
2010/09/30(木) 17:51:40優しすぎて泣いた
ありがとん
0100デフォルトの名無しさん
2010/09/30(木) 18:33:000101100
2010/09/30(木) 18:33:420102デフォルトの名無しさん
2010/09/30(木) 18:37:330103デフォルトの名無しさん
2010/10/02(土) 10:12:310104デフォルトの名無しさん
2010/10/03(日) 01:27:240105デフォルトの名無しさん
2010/10/03(日) 01:40:310106デフォルトの名無しさん
2010/10/03(日) 02:06:45「インスコール手順は以下の通りです」と平気で返ってくるなんてよくあること
0107デフォルトの名無しさん
2010/10/03(日) 08:32:531. タマネギはみじん切りにして、オリーブオイル、無塩バター40gで炒める。
2. タマネギが透き通ってきたら、米を入れて中火でさらに炒める。
3. 2に白ワインを加えて強火で煮、沸騰してきたら中火にする。水分がなくなるまで煮詰める。
4. 最初、米がかぶるくらいの分量の水をくわえ、グツグツくらいの火加減で煮る。
メゾットの表面の泡が少し粘った感じになったら最初の時よりやや少な目の水をくわえ、同様に煮る。
5. 繰り返し水をくわえて好みのかたさに仕上げる。好みのかたさに近くなったら、塩小1/2を加えて煮詰める。
6. 5にすりおろしたパルメジャーノを加え、フライパンを揺すりながら混ぜる。仕上げに無塩バター40gを加えて、バターが溶けたら皿に盛る。
0108デフォルトの名無しさん
2010/10/03(日) 08:33:320109デフォルトの名無しさん
2010/10/03(日) 09:04:450110デフォルトの名無しさん
2010/10/06(水) 22:50:17・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別にそんなことないな
0112デフォルトの名無しさん
2010/10/06(水) 23:25:420113デフォルトの名無しさん
2010/10/06(水) 23:41:23>>111
ですか…うーん。関係なさそうなコードをだいぶ削っても起きているので、
なにか根本的に間違えているのかもしれません。もうちょっと調べてみます。
>>112
出力ウィンドウを見てもそれらしいものはないので、それは大丈夫そうです。
0114デフォルトの名無しさん
2010/10/07(木) 01:54:48両方のBindのコンバーターにブレイクポイントを置いてデバッグしてみたら?
0115デフォルトの名無しさん
2010/10/07(木) 23:31:13添付プロパティ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:19MSのページにはExpressを除くというような表現はないけど、Amazonのページだと
「※無料のダウンロード製品および体験版は対象外。」と書いてあってどっちだか
わからん。
0119デフォルトの名無しさん
2010/10/11(月) 19:13:530120デフォルトの名無しさん
2010/10/11(月) 21:10:19前から興味があって、今日ちょびっと勉強したのでこのスレを開いてみたら
1のやる気の無いコメントで泣いた ('A`)
0121デフォルトの名無しさん
2010/10/11(月) 21:23:08いまだのコボルが現役なんだぜ。
例え WPF 自体が下火になろうとも、知識は Silverlight に流用できるし。
0122デフォルトの名無しさん
2010/10/11(月) 22:10:530123デフォルトの名無しさん
2010/10/11(月) 22:35:23個人レベルのとこからじわじわと着実に広まると思うんだけどな
現状だと一部のオタクがブログでこんなんできたみたいな単発ネタ出してるだけにすぎない
0124デフォルトの名無しさん
2010/10/11(月) 22:52:330125デフォルトの名無しさん
2010/10/12(火) 00:02:57GridとStackPanelあたりを使って配置していくと
XAMLを書きながらプレビュー表示しているだけという感じになって
デザイナソフトとかどうでも良くなってきたよ。
後はMarginやPaddingなどをリソースに設定しておくと
誰が作っても同じような綺麗に揃ったレイアウトになるのでなかなか楽でいいよ。
0126デフォルトの名無しさん
2010/10/12(火) 00:07:000127デフォルトの名無しさん
2010/10/12(火) 00:25:410128デフォルトの名無しさん
2010/10/12(火) 00:30:210129デフォルトの名無しさん
2010/10/12(火) 00:38:22しかしWPFで求められてることをやろうとするのは大変だ
0130デフォルトの名無しさん
2010/10/12(火) 00:38:220131デフォルトの名無しさん
2010/10/12(火) 00:38:450132デフォルトの名無しさん
2010/10/12(火) 00:43:03VS2010はグラデーションエディタ使えるけど相変わらずスタイルやリソースには対応してないから使い物にならない
0133デフォルトの名無しさん
2010/10/12(火) 00:43:18データ検証とか、検証通るまでボタン押せなくするとかやりやすいだけでも WPF の価値あると思うんだけども。
で、せっかく開発者とデザイナーの協業想定されてるんだから、
細かい視覚効果が本当に必要になったときにデザイナーさんに UI 修正をお願いするとかがいいと思う。
0134デフォルトの名無しさん
2010/10/12(火) 00:53:15VS2010のXAMLデザイナの使い勝手はWinFormsとそんなに変わらなくなった
0135デフォルトの名無しさん
2010/10/12(火) 01:03:580136デフォルトの名無しさん
2010/10/12(火) 01:05:58うん、特に業務だと皆無だと思う。
なので、そういうところよりは分業とかMVVMでのモデル分離とかの方がWPFの利点かなぁと思う。
まあ、コンシューマー系だと無意味に思える装飾も目を引きたいって意味合いで使えるけども。
0137デフォルトの名無しさん
2010/10/12(火) 03:52:580138デフォルトの名無しさん
2010/10/12(火) 04:07:100139デフォルトの名無しさん
2010/10/12(火) 10:57:150140デフォルトの名無しさん
2010/10/12(火) 17:09:19データの検証とかコントロールのオンオフ制御とかは正直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:08DateTimeを指定するだけのコントロールだろ?
単なるビューの部品なんだから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>>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:030150デフォルトの名無しさん
2010/10/16(土) 10:56:410151デフォルトの名無しさん
2010/10/16(土) 11:26:33とにかく、データの定義を一か所に集めたいのよ。
データ定義から、Entity Framework の Entity とか、
WPF 向けの ViewModel とか、
あるいは、DataGrid とか DataForm の列定義/フィールド定義を生成してる。
ViewModel に IDataErrorInfo とか INotifyDataErrorInfo 付けてのデータ検証、
そういうやり方には結構あってると思うけどね。
0152デフォルトの名無しさん
2010/10/17(日) 02:46:12真のプログラマーは使わない
0153デフォルトの名無しさん
2010/10/17(日) 03:50:320154デフォルトの名無しさん
2010/10/17(日) 05:35:160155デフォルトの名無しさん
2010/10/17(日) 06:36:060156デフォルトの名無しさん
2010/10/17(日) 11:10:29プログラム書いて自動化すれば(最初だけちょっと大変だけど以後)数秒で終わる作業を、
Excel 手作業とかで延々と何時間もやってるおっちゃんっているじゃない。
刺身タンポポ的作業。
そこでいう「真のプログラマ」ーって刺身タンポポと大差ないよね。
0157デフォルトの名無しさん
2010/10/17(日) 14:52:270158デフォルトの名無しさん
2010/10/17(日) 15:09:25/ \
/ _ノ ヽ、_ \
/ o゚⌒ ⌒゚o \ 今日もまた、刺身の上にタンポポのせる仕事が始まるお…
| (__人__) |
\ ` ⌒´ /
0159デフォルトの名無しさん
2010/10/17(日) 15:50:110160デフォルトの名無しさん
2010/10/17(日) 16:10:04今時工場ライン化されてるはずの作業を手作業でやってるもんだっていう。
0161デフォルトの名無しさん
2010/10/17(日) 16:51:080162デフォルトの名無しさん
2010/10/17(日) 17:00:100163デフォルトの名無しさん
2010/10/17(日) 17:45:530164デフォルトの名無しさん
2010/10/17(日) 18:48:580165デフォルトの名無しさん
2010/10/17(日) 21:30:24人によっては刺身タンポポに見えるが、人によっては銀の弾丸に見える。
俺にはほぼ刺身タンポポに見えるけどねw
0166デフォルトの名無しさん
2010/10/17(日) 21:32:160167デフォルトの名無しさん
2010/10/17(日) 21:35:53別にバラさなきゃいけない訳じゃないし。そのまま使えばOK。
0168デフォルトの名無しさん
2010/10/17(日) 21:43:370169デフォルトの名無しさん
2010/10/17(日) 21:45:11まあ、ツールの利用とかコード生成とかが前提よ。
それが WPF 刺身タンポポを回避する方法。
0170デフォルトの名無しさん
2010/10/18(月) 11:48:50どうすればタスクバーが隠れないようにできるの?
0171デフォルトの名無しさん
2010/10/18(月) 20:35:340172デフォルトの名無しさん
2010/10/18(月) 23:34:33ItemsSourceにデフォルトコンストラクタがある型の追加可能なコレクションを設定しないと有効にならない。
デザイナ上は判りにくい動きになるが一応値はセット出来てるはずだよ。
0173デフォルトの名無しさん
2010/10/19(火) 01:19:140174デフォルトの名無しさん
2010/10/20(水) 19:47:50MVVM推奨するならDoubleClickやSelectionChanged用のCommandプロパティぐらい用意しとけよと。
0175デフォルトの名無しさん
2010/10/20(水) 19:55:12Silverlightのダイエット志向に合わせてる
0176デフォルトの名無しさん
2010/10/20(水) 22:03:56ダブルクリックは普通に InputBindings でいけない?
まあ、Blend SDK 入れて、そっちのトリガー使えば何でもコマンドをバインドできる。
.NET 5 では標準入りするんじゃないかなぁ。
0177デフォルトの名無しさん
2010/10/20(水) 22:15:590178デフォルトの名無しさん
2010/10/20(水) 23:58:30.NET5とか、それまでWPFの息があるかどうか…Orz
0179デフォルトの名無しさん
2010/10/21(木) 01:20:44コンテキストメニューから操作した場合はそれが動くけど
DELキーの場合はListBox自体のキーバインドが先に動くという微妙な結果に。さてどうしたものか。
部品がどのRoutedCommandを出してどのCommandBindingsが登録されているかってMSDNに書いていないよね?
0180デフォルトの名無しさん
2010/10/23(土) 17:51:150181デフォルトの名無しさん
2010/10/23(土) 19:17:24そのあたりはいろいろと仕様です。
0182デフォルトの名無しさん
2010/10/24(日) 02:16:47そうすれば、一挙に普及する。
0183デフォルトの名無しさん
2010/10/24(日) 02:30:330184デフォルトの名無しさん
2010/10/24(日) 16:10:210185デフォルトの名無しさん
2010/10/24(日) 17:46:28http://www.microsoft.com/taiwan/silverlight/
0186デフォルトの名無しさん
2010/10/24(日) 21:48:020187デフォルトの名無しさん
2010/10/24(日) 22:31:290188デフォルトの名無しさん
2010/10/24(日) 22:56:15ほんと、何やってんだかな・・・
まあ、画像は全部保存したけど
0189デフォルトの名無しさん
2010/10/24(日) 23:22:32ttp://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だな。
0192デフォルトの名無しさん
2010/10/25(月) 08:43:550193デフォルトの名無しさん
2010/10/25(月) 09:37:110194デフォルトの名無しさん
2010/10/25(月) 16:17:20コードからRoutingEventを一律Addするのってどうするの?
以下のコードでは追加できね。
this.AddHandler(ComboBox.SelectedEvent, new RoutedEventHandler(Combobox_SelectionChanged));
ボタンのクリックイベントならAddできるのに、コンボにAddできない理由がわからん・・・
0195デフォルトの名無しさん
2010/10/25(月) 17:45:58<Button Click="CustomControl1.Button_Click"/>
みたいな感じでコード側にあるハンドラと関連付けることってできないの?
コマンド用意するには大げさなときとか、こんなふうに手軽にかければいいんだけど。
どんな些細な操作でもコマンド使うのがカスタムコントロールの流儀なのかね。
0196デフォルトの名無しさん
2010/10/25(月) 18:11:10ユーザーコントロールのどこかから親Windowを捜すにはどうしたらいいんでしょうか。
0197デフォルトの名無しさん
2010/10/25(月) 18:17:150198デフォルトの名無しさん
2010/10/25(月) 18:29:44これか!
Windowの方のstaticかー
0199194
2010/10/25(月) 18:29:55Xaml記述ではできるんだけど、タイミングを制御したいのでコードで書きたいのです。
>>196
Window.GetWindow(control)
0200デフォルトの名無しさん
2010/10/25(月) 19:59:38>>195は>>194とは無関係よ。紛らわしくてすまん
0201デフォルトの名無しさん
2010/10/26(火) 05:23:32javascriptの動作はボタンを押すとデータをPOSTするといったもののようなのですが
他のブラウザだとPOSTされたあと画面が切り替わるのに、
webbrowserコントロールでは切り替わりません。
FiddlerでモニタしたところPOST自体はされているみたいです。
WPFでもFormでもどちらも動かないのですが、どうすれば動くようになるでしょうか?
0202デフォルトの名無しさん
2010/10/26(火) 06:03:59IEコアを使ってるからIEで動かない物は動かないよ
jsやcssはブラウザ作ってるところ毎で「ぼくのじっそうさいきょう」
やってるから差がある
0203デフォルトの名無しさん
2010/10/26(火) 07:37:36動かないのは
<a href="javascript:void(0);" onclick="hogehoge();">fugafuga</a>
こういう感じのコードです。
0204デフォルトの名無しさん
2010/10/26(火) 07:38:590205デフォルトの名無しさん
2010/10/26(火) 08:51:230206デフォルトの名無しさん
2010/10/26(火) 09:03:57動かす予定のjsとかってどういうメソッド使って渡してるの?
0207デフォルトの名無しさん
2010/10/26(火) 09:18:07同じページにあるformをsubmitしてPOSTしてるようです
0208デフォルトの名無しさん
2010/10/26(火) 14:18:570209デフォルトの名無しさん
2010/10/27(水) 11:03:57Evernote 4は今までのEvernote 3.5とは全く違います。Evernote 3.5
もたくさんの良い機能を持っていましたが、どうしてもそのままでは直
せない問題がありました。ぼやけたフォント、起動時間の長さ、起動時のメ
モ リー使用量、特定のグラフィックカードとの相性の悪さ等の問題は3.5
が使っているWindows .netとWPFのためになかなか改善する事ができ
ませんでした。皆様がよりEvernoteを便利に使って頂けるような新機能を
追加する前に、改善作業ばかりに追われていました。
なので、もっと早く動く、信頼できるC++で最初から作り直す決心をし
ました。使って頂くと分かると思いますが、すばらしい出来映えになりました。こ
の新しいバージョンがこれから新しい機能などを追加していく基盤になります。
0210デフォルトの名無しさん
2010/10/27(水) 14:44:300211デフォルトの名無しさん
2010/10/27(水) 14:49:51Java以前はリンカのためのヘッダがたまにうざったいとおもうがな。
0212デフォルトの名無しさん
2010/10/27(水) 14:56:04要はWPF使えない宣言されたってわけだ
0213デフォルトの名無しさん
2010/10/27(水) 15:31:210214デフォルトの名無しさん
2010/10/27(水) 16:16:320215デフォルトの名無しさん
2010/10/27(水) 20:46:35WPF\(^o^)/
0216デフォルトの名無しさん
2010/10/27(水) 20:51:46要は、Evernote 開発者が C++ な人なんで、慣れない WPF で書いて失敗した感じ。
それがなんか日本語特有の主語抜きに翻訳されちゃってて、
全面的に C++ が信頼置けるみたいな文章になっちゃってる。
0217デフォルトの名無しさん
2010/10/27(水) 21:55:140218デフォルトの名無しさん
2010/10/27(水) 21:57:400219デフォルトの名無しさん
2010/10/27(水) 22:17:03つSilverlight+ActiveX
WPF自体マネージコードで書かれてるので.NETに関わらないWPFというのはありえない
0220デフォルトの名無しさん
2010/10/27(水) 22:36:300221デフォルトの名無しさん
2010/10/27(水) 22:38:41だからウィンドウに貼ってCOMでホスティングしてやればGUIフロントエンドとして使える。
0222デフォルトの名無しさん
2010/10/27(水) 22:44:27WPF捨ててお客様満足度アップだなw
0223デフォルトの名無しさん
2010/10/27(水) 22:56:53Evernote 的に、.NET 使うのがモチベーション上がらなかったんだろうなぁってのもあるだろうけど。
ユーザビリティ的に劣化してる部分もあって、twitterとかではそれをたたかれてたりもするが。
結局、信者はいい1点だけ見て喜び、アンチは悪い1点だけ見てけなす。
0224デフォルトの名無しさん
2010/10/27(水) 23:09:01使う必要がったなら、自前か代わりの何かを持ってこないとならない。
まぁWPFが微妙にうんこなのは同意。
0225デフォルトの名無しさん
2010/10/28(木) 20:00:12Formはイマサラ感あるし、QtとかWTLとか?
0226デフォルトの名無しさん
2010/10/28(木) 20:31:410227デフォルトの名無しさん
2010/10/28(木) 21:16:360228デフォルトの名無しさん
2010/10/28(木) 21:43:54△△は△△で〜みたいなのって誰得
0229デフォルトの名無しさん
2010/10/28(木) 22:00:11バインディングとかゴテゴテの仕組みや描画のせいだから何で書いても一緒
SilverlightのGUIはほとんどネイティブだけどそんなに速くないっしょ
0230デフォルトの名無しさん
2010/10/28(木) 22:10:53AtomのPCで動かしてもそこそこいけるしね。
0231デフォルトの名無しさん
2010/10/28(木) 22:21:56複雑になってくるとWPFとは比べ物にならないくらい重いよ
Silverlightはシンプルな使い方しかしないことが前提だから軽い
0232デフォルトの名無しさん
2010/10/28(木) 23:30:28WinForms+J2EE(WebOTX)が事実上トレンド。
0233デフォルトの名無しさん
2010/10/28(木) 23:53:33いや、それは無いだろう…
0234デフォルトの名無しさん
2010/10/29(金) 00:17:400235デフォルトの名無しさん
2010/10/29(金) 01:43:16WPF は CPU じゃなくて GPU 依存だしね。
あと、Vista か 7 なら軽い。
>>231
Silverlight は GPU の活用度合が低い感じが。
クロスプラットフォームだからある程度仕方がなく。
>>232
いつもの、「MS 製品は3世代目から」ジンクスに従えば、ようやく正式版。
0236デフォルトの名無しさん
2010/10/29(金) 01:55:24社会じゃ仕方なくWin縛りの案件ばかりなんだよ、僕。
0237デフォルトの名無しさん
2010/10/29(金) 18:50:10これのGUIって自作なのかな
0238デフォルトの名無しさん
2010/10/29(金) 18:54:45早くなったのは起動だけ
他は、、まぁわかるよな
0239sage
2010/10/29(金) 19:00:59さらに2014年まで使えるから、
あと2,3年はビジネス用途に絡むソフトにはWPFは鬼門かもしれんね
0240デフォルトの名無しさん
2010/10/29(金) 19:11:550241デフォルトの名無しさん
2010/10/29(金) 20:26:37ほかのFWでもあまり見たことないがw
0242デフォルトの名無しさん
2010/10/30(土) 07:23:20まあそれはなさそうだからwpf使うけど
0243デフォルトの名無しさん
2010/10/30(土) 10:09:16スゲー!と思わせてもどうせ2分で慣れる。
重要なのはWhat the fuckの少ない、驚き最小化の原則に乗った動作。
すなわちUIの良し悪しはフレームワークに依らない。
WPFを使うと微妙な挙動が多くてその実現に無駄に手間がかかるがなw
0244デフォルトの名無しさん
2010/10/30(土) 10:16:58いや別にcocoaはいーやw
>243
いやLonghornのデモの時とかなんか色々すごいUIデモしてたような気がしたんだが…
まぁそれが使いやすいかどうかは別物だけど.
0245デフォルトの名無しさん
2010/10/30(土) 10:26:36ほとんどXAMLだけでアニメーションゴリゴリで動くものを作ることもできるさ。
限度を越えるとウザいだけだがなw
0246デフォルトの名無しさん
2010/10/30(土) 11:56:120247デフォルトの名無しさん
2010/10/31(日) 18:53:520248デフォルトの名無しさん
2010/10/31(日) 18:59:51WPFのWebBrowserと呼ぶほどのものでもない
0249デフォルトの名無しさん
2010/10/31(日) 22:17:37WebBrowserだけでなくどれもがウンコだろが
0250デフォルトの名無しさん
2010/10/31(日) 22:48:370251デフォルトの名無しさん
2010/10/31(日) 22:56:360252デフォルトの名無しさん
2010/10/31(日) 23:23:450253デフォルトの名無しさん
2010/11/01(月) 03:36:430254デフォルトの名無しさん
2010/11/01(月) 09:01:540255デフォルトの名無しさん
2010/11/01(月) 09:29:040256デフォルトの名無しさん
2010/11/01(月) 12:58:36ttp://hato.2ch.net/test/read.cgi/news/1288568171/
0257デフォルトの名無しさん
2010/11/01(月) 13:07:160258デフォルトの名無しさん
2010/11/01(月) 13:33:460259デフォルトの名無しさん
2010/11/01(月) 15:25:38Visual Studio 2010 みたいなものです。
0260デフォルトの名無しさん
2010/11/01(月) 16:47:180261デフォルトの名無しさん
2010/11/01(月) 17:16:420262デフォルトの名無しさん
2010/11/01(月) 21:59:540263デフォルトの名無しさん
2010/11/01(月) 22:03:56http://www.publickey1.jp/blog/10/html5silverlightwindows_phone_7.html
0264デフォルトの名無しさん
2010/11/01(月) 22:06:32そして私はWPFを考えるのをやめた。
0265デフォルトの名無しさん
2010/11/01(月) 22:08:340266デフォルトの名無しさん
2010/11/01(月) 22:27:170267デフォルトの名無しさん
2010/11/01(月) 22:30:450268デフォルトの名無しさん
2010/11/01(月) 23:00:06それ4じゃなくて4 Client Profileとかじゃね?
0269デフォルトの名無しさん
2010/11/01(月) 23:28:020270デフォルトの名無しさん
2010/11/01(月) 23:47:490271デフォルトの名無しさん
2010/11/02(火) 00:11:57WinForms安定だな
サクサク起動するようになったし侮れないな
0272デフォルトの名無しさん
2010/11/02(火) 08:40:090273デフォルトの名無しさん
2010/11/02(火) 15:45:51どんだけ変な書き方してるんだよ
0274デフォルトの名無しさん
2010/11/02(火) 15:58:450275デフォルトの名無しさん
2010/11/02(火) 20:18:17<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:110277デフォルトの名無しさん
2010/11/02(火) 21:36:53同じことをしてみたけど、うちでは警告でなかったし、デザイナにも反映されたよ。
.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:05VS2010Expressです。
ちょっと新しく作って最初から試してみます。
0279デフォルトの名無しさん
2010/11/02(火) 22:14:57Srcフォルダを作って、そこにxamlとcsを全部入れてたんだけど、それだとダメみたい。
普通にプロジェクトフォルダ内なら大丈夫でした。
詳しいことはわかりませんが、参照の基準の場所?みたいのがあるんでしょうか。
試していただいてありがとうございました。
0280デフォルトの名無しさん
2010/11/02(火) 22:20:450281デフォルトの名無しさん
2010/11/02(火) 22:30:40右クリック 追加 新しいフォルダー、ドラッグでどぼどぼ移動、
ってやったので、プロジェクトは大丈夫だとおもいまっす。
(プロジェクトから除外してみたら例外ですた)
0282デフォルトの名無しさん
2010/11/02(火) 23:18:51なんで今までと同じにしないのか理解できない。
IME使わない国には分からないのかな。
0283デフォルトの名無しさん
2010/11/03(水) 00:09:460284デフォルトの名無しさん
2010/11/03(水) 00:12:39夢見すぎだ
現実に戻ってこい
0285デフォルトの名無しさん
2010/11/03(水) 00:45:22それを知っていれば、君はおかしな事を言っていた事に気づくはず。
0286デフォルトの名無しさん
2010/11/03(水) 01:01:33ユーザーの実態に合わせないからWPFはこうなった。
どうやら未来もなさそうだ。
0287デフォルトの名無しさん
2010/11/03(水) 01:13:210288デフォルトの名無しさん
2010/11/03(水) 01:54:24自分こそが三流だと思えないとこが三流の三流たる所以
0289デフォルトの名無しさん
2010/11/03(水) 02:12:26Ctrl+A で「すべて選択」は出来るから、キーバインドはされている。
なんか理由があるのかな?
0290デフォルトの名無しさん
2010/11/03(水) 02:22:58一流の仕事なんだから間違いない。
三流は黙っとけ。
0291デフォルトの名無しさん
2010/11/03(水) 02:31:02自分でどうにかしたらいいじゃないか。
技術的に無理か?
0292デフォルトの名無しさん
2010/11/03(水) 02:37:430293デフォルトの名無しさん
2010/11/03(水) 02:40:110294デフォルトの名無しさん
2010/11/03(水) 02:55:58TextBoxのスタイルのContextMenuに満足のいくContextMenuを設定しておけよ。
もともとTextBoxのメニューなんてあんまり統一されてなかったと思うよ。
0295デフォルトの名無しさん
2010/11/03(水) 08:31:050296デフォルトの名無しさん
2010/11/03(水) 09:13:310297デフォルトの名無しさん
2010/11/03(水) 13:00:290298デフォルトの名無しさん
2010/11/03(水) 19:05:34あった >>23-28
0299デフォルトの名無しさん
2010/11/04(木) 21:37:50非同期で表示するにはどうしたらよいのか、お教えください。
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:50SubWindowのロード処理が重いなら、とりあえず表示だけ済ませて
重いロード処理は非同期にするべき
0301デフォルトの名無しさん
2010/11/04(木) 21:50:08DispatcherにInvokeを送る=UIスレッドで実行する=時間のかかる処理はフリーズしてしまう
のです。
DispatcherPriorityを設定したからって違うスレッドで実行されるわけではないです。
フリーズしないようにするためには別のスレッドで実行するといい。
例えばThreadPool.QueueUserWorkItemとか。
でも、別のスレッドからだとUIスレッドのコントロールに触ると例外が出てしまう。
そこで使うのがDispatcher.BeginInvokeで、UIスレッドにメソッドを送りつけるわけです。
0302デフォルトの名無しさん
2010/11/04(木) 21:52:12WPFは簡単に出来たはず。
0303デフォルトの名無しさん
2010/11/04(木) 22:07:53即答ありがとうございました。
ThreadPool.QueueUserWorkItemでは STAスレッドではないということで
InvalidOperationExceptionが発生するということは
ググったり、自身で実行してみて理解していました。
自身に配置したコントロール(たとえばListBoxやTextBox)に対して
Dispatcher.BeginInvokeで非同期実行することはできていたので
Windowではなぜできないのか、悩んでおりました。
無理、という事が判明したのなら
アドバイス通り、スプラッシュやらプログレスの表示で回避するのが良策のようですね。
0304デフォルトの名無しさん
2010/11/04(木) 22:33:40非同期にやるっつったって、Dispatcher.Invoke の中で重たい処理しちゃいけないのはわかってる?
非同期開始
重たい処理
Dispatcher.Invoke
Window生成&Show
って順でやらないとダメ。
0305デフォルトの名無しさん
2010/11/04(木) 22:57:39ボタンの作成はXAMLでするの?C#で記述するの?
0306デフォルトの名無しさん
2010/11/04(木) 23:02:290307デフォルトの名無しさん
2010/11/04(木) 23:08:550308デフォルトの名無しさん
2010/11/04(木) 23:14:45データバインディングで Button.Content にテキストをバインドとかでなく?
動的に追加なら普通に C# で書くね。
0309デフォルトの名無しさん
2010/11/04(木) 23:19:43昔からそうだね
0310デフォルトの名無しさん
2010/11/04(木) 23:22:54スタイルとかよくわからないですがそれでやってみます
>>307
そうなんですか、まだXAMLでどこまでできるかよく把握していないので
ロジック分離するにも境界線がわかっていない感じです
>>308
動的なのかわかりませんが、ラップパネルにユーザーが文字を入力して作成ボタンを押すと
その文字が書かれたボタンが新しく追加されていくという感じです
0311デフォルトの名無しさん
2010/11/04(木) 23:27:250312デフォルトの名無しさん
2010/11/04(木) 23:29:05そういう用途なら ↓こんな感じでやる。
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:46WPF で余裕。
データバインディングと ItemTemplate 強力。
0315305
2010/11/05(金) 19:08:31もう少しだけ細かく教えてもらえませんか?
ラップパネルには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:02WrapPanelは直接じゃなくてItemsControlのItemsPanelTemplateとして使う
で、この場合のテンプレートはItemsControl.ItemTemplate
> それと作成ボタンが押されたらラップパネルにボタンが追加されるようにする方法もよくわかりません
考え方が違う
A. 自分でやること
・ItemsControl,ItemsControlにObservableCollectionをバインドしておく
・必要なときにObservableCollectionに文字列を追加する
B. 勝手にされること
・ObservableCollectionはデータが追加されたことをItemsControlに通知する
・ItemsControlは増えたデータをDataTemplateをもとに作り上げた要素(ボタン)を自分に追加する
0317デフォルトの名無しさん
2010/11/05(金) 20:33:41http://ufcpp.net/misc/WpfApplication5.zip
0318305
2010/11/05(金) 21:07:11>>317
わざわざ作って頂いてありがとうございます
でもデリゲートいっぱい、ソースみても何を書いているのかよくわかりませんでした
それと起動しても追加ボタンが灰色のままで押せないのですが
今の自分にはレベルが高すぎる上、なぜこうすべきかもわからないので>>315のやり方でとりあえず妥協します
0319デフォルトの名無しさん
2010/11/05(金) 21:08:47コード中でボタン作るのはともかく、コードにColor.DarkGreenとか出てくるのはちょっといただけない
せめてStyle使いましょう
0320デフォルトの名無しさん
2010/11/05(金) 21:08:51おいこらw、セッカクつくってもらったんだから妥協してんしゃねえよ。
つかてめえデリゲートごときでなにびびってんだコラ。
0321デフォルトの名無しさん
2010/11/05(金) 21:10:370322デフォルトの名無しさん
2010/11/05(金) 21:11:150323デフォルトの名無しさん
2010/11/05(金) 21:11:270324デフォルトの名無しさん
2010/11/05(金) 21:12:100325305
2010/11/05(金) 21:23:47本当はスタイルしたいんだけど
C# コードでのstyleを作る方法が見つからなかった
XAMLでのコードはあったけど
でも、C#側で作ったボタンにXAML側で作ったスタイルを適用する
方法もわからなかったので
>>320
デリゲートはずっと避けてきてそれでもwinformsならそれなりのツールが
作れていたので、まった無知です
0326デフォルトの名無しさん
2010/11/05(金) 21:26:020327デフォルトの名無しさん
2010/11/05(金) 21:26:54データはビューから分離しとかないと、すぐに管理しきれなくなるよ。
ほんとにボタン足して終わりの単純なアプリなら >>315 で全然いいんだけど。
0328デフォルトの名無しさん
2010/11/05(金) 21:29:33リソースで Style 作っておいて、
C# 側からリソース読み出せばいい。
てか、デリゲート避けてきたって、そりゃかなり酷いぞ。
C 言語でポインターが理解できませんと同レベルにどうしようもない。
0329デフォルトの名無しさん
2010/11/05(金) 21:30:300330デフォルトの名無しさん
2010/11/05(金) 21:34:170331デフォルトの名無しさん
2010/11/05(金) 21:38:18デリゲートを簡単に書くためにラムダ式が
0332305
2010/11/05(金) 21:38:22最終的には、追加されたボタンをクリックして色反転
DATAGRIDに並べられたファイルにボタン名(タグみたいな感じ)で関連付けして
xmlで書き出して保存までやりたいです
>>328
> >>325
> リソースで Style 作っておいて、
これはできます
> C# 側からリソース読み出せばいい。
これがわかりません
> てか、デリゲート避けてきたって、そりゃかなり酷いぞ。
> C 言語でポインターが理解できませんと同レベルにどうしようもない。
C言語の例えはよくわかりませんが、デリゲート知らなくても
それなりのソフトはできてました。使う必要がなかった感じです
>>329
投げ出して一生デリゲートを学ばないと言っているわけじゃないので
試行錯誤の過程を断片的に捉えて煽るのはやめてもらえませんかね?
あなたはすぐデリゲート理解できの?
とりあえず、完成まで持っていきたいから他のアプローチを試す
ゆとりというより柔軟と言ってほしい
0333305
2010/11/05(金) 21:45:41簡単に書くというより短く書くだけで
結局、デリゲートがどういうものか理解していないと
よりわかりにくくなっただけって感じ
ラムダ式がなかったころからデリゲートを使っていた人向けで
今から始めた人向けじゃない気がする
0334デフォルトの名無しさん
2010/11/05(金) 21:47:12まあ最初はデリゲートを書きなれることかなw
0335デフォルトの名無しさん
2010/11/05(金) 21:51:060336デフォルトの名無しさん
2010/11/05(金) 21:52:360338デフォルトの名無しさん
2010/11/05(金) 21:54:590339デフォルトの名無しさん
2010/11/05(金) 21:55:370340デフォルトの名無しさん
2010/11/05(金) 21:56:08スレッドとか使うときかなあ・・・
以前C#のほかのスレででてたサンプル
http://cs2ch.blog123.fc2.com/blog-entry-84.html
0341デフォルトの名無しさん
2010/11/05(金) 21:57:22コールバック処理とかの実装どうしてんだよ。
わざわざクラスこさえて実施するとかJava上がりのバカだけだろ。
0342デフォルトの名無しさん
2010/11/05(金) 21:57:320343305
2010/11/05(金) 21:57:46そういうこと言い出す人がいると思いましたけど
わかってるでしょ?イベントハンドラは自動で作成されるし
別にデリゲートと意識しなくても使えるということを
動的にボタンを作成する場合も必要だけど
それぐらいはわかります。
とにかく>>317はボタン追加が押せないということで
間違っているところがあるんですよね?
それにあれだけ長くて難しいコードを書かなくてはいけない理由もわからない
ただ、ボタンを追加するだけなのに・・・
WPFやってみたけど、不満しかいまのところない
IDEは異常に重いし・・・ヒントの数も少ない
入力候補などが出ず手動で書かないといけないところが多い
0344デフォルトの名無しさん
2010/11/05(金) 21:58:40Comparerクラスを実装するのはデリゲートと同じだから当然理解できないだろうな
データセットとか使うんだろうか
0346デフォルトの名無しさん
2010/11/05(金) 21:59:29能力がないのを棚に上げて道具のせいとかついったーに書いてろよ
0348デフォルトの名無しさん
2010/11/05(金) 22:01:00理解できなくてすいませんでしたって土下座しろよ。
クソして寝ろ、もうくんなw
0349デフォルトの名無しさん
2010/11/05(金) 22:01:12じゃあ今は覚えなくていいよ
必要になったらここで見たな〜くらいは覚えておけば
0350デフォルトの名無しさん
2010/11/05(金) 22:01:320351デフォルトの名無しさん
2010/11/05(金) 22:03:31from n in コレクション
orderby n.プロパティ1,n.プロパティ2
select n
0352デフォルトの名無しさん
2010/11/05(金) 22:03:51スクリプト言語でちょっとした処理書くときでさえ>>344みたいなソートは使わない方が珍しいくらい
0353305
2010/11/05(金) 22:04:24WPFでは難しく長いコードになってしまうということですよ
0354デフォルトの名無しさん
2010/11/05(金) 22:05:02それデリゲート使ってるよ
0356デフォルトの名無しさん
2010/11/05(金) 22:07:07デリゲートにおける扱いは普通のメソッドと変わらん。
0357デフォルトの名無しさん
2010/11/05(金) 22:07:25エントロピー減らすためにPC使ってるんだで
0358デフォルトの名無しさん
2010/11/05(金) 22:09:050359デフォルトの名無しさん
2010/11/05(金) 22:09:52当たり前
0361デフォルトの名無しさん
2010/11/05(金) 22:11:350362デフォルトの名無しさん
2010/11/05(金) 22:12:020364デフォルトの名無しさん
2010/11/05(金) 22:13:14ビューから状態分離しなくてもテストしきれるような小規模なら、
WinForms の方法論で全然問題ないんだけどもね。
それを超えることやってないなら WPF はオーバースペックか。
0365デフォルトの名無しさん
2010/11/05(金) 22:13:34お前メクラなの?PCモニタ見るの止めれば?
0366デフォルトの名無しさん
2010/11/05(金) 22:14:36ああ、ボタン押せなくしたのはちょい蛇足。
テキスト入力されてないときに、空のテキスト追加しちゃうの?って思ったんで。
ああいう、ビュー内の状態に応じてコマンドの実行可否切り替えるとかも、
割かし GUI ではよくある要件。
0368デフォルトの名無しさん
2010/11/05(金) 22:15:24同じものWinFormsで書いてから言えば?
書いたら戻ってこなくていいけどw
0369デフォルトの名無しさん
2010/11/05(金) 22:15:520372デフォルトの名無しさん
2010/11/05(金) 22:18:28パソコンに馬鹿にされてんだよそれ
0373デフォルトの名無しさん
2010/11/05(金) 22:20:27disable になってる理由が明白な場合には disable にしてた方がいいって感じかな。
Word とかで、クリップボードに何もないときは「貼り付け」が disable になってるでしょ。
まあ、ポイントは、実行可否がコマンドの定義の部分に書かれてるってことかな。
「ボタンが押されたときに」ってやろうとすると、ボタンのイベントハンドラー内にコード書くことになるでしょ。
1つのコマンドに対して、実行と実行可否判定の場所が離れるってのはあまりよくない。
0374デフォルトの名無しさん
2010/11/05(金) 22:22:23フォーカスはずすと切り替わるはず。
キー入力のたびに切り替えたければ、
{Binding NewText} を {Binding NewText, UpdateSourceTrigger=PropertyChanged}
に書き換えて。
0375デフォルトの名無しさん
2010/11/05(金) 22:23:010376デフォルトの名無しさん
2010/11/05(金) 22:25:24なんで disable になってるのかパッと見てわからない場合は disable にせず、
実行されたときにアラート出す方がいいらしい。
でないとユーザーは「この機能は使えないものなんだ」って思うとかで。
0377305
2010/11/05(金) 23:05:40わかりやすいんだろうけど、おれのレベルだと
何を言っているのかわからない
俺はただ、追加ボタンがクリックできない状態になっている
テキスト入力しても出来ない状態
だからずっとできる状態にしてほしいの
どこをどういじればそういう風になるのかもわからないレベルなの
初心が遠く昔の人って、知識がある前提で話すからほんとわかりにくい
0378デフォルトの名無しさん
2010/11/05(金) 23:09:02あっ、ちなみに、>>316 と >>317 は別人よ。
あれじゃわかんないと思ってコード書いた。
余裕あったら説明コメントも入れたと思う。
0379デフォルトの名無しさん
2010/11/05(金) 23:14:01平伏せ下郎
0380305
2010/11/05(金) 23:21:49なんだ別人かー
わからないよね?>>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落ち着け
0382305
2010/11/05(金) 23:27:19初「コピペって何?」
上「クリップボードを中継してデータを写す作業」
初「クリップ・・何それ?」
上「クリップボードにコピーしたデータを保存して、適当な場所にペーストすることだよ」
初「いや、だからクリップってなに?コピーって?ペーストって?それってコピペの説明?」
別の上「Ctrl+C、Ctrl+Vでできる」
初「え?それってどういう意味?」(←キーボードのキーだということすらわかっていない)
今こういうのを体験した気がするわ
0383デフォルトの名無しさん
2010/11/05(金) 23:28:07すまん、正直 >>316 は最後まで読んでない。
普通に、WPF の基本ラインで実装しただけ。
まあ、WPF に慣れた人でも、現状は Forms 時代よりはだいぶ better にはなってるけど
その代償にめんどくささも幾分かあって、まだ過渡期って認識かも。
0384デフォルトの名無しさん
2010/11/06(土) 00:13:00あるある
0385305
2010/11/06(土) 00:22:25これってさプログラマにとって根幹にかかわることだと思うんだよね
自分で理解できればそれでいいってソフトを作っている人はこれでいいだろうけど
初心者でも直感的に操作できるソフトを作るというのは難しそう
現に>>317はtabでフォーカス移動しなければ使えなかった
これって初心者からしたらバグでしかない
結局機能はしょぼいけど、初心者が作った初心者のためのソフトが使いやすかったりする
上級者で初心者の気持ちもわかる人って解説サイトでも少ないよねー
0386デフォルトの名無しさん
2010/11/06(土) 00:24:58地道にいけ
0387デフォルトの名無しさん
2010/11/06(土) 00:25:52となると、「UX デザインが専門であってプログラミング詳しくない」って人がやれなきゃ意味ないのよね。
そこは WPF は「分業を推し進める」って方向に舵を切ってるわけだけども。
XAML 側は UX デザイナーが Blend とか使って作る、
プログラマーはビューには触れず、ビューモデルを作るっていう。
0388デフォルトの名無しさん
2010/11/06(土) 00:26:01拡張性0、ボタン大量、etc...
アラアラと思う…
0389デフォルトの名無しさん
2010/11/06(土) 00:27:25Binding の記述削ってたんだけど。
その結果、バグだと言われて、
一方、「C# 側がコード量多い」って言われたのはさすがにちょっとへこむ。
0390305
2010/11/06(土) 00:33:47{
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:421日でWPF使いに変身したというのに
0394デフォルトの名無しさん
2010/11/06(土) 00:47:10そういうことだ。
多くの人が使ってないんだよ、bind。
で、不意に規模が膨らんじゃってからギャップが越えられなくなる。
0395305
2010/11/06(土) 00:47:59使ったこと無いよ
ソースが変わったら、ターゲットのプロパティを書き換えるコードを書いてた
イベントハンドラ大量、更新させるためのコード
結果、ある程度の規模になると、更新一部し忘れたり、どこで更新されたかわからなくなったり
イベントハンドラが大量で一体どこで何をしているのかわからなくなった
だからそんなことにならないような簡単なユーティリティだけ作ることに
例えば、空フォルダを見つけて削除や、削除したファイルをリストアップするだけなど
ファイラーから実行できるような手軽なものを作っていた
0397デフォルトの名無しさん
2010/11/06(土) 00:51:54WinFormsでもさ…
UserControlでView作ってBindで繋げて、振る舞いはインターフェイスで定義してってやるだろ…
その辺がもうちょい賢くなって便利になったのがWPFなんだし…
0398デフォルトの名無しさん
2010/11/06(土) 00:54:200399デフォルトの名無しさん
2010/11/06(土) 00:54:59もうPythonとかスクリプト言語使えば?
君はそのほうがよっぽど幸せになれると思うよ
0400305
2010/11/06(土) 00:57:18使えるなら使うさ
俺は基本どぼんに乗っているコードをコピペすることしかできないさ
2001C# 発売当日に魔が差して買ったおれがさ
0402デフォルトの名無しさん
2010/11/06(土) 00:59:51そうなると、古い、現代的には問題が明らかになってるコードって、人類の抱える負債だなぁ。
0403デフォルトの名無しさん
2010/11/06(土) 01:00:12そういうのはコマンドラインで使えた方がどう考えても便利です
0404デフォルトの名無しさん
2010/11/06(土) 01:00:31かっこよくねぇよww
かっこいい人が作った GUI がかっこいいだけだよ。
0405デフォルトの名無しさん
2010/11/06(土) 01:03:31うーむ…
0406デフォルトの名無しさん
2010/11/06(土) 01:04:14まぁ宗教議論よりはいいか
0407305
2010/11/06(土) 01:06:09文脈理解しろよ
今作ろうとしているのは動画ソフトのフロントエンド的なものを作ろうとしているの
多分完成したら新しい時代がくる
アイデアだけはすばらしいんだよおれって
そこらのフリーソフトを超える使い易いソフトをいくつも妄想してきたが
プログラミングができない
0408デフォルトの名無しさん
2010/11/06(土) 01:09:27なんか急に口調変わったぞw騙り?w
0409デフォルトの名無しさん
2010/11/06(土) 01:12:29名前は違えどやってる事は一緒だし
0410デフォルトの名無しさん
2010/11/06(土) 01:20:140411デフォルトの名無しさん
2010/11/06(土) 02:53:26肝心のサポートが話にならないチープさなところ
こう書くと老害が「HTMLだって手書きでやってきた」とかほざくんだがナンセンス
今時のCSS&JavaScriptごちゃごちゃに入り交じってる案件メモ帳でやってみろってんだ
0412デフォルトの名無しさん
2010/11/06(土) 02:57:54windowsFormで作る程度のならVisualStudioでドラッグ&ドロップで行けるだろ
0413デフォルトの名無しさん
2010/11/06(土) 04:02:01こういうの見ると
あぁ、この人ってWPF使った事ないのに批判してるんだな と哀れに思うわ。
実際は>>412なのにまるで分かってない。
0414デフォルトの名無しさん
2010/11/06(土) 04:04:14反論があるなら根拠を述べよ
0415デフォルトの名無しさん
2010/11/06(土) 04:05:49日本語がわからないとは
0416デフォルトの名無しさん
2010/11/06(土) 07:30:20どうせVB6のクラサバみたいなのしか作ったこと無いくせにw
0417デフォルトの名無しさん
2010/11/06(土) 08:11:04GridViewの列の並びや幅などを同期させたいのですが、どのようにすればいいのでしょう
今はページを切り替える際に、列を作り直してるんですが、非常に無駄なことをしている気がします
GridView.Columnsあたりに、共通のソースをバインディングするとかできませんかね
0418デフォルトの名無しさん
2010/11/06(土) 08:46:46まあ、しゃあない。
Adobe 製品とか見てみなって。
ビジュアルデザイン系のツールみんなあんな感じだから。
0419デフォルトの名無しさん
2010/11/06(土) 09:17:30いいんだよ雑魚グラマが増えて仕事が尻拭い中心になったんだ
ここらで敷居をあげて少し淘汰されたほうがいい
0420デフォルトの名無しさん
2010/11/06(土) 11:08:22その程度のモンをわざわざWPFで作る意味ってなんだよwwwww
不自由環境に快感を見出すマゾなのか?
0421デフォルトの名無しさん
2010/11/06(土) 11:11:12デザイナでコントロール貼り付けてプロパティ弄ってダブルクリックしてイベントハンドラ書くだけ
WinFormsと何が違う?
0423デフォルトの名無しさん
2010/11/06(土) 11:18:440424305
2010/11/06(土) 14:10:31デリゲートもインターフェースもやったことなかったが
一晩かけていろいろ調べてなんとなくわかった
独自のコマンドを作るにはICommandインターフェースを使ったクラスを自作しないといけなくて
そのためにDelegateCommandクラスが作られていて、普通はここに実行する内容を書けばいいはずだけど
汎用的に使えるように、具体的な実行内容はViewModelでして、DelegateCommandクラスでは
デリゲートを宣言して実行メソッドを呼び出しているって感じかな?
もしくは、コンストラクタの引数にメソッドを変数みたいに渡したいからDelegateを使っているのか?
そこらへんはよくわからないが、なんとなくやっていることはわかった気がする
これって、メニューやボタンがクリックされたらどうするかというイベントハンドラを大量に書かないためにと、
別にボタンを作って作成ボタンとは違った振る舞いの独自のコマンドを作るときも
DelegateCommandクラスを利用することで、無駄なコードを書かないようにするため
こういうややこしいことをしているのは、こういう理由だからって理解でOK?
0425305
2010/11/06(土) 14:14:09>これって、メニューやボタンがクリックされたらどうするかというイベントハンドラを大量に書かないためにと、
ボタンを作成するために、メニューやボタンのイベントハンドラを大量に書かないためにと
0426デフォルトの名無しさん
2010/11/06(土) 14:15:40ViewModelをViewに依存させないため。
イベントハンドラを追加するときってイベントを受ける側で送る側にイベントハンドラを登録するので
ViewModelの中でイベントハンドラをViewに結び付けるとViewModelがViewに依存してしまう。
そこで逆にViewModelでは「俺はこれだけのコマンドをサポートしている。勝手に呼び出せ」という風に
コマンドを公開するだけにして、コマンドを具体的なイベントに結び付けるのはView側で行う。
0427デフォルトの名無しさん
2010/11/06(土) 14:38:49ViewModelはViewのシャドウなわけである程度依存するのは仕方ないのでは?
例えば選択状態をViewModelが知っているだけでも、
ViewModelはViewが選択機能を持つことを知っていることになる。
MVVMのそもそもの動機(自動回帰テスト、スキンに依存しない構造)を考えると、
ViewModelはViewの機能には依存しても、Viewの"インスタンスに"依存しない、が正しい気がする。
0428305
2010/11/06(土) 15:02:44依存させないのは
例えばボタンクリックで作成だったのを変更して
メニューからのみボタンを作成にすることにしたときに
イベントハンドラだと書き換えたりしなければいけないから
GUIの変更がしづらくなる
だからコマンドバインディングにコマンドを登録だけして
どのコマンドをどの時点で呼ぶかは気にすることは無いという感じかな
0429デフォルトの名無しさん
2010/11/06(土) 15:03:31なりすまし乙
実に程度が知れるな
0430デフォルトの名無しさん
2010/11/06(土) 15:07:180431デフォルトの名無しさん
2010/11/06(土) 15:08:57ただメソッドだとXAMLにちょろっと書くだけで自動的に呼び出されるというわけにはいかないので
ちょっと回りくどい仕組みになってるだけ
0432デフォルトの名無しさん
2010/11/06(土) 15:19:45ViewがViewModelの用意する機能を使うかどうかは自由なので、
ViewModelがViewを知っているとはいえないんじゃないかな。
WPFでコマンドっていうなんか回りくどいのを推奨してるのは、
XAMLがプロパティと相性のいい言語だからということと、
実行の可否(CanExecute)を持たせることができるってことくらいかな。
ObjectDataProvider使えばXAMLで直接メソッドを指定することもできるはず(未確認)
だけどこれは記述が汚くなるよね。
0433305
2010/11/06(土) 15:22:40依存させたくないだけなら、DelegateCommandクラスでViewModelのExecuteの内容を書けばいいですよね?
依存させないようにするにはRoutedCommandをコマンドバインディングに登録するだけでいいのですから
ViewModel内にコマンドの実行内容Executedを書くということは、
本質は違うけど、WinformsでいうとイベントハンドラをForm1に大量に書いていくのと同じような気がするんだけど?
コマンドはコマンドで分けた方がよくないですか?
0434デフォルトの名無しさん
2010/11/06(土) 15:30:04ViewModelとコマンドを分けても見づらくなるだけで意味ないだろ。
ViewとViewModelを分けるのは主にViewModelの単体テストやViewの変更を行いやすくするため。
ご察しの通り大規模開発向けの仕組みだから要らないと思うなら要らない。
0436305
2010/11/06(土) 15:40:26変更耐性を強くするために、コマンドで通話する
で、コマンドの実行内容はViewModelに依存しているから、
ViewModelで実装するためにコマンドからデリゲートで呼び出す形にすると
こんな感じかな
わかってくるとちょっとおもしろくなってきた
0437デフォルトの名無しさん
2010/11/06(土) 15:41:240438305
2010/11/06(土) 18:14:51奇妙な世界ができあがるわけですね
囲い込んでるのか首を絞めてるのかわかりませんね
プログラミングシェーダの世界ですね
0439デフォルトの名無しさん
2010/11/06(土) 18:25:180440305
2010/11/06(土) 18:31:010441デフォルトの名無しさん
2010/11/06(土) 18:33:420442デフォルトの名無しさん
2010/11/06(土) 18:34:24一体何が問題になるのやら、さっぱり解らん。
概念を理解するのに、大して学習コストが掛かる訳でも無いし。
(MVVMを厳密に適用した実装を行うのは、若干慣れが要るが)
0443デフォルトの名無しさん
2010/11/06(土) 19:04:11MとVを直接バインドしちゃうと融通効かないから
Vに近いレイヤを一個経由しようってだけだよ
コンポジッション系のフレームワークと融合してややこしいことになってるとこがあるけど
0444305 ◆Jzt/EX0TGY8T
2010/11/06(土) 19:39:05成り済ましやめてもらえませんか?
MVVSなんてデリゲートもインターフェースも知らない初心者のぼくが知るわけないでしょ
0445デフォルトの名無しさん
2010/11/06(土) 19:55:350446デフォルトの名無しさん
2010/11/06(土) 20:13:08WPFで開発するときの単なる方法論の一つ。
0447デフォルトの名無しさん
2010/11/06(土) 21:44:39玄人になるとMVVM一択になってくる。
0448デフォルトの名無しさん
2010/11/06(土) 21:53:35>>447
初心者がいきなり全部理解するのは無理だから、最初は深く使わずにM-Vから始めるのは悪い事ではないだろう。
0449305 ◆Jzt/EX0TGY8T
2010/11/06(土) 22:01:31まんま俺が徹夜で勉強してたことじゃないかw
しかも検索したらトップでDelegateCommandの解説してるし
もしかして教えてくれたのはそこのひと?
0450デフォルトの名無しさん
2010/11/06(土) 22:03:460451デフォルトの名無しさん
2010/11/06(土) 22:17:310452デフォルトの名無しさん
2010/11/06(土) 22:37:34教条主義はJavaあたりでやってくれ
0453デフォルトの名無しさん
2010/11/06(土) 23:04:500454デフォルトの名無しさん
2010/11/07(日) 08:18:01public 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というプログラムを作りたいんだけどWinFormよりWPFのほうが容易にできますか?
0458デフォルトの名無しさん
2010/11/07(日) 10:43:520459デフォルトの名無しさん
2010/11/07(日) 11:09:570460デフォルトの名無しさん
2010/11/07(日) 12:23:290461デフォルトの名無しさん
2010/11/07(日) 14:07:01さんくす
0462305 ◆Jzt/EX0TGY8T
2010/11/08(月) 15:30:23Form1がView.xamlとView.csの二つのファイルに分かれただけで
表示部分とそれをコントロールする部分はくっついたままなのね
ただ、WinFormで苦労したGUI部分が簡単にいじれるようになっただけで
Form1にゴリゴリコード書くようにView.csにゴリゴリ書いてける
MVVMのデザインパターンもWinFormでもやってきたことだからそれほど難しくない
どうせなら、Viewのコントロールする部分もXamlでしか書けないようにして
C#のコードではロジックしか書けないようにしてしまえばいいのに
そうすれば、これはViewに関する事だから〜と意識的にロジックと表示部分をわけなければいけない
ということがなくなるんじゃない?
0463デフォルトの名無しさん
2010/11/08(月) 16:33:030464デフォルトの名無しさん
2010/11/08(月) 17:30:03世の中の流れと考えについて行けてない
最低でも5言語使って10のフレームワークを使え
言う事が無茶苦茶すぎる
0465デフォルトの名無しさん
2010/11/08(月) 17:44:53そのくらいは普通にごろごろ居るけどな。
フレームワークは使えるじゃなくてそれぞれの言語で
作ってきたじゃねえと基礎力がどうだかなって感じがする。
0466デフォルトの名無しさん
2010/11/08(月) 18:13:210467305 ◆Jzt/EX0TGY8T
2010/11/08(月) 19:12:58viewに対してプロパティ以外で操作するのは無理にしちゃえばいい
それなのにロジックと混同して使えるようにしているから
解説サイトも簡潔に説明するためにイベントハンドラにロジック直接書いて
それ見た初心者がそういうもんだと思って真似するわけじゃない
VIEW言語、Viewコントローラー言語、VIEWModel言語、Model言語
とか作ってさ、完全に分けてしまえばいいんだよ
0468デフォルトの名無しさん
2010/11/08(月) 19:20:28ちょっと待て、落ち着いて考えて欲しい。
お前さんXAMLとC#だけでさえ手に余ってるのに、さらに倍に増やせとか馬鹿だろw
0469デフォルトの名無しさん
2010/11/08(月) 20:34:35人間の記憶量には限りがあるんだよ
0470デフォルトの名無しさん
2010/11/08(月) 20:47:56どうせ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苦労して覚えた知識でも否応なしにたった数年で陳腐化するのに何でプログラミングなんてやってんの?
>>467
最初はそういうもんだ。基礎を勉強してないのに最初から応用編とか無謀すぎる。
初心者相手にいきなりpatterns & practicesのPrismみたいなの持ってきたら一瞬で挫折する。
0473305 ◆Jzt/EX0TGY8T
2010/11/08(月) 21:12:12複雑なビューってどういうのかよくわからないけど
WinFormではマンガミーヤと同じようなUIのソフトを作った
それプラス、書庫内の画像を自動で画像変換して圧縮し直すなどの機能をつけたりなど
でも途中でかなり面倒なことになってやめたけど
今回はそれに動画も閲覧できる機能をつけて作ってみようと奮闘中です
0474デフォルトの名無しさん
2010/11/08(月) 21:22:14TreeViewとか、タブドキュメントインターフェイスとか
0475デフォルトの名無しさん
2010/11/08(月) 21:24:52イラストレーターみたいなドローソフト作って味噌
0476305 ◆Jzt/EX0TGY8T
2010/11/08(月) 21:32:21数学ちゃんと勉強しなかった低学歴だから無理w
XNAで3D版シムシティみたいなのを作ろうとしたけど
適当にビル立てただけでやめちゃった
0477デフォルトの名無しさん
2010/11/08(月) 21:40:050478305 ◆Jzt/EX0TGY8T
2010/11/08(月) 21:52:21それでも座標変換に線形代数の知識が必要だから
そういうの勉強したし、シェーダーについても勉強して
3Dの格子マップにランダムにビルが建つようにはできたけど
それで満足しちゃった
今のゲームって個人でできるレベルじゃないから
市販ゲームと比べてあまりにもしょぼすぎる
0479デフォルトの名無しさん
2010/11/08(月) 22:01:06居つくなよ馬鹿
0480デフォルトの名無しさん
2010/11/08(月) 22:02:40暇なやつプログラミングしようぜ!
http://yuzuru.2ch.net/test/read.cgi/news4vip/1288937968/
ここでやれ
0481デフォルトの名無しさん
2010/11/08(月) 22:03:03語学と同じでコマンドや文法覚えるだけだから文系向きじゃねーの
0482デフォルトの名無しさん
2010/11/08(月) 22:09:33WPFでゲームのUI作るのも面白いんじゃないか。
SlimDXのWPF Interopあたりを使う。D3DImageに描画してDirectXから使ってもいいけど
アニメーション使って作ればUIだけは市販ゲームぽくなるぜw
0483デフォルトの名無しさん
2010/11/08(月) 22:10:21やめろ馬鹿
俺の心休まる一時を邪魔すんな
0484305 ◆Jzt/EX0TGY8T
2010/11/08(月) 22:42:44MVVMで画像を表示するソフトを作る場合
モニタ、再生機器、画像の入ったDVDをイメージして作ろうと思っています
VMのプロパティでImagesを公開し、画像ファイル名などはDataGridに表示され
選択することで画像が表示される。ここまではバインドなどでxamlだけでできる
ボタンを押したらDataGrid内の選択項目が移動して次の画像が表示される動作
↑View.csで記述?
ボタンを押すとDataGridの項目削除と画像ファイルの削除をするといった動作
↑この場合はどのようにすればいいですか?
ファイルの削除はコマンドでVMにやらせるとして、項目の削除はどうすればできますか?
0485デフォルトの名無しさん
2010/11/08(月) 22:46:110486デフォルトの名無しさん
2010/11/08(月) 22:50:44選択項目を取得設定するプロパティをVMに定義
Viewには何もさせなくていい。ほんとにバインドだけでいい。
DataGridの項目もVMに持たせておいてViewではバインドするだけ。
0487305 ◆Jzt/EX0TGY8T
2010/11/08(月) 23:06:26なるほど、それぐらいやらないと分離したことにならないんですね
WinFormで作ったときはそこの境界が曖昧で苦労した
ありがとうございます
>Viewには何もさせなくていい。ほんとにバインドだけでいい
これを何度も言い聞かせながら作ります
0488デフォルトの名無しさん
2010/11/09(火) 00:09:54そう考えてる輩が多いからデスマる
0489デフォルトの名無しさん
2010/11/09(火) 00:12:590490デフォルトの名無しさん
2010/11/09(火) 00:20:08そもそもとして、自然言語でも、文法は理系の方が強いよ、実は。
詩的表現の崩れた文読むのは苦手だけど。
0491デフォルトの名無しさん
2010/11/09(火) 00:22:11その関数の中身を書くのは理系向き
0492デフォルトの名無しさん
2010/11/09(火) 00:28:190494デフォルトの名無しさん
2010/11/09(火) 02:05:040495デフォルトの名無しさん
2010/11/09(火) 04:26:540496デフォルトの名無しさん
2010/11/09(火) 05:04:140497デフォルトの名無しさん
2010/11/09(火) 05:16:03英語で口喧嘩して理系を黙らせた俺が通るよ
Ich wer ich streite mich in Englisch, und schlos physischen Wissenschaftsgehen zu
私は主張します誰、私は英語の私です、そして、ロックされる身体的なWissenschaftsgehen
0498305 ◆Jzt/EX0TGY8T
2010/11/09(火) 05:40:350499デフォルトの名無しさん
2010/11/09(火) 06:38:500500デフォルトの名無しさん
2010/11/09(火) 20:37:15のWidthとHeightって変えられないんでしょうか?
WindowStateをいったんNormalにしてWidthとHeightを変えて
またMaximizedを設定すれば一応できたのですが
画面がちらつくのでこの手はあまり使いたくないです。
0501デフォルトの名無しさん
2010/11/09(火) 21:12:09できますん
0502デフォルトの名無しさん
2010/11/09(火) 22:12:18VisualStateManagerについて教えてください。
やりたいことは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これほど「わかりません」を漂わせる書き込みも略
0505デフォルトの名無しさん
2010/11/11(木) 02:31:180506デフォルトの名無しさん
2010/11/11(木) 07:56:25教えてくれって書いてあるし
0507デフォルトの名無しさん
2010/11/11(木) 08:05:120508デフォルトの名無しさん
2010/11/11(木) 09:20:040509デフォルトの名無しさん
2010/11/11(木) 09:22:39難しい方だよねWPFは
0510デフォルトの名無しさん
2010/11/11(木) 09:27:38周りがスルーしている中わざわざレスしていただきありがとうございます。
質問する場所間違えたなぁと後悔していましたが、
このまま誰にも相手にされずに流れていくのも寂しいなと思っていたところでした。
これを励みに今日もWPFの勉強に精を出したいと思います。
0511デフォルトの名無しさん
2010/11/11(木) 14:02:51コンパイルできない
0512デフォルトの名無しさん
2010/11/11(木) 15:25:40Separatorのアイテムにも、サイズグループを適用したい場合はどのようにすればいいですか。
たとえばVisual Studioのポップアップメニューだと、セパレータはアイコンのセルに
重っていないけど、それと同じようなことがしたいです。
SubmenuItemTemplateKeyに適用するコントロールテンプレートと同様のものを
SeparatorStyleKeyスタイルのTemplateプロパティに適用して、同じサイズグループを
使いたいと思ってたんですが、セパレータのアイテムだけうまくグループ化されません。
0513デフォルトの名無しさん
2010/11/11(木) 18:17:35クライアントのOSに依存すると思うのですが
WPFのコントロールはOSに依存しないのですか?
xpしかないので確かめられないんですけど
0514デフォルトの名無しさん
2010/11/11(木) 18:19:200515デフォルトの名無しさん
2010/11/11(木) 18:23:290516デフォルトの名無しさん
2010/11/11(木) 18:37:13DataGridコントロールやデータ・バインディングがサポートされ、例えば、データベース・オブジェクトをドラッグ&ドロップするだけで、それらの機能をアプリケーションに貼り付けられるようになっていたりします。
これってどうやってするの?
0517デフォルトの名無しさん
2010/11/11(木) 18:49:100518デフォルトの名無しさん
2010/11/11(木) 18:52:04by 503
0519デフォルトの名無しさん
2010/11/11(木) 19:00:410520デフォルトの名無しさん
2010/11/11(木) 19:26:190521デフォルトの名無しさん
2010/11/11(木) 20:42:380522デフォルトの名無しさん
2010/11/11(木) 22:02:52試行錯誤したと書いても何を試しどうなったのか書かない、
デバッグ作業を他人に丸投げした挙句に
"始めたばかり"を錦の旗のように掲げるようなカキコじゃなきゃ
大抵回答はもらえると思うぞ。
0523デフォルトの名無しさん
2010/11/11(木) 22:07:18嫌なら答えなければいいだろ
始めたばかりって前置きするのは普通の会話だろ
やさしく教えてねー
初心者的間違いしてますーって意味含んで言ってるんだろ
おまえは日常で人と会話できるのか?
0524デフォルトの名無しさん
2010/11/11(木) 22:09:23ある程度プログラミングできてもずっとこき使われるだけの平止まりだろな
根暗で誰からも相手されず、飲みにも誘ってもらえない童貞
いつか鬱病になって自殺するんだろうな
0525デフォルトの名無しさん
2010/11/11(木) 22:15:540526デフォルトの名無しさん
2010/11/11(木) 22:18:200527デフォルトの名無しさん
2010/11/11(木) 22:25:10またおまえか
0528デフォルトの名無しさん
2010/11/11(木) 22:28:50気持ち悪い、早くやめればいいのに
0529デフォルトの名無しさん
2010/11/11(木) 22:29:300530デフォルトの名無しさん
2010/11/11(木) 22:46:490531デフォルトの名無しさん
2010/11/12(金) 00:07:34>コントロールの背景色を変えることです。
この説明があって動かないっていったら十分すぎる説明だろ
おまけに貼っつけてあるコードだって大して長くないし
最初から教える気ないのに偉そうなこと言うな
まあ俺も教える気ないけどな
0532デフォルトの名無しさん
2010/11/12(金) 00:12:570533デフォルトの名無しさん
2010/11/12(金) 00:23:230534デフォルトの名無しさん
2010/11/12(金) 00:28:540535デフォルトの名無しさん
2010/11/12(金) 20:20:420536デフォルトの名無しさん
2010/11/13(土) 09:16:53http://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:03Windows Formとは作り方がかなり異なってるな
依存関係プロパティとか、以前はなかったものがあるみたいだし。
解説サイトも少ないし、C#5.0が出るくらいまで様子見しててもよさそうだな。
0538デフォルトの名無しさん
2010/11/13(土) 15:36:45その姿勢だと一生やらないに一票
0539デフォルトの名無しさん
2010/11/13(土) 15:47:070540デフォルトの名無しさん
2010/11/13(土) 15:49:040541デフォルトの名無しさん
2010/11/13(土) 16:06:10まったく同じ機能のFormアプリケーションとWPFアプリケーションを比べた場合、
どちらが好まれるの?
0542デフォルトの名無しさん
2010/11/13(土) 16:28:260543デフォルトの名無しさん
2010/11/13(土) 16:37:29機能が同じでUXが違うということ?
無駄に重くて面倒くさいUIになってればWPFは避けられるし
美しくスッキリ見やすくなっていればWPFを選ぶでしょ
0544デフォルトの名無しさん
2010/11/13(土) 16:43:160545デフォルトの名無しさん
2010/11/13(土) 16:44:50GF9800だとfpsが30しかでない
スクロールするとfpsは一桁
相当重いね
0546デフォルトの名無しさん
2010/11/13(土) 17:01:080547デフォルトの名無しさん
2010/11/13(土) 17:30:59クソワロタ
<Button>
<Button>
</Button>
</Button>
ってやったらボタンの中にボタンが入った
0548デフォルトの名無しさん
2010/11/13(土) 17:31:50機能もUIも完全に同一のアプリケーションが二種類有ったら、
一般ユーザは 「どっちでも良い」 って言うだろう。
一部のナード層は、 「実行速度が」「メモリ消費量が」 とか言うかも知んないけど
未だにIEのシェアが6割も有る様に、多数のユーザはそこまで気にしない。
(強いて挙げるとすれば、古いOSを使ってるユーザだと
.NET Framework必須な点が、若干面倒に思われるかもだが)
WinFormかWPFかってのは、ユーザ視点でどうこうじゃなく
開発側が、生産性を考えてどちらを使うか選ぶ物なんじゃないか?
0549デフォルトの名無しさん
2010/11/13(土) 17:37:35ならわざわざ間口が狭いWPFは使わんだろう。
何かしらWPFならではの機能を使って快適・高機能になるとかの理由で使うんじゃないの。
あとは将来webに持っていく可能性有りとかならSilverlightへの移植がしやすいとかで使うかもしれない
0550デフォルトの名無しさん
2010/11/13(土) 17:40:29ああ、あるある。
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この辺の問題な気がする
相対パスが役立たずになるのはどうにかして欲しいものだ
0554デフォルトの名無しさん
2010/11/13(土) 20:54:40コンテンツモデルの柔軟さは認めるけど、結局見た目の組み合わせじゃろくなもんで
きないんだよなあ。コントロールの振る舞いは組み合わせじゃどうにもならないか
ら、実はあまり柔軟でも簡単でもない。WPFのコンボボックス一つとっても最初
はリストボックス使って実装しようとしたけど、結局スクラッチから作ってるし。ボ
タンの中にボタンみたいな、なんの意味もないもんしかできない。
0555デフォルトの名無しさん
2010/11/13(土) 20:58:410556デフォルトの名無しさん
2010/11/13(土) 20:59:150557デフォルトの名無しさん
2010/11/13(土) 21:17:50GridやStackpanelは便利だと思う
0558デフォルトの名無しさん
2010/11/13(土) 21:30:03結局部品の中身を理解していないと使いこなせない。
0559デフォルトの名無しさん
2010/11/13(土) 21:48:230560デフォルトの名無しさん
2010/11/13(土) 21:53:310561デフォルトの名無しさん
2010/11/13(土) 21:55:110562デフォルトの名無しさん
2010/11/13(土) 22:13:380563デフォルトの名無しさん
2010/11/13(土) 22:16:280564デフォルトの名無しさん
2010/11/13(土) 22:25:060565デフォルトの名無しさん
2010/11/13(土) 22:30:56そうだけど、コメントにした瞬間に萎える
0566デフォルトの名無しさん
2010/11/13(土) 22:33:54ぼのぼののおとうさんみたいだな
0567デフォルトの名無しさん
2010/11/13(土) 22:34:55カスタムコントロール作ってるけど、なんか作り方が独特な感じで難しい。
Xaml側でイベントハンドラ登録できないので、要素のName属性使ってコード側から
インスタンス取得、そしてハンドラ登録という流れになる。
処理を結びつけるのはコマンドでやれってことなんだろうけど、
コマンドは発生タイミングを細かく制御できないよね?
例えば、2桁入力できるTextBoxを横に何個も並べたとして、
2桁入力した時点で自動的に右にフォーカス移動させるようにしたいときって
イベントだとTextBoxChangedとか使えばいいけど、コマンドではどうするのか。
なんだかいつものWindowとかUserControlでやる書き方とは違って、
コード側の記述が増えてしまってる。
0568デフォルトの名無しさん
2010/11/13(土) 22:38:14できるだろ
0569デフォルトの名無しさん
2010/11/13(土) 22:38:57クラックソフトでも作ろうとしてるの?
0570デフォルトの名無しさん
2010/11/13(土) 22:41:05どうやるの?
>>569
扱いやすいコントロールをつくろうとしてるんだけど、なんでそう思ったの?
0571デフォルトの名無しさん
2010/11/13(土) 22:43:05ちゃんとしたコントロールを作るためのもの。WinFormsでもカスタムコントロールは
OnPaintオーバーライド必須だっただろ。
0572デフォルトの名無しさん
2010/11/13(土) 22:45:50ボタン作ってダブルクリックしてみ
0573デフォルトの名無しさん
2010/11/13(土) 22:49:27ResourceDictionaryに書いてるからデザイナ使えないよ。
<Button Click= って書いても候補すらでないしコードビハインドが無いから指定できない。
これはカスタムコントロールの話だからね。
>>571
やっぱエレガントに書くのは諦めたほうがいいかな。
WinFormsやったことないからどうなってたのかわからん。
0574デフォルトの名無しさん
2010/11/13(土) 22:51:32SilverLight4をインストールしたらできる
0575デフォルトの名無しさん
2010/11/13(土) 22:54:14流れ的にちょっと分かりにくいので何が出来るのか詳しく頼んます。
デザイナ使ってのデザイン?
0576デフォルトの名無しさん
2010/11/13(土) 23:01:43SilverLight 銀の光ワロタ
0577デフォルトの名無しさん
2010/11/13(土) 23:07:22Silverlight使わないとしてもWPF使うなら必ずインストールしましょう
0578デフォルトの名無しさん
2010/11/13(土) 23:10:460579デフォルトの名無しさん
2010/11/13(土) 23:17:07無くても普通にインテリセンス機能してるけど?
例えばブラシのカラー候補とか出る
自前のプロパティなどは候補には出てこないけど
Silverlight4 Toolkit 入れたらそれもできるようになる?
0580デフォルトの名無しさん
2010/11/13(土) 23:51:060581デフォルトの名無しさん
2010/11/13(土) 23:52:52データ項目に対応するものならバインド元のデータを消す
0582デフォルトの名無しさん
2010/11/13(土) 23:56:56List<string>にボタン名の一覧が入っていて
一覧から削除すると、そのボタンが削除されるといったこともできますか?
0583デフォルトの名無しさん
2010/11/13(土) 23:58:43DataTemplateでググれ
0584デフォルトの名無しさん
2010/11/14(日) 00:03:07ObservableCollectionじゃなくて?
0585デフォルトの名無しさん
2010/11/14(日) 00:05:06どうやったらできなかったの?
0586デフォルトの名無しさん
2010/11/14(日) 00:05:150588582
2010/11/14(日) 00:33:18データクラスで保持してるコレクションデータを
ObservableCollectionに毎回追加しないといけないから
やっぱりList<string>のボタン名でそれぞれのボタンで表示して
任意のボタンを削除するならDataTemplateですか?
0589デフォルトの名無しさん
2010/11/14(日) 00:59:03List をラップした INotifyCollectionChanged 実装クラス作るのがいいと思うけど、
面倒だからよく ObservableCollection にコピー持たせる。
モデルとかビューモデル側でコレクションに要素足したときに
即座にビューに反映されて欲しければ INotifyCollectionChanged 必須。
0590デフォルトの名無しさん
2010/11/14(日) 01:19:59カスタムコントロールのXamlはルート要素がResourceDictionaryだからハンドラ指定はできないはずだが。
0592デフォルトの名無しさん
2010/11/14(日) 01:30:04さすがにそんな上のレベルでListに依存するのは設計としてまずい
0593582
2010/11/14(日) 01:38:57ビューモデルにINotifyCollectionChangedを実装しても
List<T>.Addでは変更通知されないですね
List<T>クラスを自作してそこにINotifyCollectionChanged入れるしかないのかな
そうなるとObservableCollectionでプロパティ公開してデータクラスのList<T>の値を追加していく方が楽なのかな
0594デフォルトの名無しさん
2010/11/14(日) 03:57:45そうだった
0595デフォルトの名無しさん
2010/11/14(日) 04:53:27<ItemsControl ItemsSource="{Binding Names}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Content="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</WrapPanel>
上記だとただ縦に並ぶだけです
パネルのデータテンプレートってどうすればいいですか?
かれころ5時間ぐらいぐぐってもわかりません
助けて
0596デフォルトの名無しさん
2010/11/14(日) 05:29:43もっと柔軟に、レイアウト方法を自作したいなら
Panel クラス継承して MeasureOverride とかを自作。
0597デフォルトの名無しさん
2010/11/14(日) 06:02:38質問する前からその単語でもぐぐってます
ItemsPanelTemplateでもぐぐってるけど
同じようなコードが見つからないんです
前にテスト用に作った時はあっさり作れたのでメモってなかったのが失敗
0598デフォルトの名無しさん
2010/11/14(日) 06:30:440599デフォルトの名無しさん
2010/11/14(日) 07:06:02世界的に見て日本のプログラマのスキルが低い所以なんだろうね
優秀なソフトはいつも海外
ゲームも海外
日本は自社製の糞重いフレームワークで時代遅れのゲームしか作れない
0600デフォルトの名無しさん
2010/11/14(日) 07:25:420601デフォルトの名無しさん
2010/11/14(日) 08:29:47むしろ基礎すら理解できていないコード切り貼り魔がいることが原因だと思う。
5時間ググる前に何が足りないか3分考えろ。
0602デフォルトの名無しさん
2010/11/14(日) 08:34:220603デフォルトの名無しさん
2010/11/14(日) 14:38:39データクラスでList<T>公開して
周りから弄繰り回すこと自体が間違ってるよ
実際に実装の変更に対応できてないわけで、publicフィールド公開してんのと一緒だぞそれ
0604デフォルトの名無しさん
2010/11/14(日) 18:39:16お前はデータクラスの値をVMで毎回コピーしてVに公開してんのか?
0605デフォルトの名無しさん
2010/11/15(月) 07:58:04頭使えよ。。。
0606デフォルトの名無しさん
2010/11/15(月) 20:41:58<Button Height="3*"/>
<Button Height="2*"/>
みたいに。
今までだとちょっとだけ面倒だったな
0607デフォルトの名無しさん
2010/11/15(月) 22:22:570608デフォルトの名無しさん
2010/11/15(月) 22:40:570609デフォルトの名無しさん
2010/11/15(月) 23:10:23多言語対応したりフォントサイズ変更したりに強いし。
0610デフォルトの名無しさん
2010/11/15(月) 23:12:350611デフォルトの名無しさん
2010/11/15(月) 23:18:050612デフォルトの名無しさん
2010/11/16(火) 01:53:34古いWindows Formアプリケーションだと
デザイナで変更された部分は基本的に隠されててキモかった。
Button1.click += button1_Click;
この部分が隠されてて
button1_Click(object,eventargs)
だけ現れててマジきもい
0613デフォルトの名無しさん
2010/11/16(火) 06:46:06WPFの方が別ファイルでコソコソ作られててキモイ。
0614デフォルトの名無しさん
2010/11/16(火) 07:08:07WinFormsも別ファイルだろ
0615デフォルトの名無しさん
2010/11/16(火) 07:27:200616デフォルトの名無しさん
2010/11/16(火) 08:01:22直接弄れるWPFのが便利
0617デフォルトの名無しさん
2010/11/16(火) 10:24:090618デフォルトの名無しさん
2010/11/16(火) 11:04:03どこが隠蔽されてるって?XAMLが理解できないって話か?だとしたらお前が悪いw
あれは宣言型言語でオブジェクト ツリーを構築しているだけ。
全てWinFormsに似た等価な手続型言語で表すことができるが、
誰もやろうとしないのはそれがメンテナンス性を著しく損ねてしまう結果に終わると知っているから。
ま、WPF使った事ない人は表面だけ見て隠蔽されてるように感じるのだろう。
0619デフォルトの名無しさん
2010/11/16(火) 11:21:09プログラミングにどっぷりつかってる人間ってコミュニケーション能力低いってよく言われるが
こういうことなのでしょうな。
0620デフォルトの名無しさん
2010/11/16(火) 12:18:550621デフォルトの名無しさん
2010/11/16(火) 13:38:02最初、C#の文法だけでなくこっちも覚えなきゃならないのかよ
とか思ってたら案外簡単だった。
<Button Height="200">
みたいに書けばいいだけみたいだ。
むしろButton button1=new Button();button1.Height=100;
とかやるより簡単かもしれんね。
0622デフォルトの名無しさん
2010/11/16(火) 13:51:170623デフォルトの名無しさん
2010/11/16(火) 13:58:12トグルのIsCheckedとメニューのIsOpenをバインドして、表示させることはできたけれど、
右ボタンで、通常通りポップアップさせたときにはContextMenuService.Placementで指定したならびになるのに
左ボタンで、バインディング通して表示させたら、マウスカーソルの位置にポップアップされてしまう
どうすればいいの? プログラム書いたらすむんだろうけど
0624デフォルトの名無しさん
2010/11/16(火) 14:01:52何じゃこの気持ち悪い書式はー!!
とプリプリした。
0625デフォルトの名無しさん
2010/11/16(火) 14:23:21煽りだけで本題書いてないwww
0626デフォルトの名無しさん
2010/11/16(火) 18:05:23いろんなサンプル見てると、閉じるボタンを付けたり、各タブに関係しそうなんだけど、
じぶんでちっちゃいコード書くとなんにも変わらない
0627デフォルトの名無しさん
2010/11/16(火) 18:17:28TabControl.ItemsSourceにバインディングしてる?
0628デフォルトの名無しさん
2010/11/16(火) 18:51:440629デフォルトの名無しさん
2010/11/17(水) 02:43:45ただ文字表示するだけでしょ?ほとんど同じに見えるんだが
何が違うの
0630デフォルトの名無しさん
2010/11/17(水) 03:35:51Labelはコントロールの説明用。
アクセスキーを設定して他のコントロールにフォーカス移したりできる。
TextBlockは少量のテキストをUIに表示するための物。
1行の表示に最適化されているけど数行まで高いパフォーマンスを発揮する。
数行以上のテキストを表示する場合はFlowDocumentを使う。(下に行くほど多機能で重い)
FlowDocumentScrollViewer スクロール表示
FlowDocumentPageViewer 1ページ単位のスクロール
FlowDocumentReader ユーザが表示モードを切り替える場合に使う
---
この辺は低レベルで滅多に使わないけど
Glyphs と GlyphRun を使用してグリフ レベルでテキスト コンテンツを生成するのが最速。
書式指定された文字列を描画したいならFormattedTextが適している。
0631デフォルトの名無しさん
2010/11/17(水) 03:40:59慣れたらもっと早くなるのか・・・?
保守は楽だけど、作るまでが大変
やっぱりコンソールアプリが最強だな
0632デフォルトの名無しさん
2010/11/17(水) 04:15:11説明が書いてないし
タイマーコンポーネントとか
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例えば、VM上で公開しているbool値のプロパティ IsEnableとバインドしているとして、
IsEnableがTrueの場合: Label Content="可能"
IsEnableがFalseの場合: Label Content="不可能"
といったことがしたいです。
TriggerかDataTriggerを使えばできそうなんですが、書き方がよくわからず、Intellisenseに怒られてばっかりで。
0635デフォルトの名無しさん
2010/11/17(水) 11:46:470636デフォルトの名無しさん
2010/11/17(水) 12:20:52普通にDataTriggerの中にSetter入れて文字列変更できるはずだけど
そういう可/不可みたいな一般的なものだったらIValueConverter実装してもいいと思う
その方が使いまわしが楽
0637デフォルトの名無しさん
2010/11/17(水) 16:13:40x : 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:180640デフォルトの名無しさん
2010/11/17(水) 17:36:170642デフォルトの名無しさん
2010/11/17(水) 19:45:000643デフォルトの名無しさん
2010/11/17(水) 19:50:39スキルもないのに自己顕示欲は人よりも強いの?
0644デフォルトの名無しさん
2010/11/17(水) 19:59:41いつ変な吹き出し方してくるか分からんし判別出来た方がいい
0645デフォルトの名無しさん
2010/11/17(水) 21:25:51まぁコテなくてもすぐ判別できるぐらい鬱陶しいけどなw
いつも変わらぬアホさに安心感すら覚えるようになってきた。
人並みの頭はないけど少しは身に付けて前進している点は評価したい。
こんなのでも使いもせずに見当違いの所を叩いてる連中よりは遥かにマシ
なぜそのようにしているのかひとつひとつ調べていくこと
そうすれば今の俺みたいにWPFマスターになれる
俺の作り方はまずコンソールアプリを作る
ロジックだけに集中するため
そしてどうしてもコンソールじゃ足りないGUI部分が見えてくる
そしたらそのロジックを利用してWPFでGUIを作る
このアプローチはWPFに最適だと思う
Winフォームの場合、その手軽さからまずGUIを作りながら
いろいろイメージしていって、データやコントロールするクラス
を作ったりするだろうけど、WPFではおすすめしない
WPFではまず、データ構造とロジックから作り始めた方が効率がいい
簡単なツールの場合はWPFが必要ない場合が多いしね。
0647デフォルトの名無しさん
2010/11/17(水) 21:44:070648デフォルトの名無しさん
2010/11/17(水) 21:46:310649デフォルトの名無しさん
2010/11/17(水) 22:47:35コンソールと比べんなw
まあ、マニュアル作らず使ってもらえるとか、
たいていの人でも触れるとかそういう足かせはめるとコンソールの方がかえって楽だけど。
0650デフォルトの名無しさん
2010/11/17(水) 22:47:530651デフォルトの名無しさん
2010/11/17(水) 22:50:160652デフォルトの名無しさん
2010/11/17(水) 23:11:060653デフォルトの名無しさん
2010/11/17(水) 23:19:53今気がついたが、ComboboxにAllowDropを設定したけど縁にしかdropできない…
PART_EditableTextBoxにもAllowDropを設定しろってことかw
0654デフォルトの名無しさん
2010/11/17(水) 23:20:36「かっこいい外観」が特徴の一つらしいが
それ使うのはExpress Brendとかいう70000円もするソフト必要らしいな。
単純な外観のならVisual Studioでもいいけど、3D表示やあにめーしょん駆使しまくって派手なソフトは
きついらしい。
0655デフォルトの名無しさん
2010/11/17(水) 23:25:24Adobeのひとしきり入ってるやつだから。
0656デフォルトの名無しさん
2010/11/17(水) 23:26:29それこそExpressですら対象だから定価は罠。
0657デフォルトの名無しさん
2010/11/17(水) 23:27:330658デフォルトの名無しさん
2010/11/17(水) 23:28:29確かにどうとでもなる。
0659デフォルトの名無しさん
2010/11/18(木) 00:01:080660デフォルトの名無しさん
2010/11/18(木) 00:17:29上の人はそれがわかってるから買ってくれんのです
0661デフォルトの名無しさん
2010/11/18(木) 00:18:20MSもそう言ってる。
0662デフォルトの名無しさん
2010/11/18(木) 00:35:06まずVSでWPFアプリケーション作成して
MainWindowとかいうのが出てくるから、XAMLでName="MainWIndow"
に変更
次にSHIFT+CTRL+Aで新しい項目→WPFウィンドウ
これで二つ目のWPFのほうにName="SubWindow"
ってやって
MainWindowのコンストラクタの部分に
SubWindow.Show()
みたいに書いても、SubWIndowは存在しません
とか言われる。
0663デフォルトの名無しさん
2010/11/18(木) 01:00:06かっこよくて使いやすいならそれがいいね。
>>662
子ウィンドウ作成
SubWindow subWnd = new SubWindow();
subWnd.Owner = this;//親ウィンドウのインスタンス
subWnd.Show();
0664デフォルトの名無しさん
2010/11/18(木) 01:06:230665デフォルトの名無しさん
2010/11/18(木) 02:19:170666デフォルトの名無しさん
2010/11/18(木) 03:05:37テキストボックスとボタンを配置して、テキストボックスに書かれている内容が
ボタンの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二重引用符入れ子にすんなよw
文字列の中に二重引用符入れたいなら(XAML,C#に限らず)普通エスケープするでしょ "\""
引用符を入れ子にしたいなら二重引用符["]の中に引用符[']入れるってのもよくある一般的な方法。
なんでこんな初歩的な事に気が付かないんだw
0670デフォルトの名無しさん
2010/11/18(木) 07:23:04いろいろ捗るぞ
0671デフォルトの名無しさん
2010/11/18(木) 09:51:57XML だからしょうがないだろ。
あと、Content="{Binding ...}" の方はマークアップ拡張、
<Binding ... /> の方は要素構文で、XAML のパース方法が違う。
0672デフォルトの名無しさん
2010/11/18(木) 16:32:12XAMLのコードエディタがバグや使いづらい点が多すぎる
ダメだこりゃ
0673デフォルトの名無しさん
2010/11/18(木) 18:33:560674デフォルトの名無しさん
2010/11/18(木) 20:04:58WPFより先にXML覚えれ
0675デフォルトの名無しさん
2010/11/19(金) 00:45:10表示されない。2010 使いたいよい
0676デフォルトの名無しさん
2010/11/19(金) 14:45:47複数の同じようなコントロールがあるときそのコード上の配置を同じにするにはどうやればいい?
<Rowdefinition Height=なんちゃら name=なんちゃら VerticalAlignment=なんちゃら・・・ その他/>
<Rowdefinition Name=なんちゃら margin=なんちゃら VerticalAlignment=なんちゃら name=なんちゃら 他/>
みたいなぐちゃぐちゃしたコードになってなんとなく気持ち悪いんだけど上と下を自動整理するにはどうしたらいい?
そういう昨日ないの?
0677デフォルトの名無しさん
2010/11/19(金) 14:50:13配置を同じって、どういう意味だ。同じ箇所にまとめるということなのか。
同じ座標に重ねて配置するという意味なのか。
気持ち悪いけど上と下を自動整理ってなんだ。
質問が曖昧過ぎる。
0678デフォルトの名無しさん
2010/11/19(金) 14:51:380679デフォルトの名無しさん
2010/11/19(金) 14:56:530680679
2010/11/19(金) 14:57:530681デフォルトの名無しさん
2010/11/19(金) 15:05:46外部ツールにXML整形ツールでも登録した方がいいと思う。
0682デフォルトの名無しさん
2010/11/19(金) 15:06:460683デフォルトの名無しさん
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要素名と属性って次元の違う話なんだが
0685デフォルトの名無しさん
2010/11/19(金) 20:37:140686デフォルトの名無しさん
2010/11/19(金) 21:15:05その例がきもいわw
0687デフォルトの名無しさん
2010/11/19(金) 21:36:25プロジェクトで「誰だ!せっかく俺が整理したソースを!」とか言い出さんようにな
0688デフォルトの名無しさん
2010/11/19(金) 22:49:080689デフォルトの名無しさん
2010/11/19(金) 23:07:11言うだろ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:130693デフォルトの名無しさん
2010/11/20(土) 18:10:54<Button.Style> // ButtonのStyleプロパティが
<Style TargetType="Button"> // Styleクラス
〜
</Style>
</Button.Style>
Buttonの子はContent
</Button>
0694デフォルトの名無しさん
2010/11/21(日) 20:44:39フォントにもよるけど、ニコニコという言葉に下線を加えると、
字と下線が重なってしまって、非常に読みづらくなってしまいます。
0695デフォルトの名無しさん
2010/11/21(日) 20:59:240696デフォルトの名無しさん
2010/11/21(日) 21:12:08ありがとうございました。
0697デフォルトの名無しさん
2010/11/22(月) 00:16:38C言語コンパイラ、Visual C#、Ruby
それでもプログラミングは全然はやることはない。
WPFなんて素晴らしいものなのに、注目されてなさすぎる。
0698デフォルトの名無しさん
2010/11/22(月) 00:23:06みんな一体何を書いてるのだろうと時々不思議になる
0699デフォルトの名無しさん
2010/11/22(月) 00:33:18一般的に普及しているWindowsだと、プログラミングの第一歩の敷居が高すぎるんだと思われ。
開発環境があって、書籍があっても、辞書一冊を渡されて「この本を翻訳しなさい」と言われてる状態だからなぁ。
SmalltalkやEmacsみたいに、ベースである程度使える環境に機能を付け足していくって言う方が今は敷居が低そうだ。
あと、最近の環境はプログラムのエントリーポイントが判りづらいのが多い…
0700デフォルトの名無しさん
2010/11/22(月) 02:31:490701デフォルトの名無しさん
2010/11/22(月) 04:38:26関数型言語のことですねわかります
0702デフォルトの名無しさん
2010/11/22(月) 16:20:55実装剥き出しのオブジェクト指向でどう考えても初心者向きじゃないし
多くの初心者がプログラムと聞いてイメージするGUIアプリ開発には使い物にならんのに
0703デフォルトの名無しさん
2010/11/22(月) 17:03:300704デフォルトの名無しさん
2010/11/22(月) 17:15:19person.name="仙石";
のとき
<Button.Content="私は"+person.name+"です"。/>
で
私は仙石です
person.nameが"管"に変わった瞬間
私は管です
って表示されるみたいなことやりたいんだけど。
0705デフォルトの名無しさん
2010/11/22(月) 17:38:47以前はちょっとした変換にもコンバーターが必要になって面倒だった。
MultiBindingと組み合わせれば姓・名が別々になっててもXAMLだけで結合できる。
0706デフォルトの名無しさん
2010/11/22(月) 17:41:400707デフォルトの名無しさん
2010/11/22(月) 17:54:55そういうTipsみたいなのってどこに書いてるの?
WIndows Formだとテクニック集みたいなページがいっぱいあるけど
WPFは小技/裏技みたいなページがないから困る・・・
0708デフォルトの名無しさん
2010/11/22(月) 19:43:34あちこちのブログでも取り上げてあるから、検索してたらその内たどり着くんじゃないか。
0709デフォルトの名無しさん
2010/11/22(月) 19:58:08何やるにしてもBindingやナンチャラTemplateでお好きにどうぞという話になるので、
結局その辺から勉強することになる。
0710デフォルトの名無しさん
2010/11/22(月) 20:14:20テンプレートを利用すれば
なんかキモイもの作れるね
ボタンにTextBlockをテンプレートに組み込んで
テキストボックスのようなボタンを作ったり。
0711デフォルトの名無しさん
2010/11/22(月) 21:07:14wpfは個人がちくちく作るツール向けの開発者ツールなんかじゃないし。
winformの時代もonpaintをオーバーライドしてなんかするなんて滅多に無かっただろ?
wpfの胆は見た目周りは実はどうでも良くて、MVCをきちんと分けるためのインフ
ラが揃ってることだと思うんだけどなあ。
0712デフォルトの名無しさん
2010/11/22(月) 21:21:48玄人になると見た目周りにこだわりを持つようになる
0713デフォルトの名無しさん
2010/11/22(月) 21:24:19要求されたことを完璧にこなすだけ。
0714デフォルトの名無しさん
2010/11/22(月) 21:42:190715デフォルトの名無しさん
2010/11/22(月) 23:00:25office製品は昔はヘルプがイルカだった。
検索したい文字を入力してください
とかいう味気ないダイアログボックスを出すよりイルカのほうがよかったんだろう。
office 2007からも
今までのメニューバー
(ファイル 編集 表示とかいう文字ベースのやつ)を完全に撤廃し、
今までのやり方や操作性を犠牲にしてまでリボンとかいうグラフィカルな項目にした。
Microsoftにとっては見た目が非常に大事なんだろう。
0716デフォルトの名無しさん
2010/11/22(月) 23:25:530717デフォルトの名無しさん
2010/11/22(月) 23:38:14俺はイケメンクラスを継承してないのでリア充になれなかった。
俺も顔のテンプレートを修正したい。
0718デフォルトの名無しさん
2010/11/22(月) 23:40:40お前の心の中にな!
0719デフォルトの名無しさん
2010/11/22(月) 23:41:29dataContextとかいうオブジェクト型の特殊な変数があって
そこになんか代入すればいいんだな!?
じゃあバインディングしたいデータがいっぱいあったらどうするんだ!?
dataContextはひとつしかないぞ!
なんか方法あるらしいが、わかんねええええええええええ
0720デフォルトの名無しさん
2010/11/22(月) 23:50:50結合があるんだそんなわけあるめえ
0721デフォルトの名無しさん
2010/11/22(月) 23:53:04>>715
UXを重視した結果
0722デフォルトの名無しさん
2010/11/23(火) 00:35:34殺意を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おまいら、よくわかってるじゃん
0725デフォルトの名無しさん
2010/11/23(火) 01:30:01MS擁護派の俺でもイルカは邪魔だと思うわw
0726デフォルトの名無しさん
2010/11/23(火) 01:37:310727デフォルトの名無しさん
2010/11/23(火) 01:50:32Vistaからその辺気にしなくてよくなった
0728デフォルトの名無しさん
2010/11/23(火) 02:09:24メニューなど入れ子になってる場合、親メニューをいじるだけでいいから楽チンだわ
0729デフォルトの名無しさん
2010/11/23(火) 02:12:01まあでも、擁護派・アンチ問わずありとあらゆる方面から「要らない」と言われた結果、
次バージョンでとっととイルカ消してくるのはいいところだと思う。
0730デフォルトの名無しさん
2010/11/23(火) 02:29:27なつかしいな
0731デフォルトの名無しさん
2010/11/23(火) 02:46:08>つぶやき始めてから、これまでにいただいたつぶやきで、一番多いのが「お前を消す方法」。。。たしかに、いろいろと言われてたのは知ってましたが。。。キュッ #saeko2010
0732デフォルトの名無しさん
2010/11/23(火) 03:11:17WPFアプリ作った時に最初に出てくるMainWindowにテキストボックスが二つあって
その両方がバインドするやり方はわかった。
binding elementname=textbox path=text
みたいにやればいいだけみたいだ。これは簡単だった。
じゃあMainWindowの他に、CTRL+SHIFT+Aで新しい項目→WPFウィンドウ(名前はWindow1)を作り
その二つ目のWindow1にテキストボックスを配置し
Window1.TextBoxとMainWindow.TextBoxをバインドさせる方法はどうやればいいか教えてくれ。
0733デフォルトの名無しさん
2010/11/23(火) 03:16:250734デフォルトの名無しさん
2010/11/23(火) 08:32:560735デフォルトの名無しさん
2010/11/23(火) 12:17:420736デフォルトの名無しさん
2010/11/23(火) 12:22:45一応、Grid のセル内の相対 Margin になるので、
Canvas よりは幾分かウィンドウサイズ変更に強いと思う。
0737デフォルトの名無しさん
2010/11/23(火) 17:04:07一体何がどうしてこんなことになったのか分からないからどうやって改善すればいいのやら。
0738デフォルトの名無しさん
2010/11/23(火) 17:09:5030行だと何かやらかしてるとしか思えんな
0739デフォルトの名無しさん
2010/11/23(火) 18:52:10CanvasPanelというコントロールは御座いません。
0740デフォルトの名無しさん
2010/11/23(火) 19:14:200741デフォルトの名無しさん
2010/11/23(火) 19:39:430742デフォルトの名無しさん
2010/11/23(火) 19:58:070743デフォルトの名無しさん
2010/11/23(火) 20:40:55ワンパスで描画できるの?
0744デフォルトの名無しさん
2010/11/23(火) 20:43:50どういうのを言ってるかわからんがwinformでもグラデーションブラシを使えば2色の合成は簡単だけど
0745デフォルトの名無しさん
2010/11/23(火) 20:44:22いざ実際にアプリ作るのは設計がむじゅいね。
以前作ったFORMアプリを移植しようとしたらイベントぐちゃぐちゃで我ながら萎え萎え。
がんばる。
0746デフォルトの名無しさん
2010/11/23(火) 20:57:22MVVMは実際に設計すると非常に悩ましい。
・Command内の処理からダイアログをどうやって出そうか?
・フォーカス制御にはViewのインスタンスが必要じゃん
・値の検証はMでするの?VMでするの?
・"最大値"、"最小値"のようなパターンってどうやってエラーだすのよ
・数値入力フォームにアルファベットを入れたらどこでどうエラー処理する?
・一つのMで複数のVMが居る場合どうすんのよ、コレ
こういう綺麗にMVVMが当てはまらない場所全てで頭を抱え込むことになる。ガンバレ。
0747デフォルトの名無しさん
2010/11/23(火) 21:24:38・VMのダイアログをだすよ処理にViewからインジェクト。だすよというよりIConfirmとかそんな感じ。
・フォーカスはViewですればいい。Focusなどの状態自体がVM、Mまたーなら話は別だが。
・MがVMからしかいじられないならVMで。でないなら両方ヤッとけ。
・VMでエラー吐いて表示などなどViewでやっとけ。
・上と同様。
・Observerパターン使え。
0748デフォルトの名無しさん
2010/11/23(火) 22:08:360749デフォルトの名無しさん
2010/11/23(火) 23:38:55外枠を担当するMVVMセットがあって、さらにタブ毎にMVVMセットがあるような
モデル?
0750デフォルトの名無しさん
2010/11/23(火) 23:52:49その上位に、ドキュメントマネージャー的なのが居るのかな。
ウィンドウ自体のVMがドキュメントマネージャー持ってて、
タブごとのVMがドキュメント持ってるって感じじゃないかな。
0751デフォルトの名無しさん
2010/11/23(火) 23:54:18Evernoteクライアントのversion 3をダウンロードして動かしてみれ。
0752デフォルトの名無しさん
2010/11/24(水) 01:33:55やっぱりそんな感じよね
WPF自体経験ないからうんうん唸る
>>751
あれは重かった…
0753デフォルトの名無しさん
2010/11/24(水) 01:39:320754デフォルトの名無しさん
2010/11/24(水) 01:57:42オプション設定のVは作ったのだけど、この後どのようすればいいですか?
Vの起動方法とVの設定値の取得方法が想像つかないんですが
0755デフォルトの名無しさん
2010/11/24(水) 02:01:15従来のタブ切り替えみたいな方式じゃなくて、
XAMLらしくリンクとして実装してあげるといいだろうね。
0756デフォルトの名無しさん
2010/11/24(水) 03:01:47TextBox.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{
get{return str[i];}
}
をバインドする
iのsetterでhogeのpropertyChangedをおこす
0758デフォルトの名無しさん
2010/11/24(水) 03:53:39そもそも 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<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そろってるコントロールやパネルとかが優秀すぎて
XAML使ってもいいけど
仮に全部C#コードで書いたとしても別に問題にならない
0762デフォルトの名無しさん
2010/11/25(木) 01:58:040763デフォルトの名無しさん
2010/11/25(木) 02:05:10プログラムの外観とロジックを分離させるために作った
みたいに書いてるけど
俺みたいな外観もロジックも一人で造らなきゃならないぼっちにとっても
勉強したほうがお得なの?
0764デフォルトの名無しさん
2010/11/25(木) 02:11:53というより、使わなきゃUIデザイナーの支援を受けられないんだから、嫌でも使うことになる。
0765デフォルトの名無しさん
2010/11/25(木) 05:03:31外観とロジックを分離することとぼっちは関係ないよ
0766デフォルトの名無しさん
2010/11/25(木) 05:54:52宣言的にオブジェクトを配置するXAMLと、
手続処理を中心としたプログラムコード。
普通の静的なUIデザインには、前者の方が向いてるよね。
0767デフォルトの名無しさん
2010/11/25(木) 06:01:04ローカルでhtml+css+javascript流し込んで実行してるような感じかな・・・
WinFormで凝ったGUIやると面倒だな〜->ブラウザコントロールが結構使えるなあ->WPFでいいじゃん
みたいな感じ
まー必要ない人には必要ないかもしれない
0768デフォルトの名無しさん
2010/11/25(木) 06:07:55それはUIデザインのコーディングスタイルだけの話じゃないか?
WPFは強力なバインディング機構の方がキモだろ。
0769デフォルトの名無しさん
2010/11/25(木) 06:52:410770デフォルトの名無しさん
2010/11/25(木) 07:23:37UIデザイナー?そんな形態持ってる企業なんてない
0771デフォルトの名無しさん
2010/11/25(木) 08:39:44きっと
0772デフォルトの名無しさん
2010/11/25(木) 09:43:230773デフォルトの名無しさん
2010/11/25(木) 10:26:050774デフォルトの名無しさん
2010/11/25(木) 13:55:390775デフォルトの名無しさん
2010/11/25(木) 13:57:490776デフォルトの名無しさん
2010/11/25(木) 13:59:460777デフォルトの名無しさん
2010/11/25(木) 14:33:56まだ小規模なツールでWinFormsより手間がかかると思ってる人居るんだ。
使ってから騒ぐ分だけコテハンのアイツの方がよっぽどマシだな。
0778デフォルトの名無しさん
2010/11/25(木) 14:48:200779デフォルトの名無しさん
2010/11/25(木) 14:51:070780デフォルトの名無しさん
2010/11/25(木) 15:05:56お前らの脳味噌を俺の脳味噌にデータバインドしてくれよ
0781デフォルトの名無しさん
2010/11/25(木) 15:19:00一万人分ぐらいの脳と繋がるから
0782デフォルトの名無しさん
2010/11/25(木) 15:21:39Canvas上のControlに拡張プロパティを設定したいのだけどうまくいかない。
C#のIExtenderProviderにあたるWPFの機能ってなんでしょ?
DependencyPropertyでごちゃごちゃとやらないといけない?
0783782
2010/11/25(木) 18:31:490784デフォルトの名無しさん
2010/11/26(金) 03:10:23ゲームや簡易ペイントソフト作成用ですか
0785デフォルトの名無しさん
2010/11/26(金) 04:07:37たとえばButton Width=button1.Height+30
みたいな足し算や掛け算を行ったりできないの?
こういうことしたかったらC#のコードでやらないと無理?
0786デフォルトの名無しさん
2010/11/26(金) 04:28:26それでも無理ならバインドしてコンバーターで計算させるとかじゃね?
0787デフォルトの名無しさん
2010/11/26(金) 09:01:28で、フォームがリサイズされたらセルの大きさもその割合に応じて変わる。
こんなプログラムはWindows Formのほうがいいのかな?
0788デフォルトの名無しさん
2010/11/26(金) 09:47:33グラフィックきれい = ゲーム って発想やめようよ。
いわゆる可視化、見える化とかが有効とされるものならなんにでも応用効く。
>>785
コンバーター書いて Binding するか、
データコンテキストに渡した ViewModel 内で +30 するか。
どっちにしろ C# コード書くね。
>>787
リサイズへの追従とかそれこそ WPF 向きじゃない。
0789デフォルトの名無しさん
2010/11/26(金) 09:52:22MVVMの場合イベントはすべてDeleteCommandを通して書くの?
0790デフォルトの名無しさん
2010/11/26(金) 10:02:04自分が無理なくやれる方法でやることが重要。
0791デフォルトの名無しさん
2010/11/26(金) 10:16:04むしろビヘイビアで書く方がいいよ。
0792デフォルトの名無しさん
2010/11/26(金) 10:31:21リストに追加された時にBindingで値を取得するってことでいいのかな
0793デフォルトの名無しさん
2010/11/26(金) 12:41:13何か良い方法ないですか?
テンプレートみたいなものは自分で作れるんだっけ?
0794デフォルトの名無しさん
2010/11/26(金) 13:42:47必要ならPrism Template Packでも使えば
0795デフォルトの名無しさん
2010/11/26(金) 13:45:030796デフォルトの名無しさん
2010/11/26(金) 14:09:36なにそれ?
0797デフォルトの名無しさん
2010/11/26(金) 21:02:090798デフォルトの名無しさん
2010/11/26(金) 22:58:04テンプレートでできなくもない。t4 templateでぐぐると、いくつかmvvmのコード自動生成の作例が出てくる。
WPFはもっとコードの自動生成を取り入れないと普及しないだろうねえ。
イベントハンドラのスタブをタブキー二回で作ってくれるぐらい簡単に。
0799デフォルトの名無しさん
2010/11/27(土) 01:28:160800デフォルトの名無しさん
2010/11/27(土) 07:31:38DependencyProperty実装するときのの凶悪なコーディング量はどうにかしてほしいもんだ
0801デフォルトの名無しさん
2010/11/27(土) 11:22:15あれはほんと後付けらしい醜さがあるな・・
lispのマクロとか欲しくなる
F#のワークフローとかコード引用符使ったらすっきり書けるかな(よく知らないけど)
0802デフォルトの名無しさん
2010/11/27(土) 13:15:23まぁ、メンテも含めたらそれでも十分に極悪だがなw
0803デフォルトの名無しさん
2010/11/27(土) 13:37:58そんなのあったんだ
http://msdn.microsoft.com/ja-jp/library/z41h7fat.aspxに載ってないのに…
でもコールバックは自分で追加せんといかんのが片手落ちだな
0804デフォルトの名無しさん
2010/11/27(土) 13:38:29イゾンプロパティの話で
propdpのインテリセンスのこと書いてるのほとんどないよね
ぶっちゃけ、細かい使用とか話してpublic static readlyうんちゃらかんちゃら作る必要があります
ってかくより、これらはおまじないです
propdpでイゾンプロパティが作れます
だけでいいと思うんだが。
0805デフォルトの名無しさん
2010/11/27(土) 13:44:260806デフォルトの名無しさん
2010/11/27(土) 13:47:110807デフォルトの名無しさん
2010/11/27(土) 19:39:55さぁ、private static readonlyは先頭に並べるのです、
そしてプロパティはコンストラクタ、イベントの後ろです。
イゾンプロパ…何それ?」
FxCop先生「
アホかぼけ、なんでこんな糞コードを書…XAMLから自動生…しるかボケ!」
言語構文に組み込んでくれとまではいわないが、
せめて自社ツールだけでもどうにかしてくれ
0808デフォルトの名無しさん
2010/11/28(日) 13:55:50つかってるよー
3次元プロットはグラボ必須だし、
4次元の可視化はシェーダが欲しい。
0809デフォルトの名無しさん
2010/11/28(日) 18:13:020810デフォルトの名無しさん
2010/11/28(日) 18:21:32機能美って言葉を知ってるかい
VimだってEmacsだってあれはあれで美しいのだ
0811デフォルトの名無しさん
2010/11/28(日) 18:29:02オサレ⇔地味って軸と 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派手でセンス悪いだけだろう
0816デフォルトの名無しさん
2010/11/28(日) 22:05:10おしゃれなの?それ
楳図かずおみたいな奴だな
0817デフォルトの名無しさん
2010/11/28(日) 22:08:320818デフォルトの名無しさん
2010/11/28(日) 22:12:430819デフォルトの名無しさん
2010/11/28(日) 22:26:270820デフォルトの名無しさん
2010/11/28(日) 22:29:10の点々がいいよね
ボタンなんかどんなGUIフレームワークでも動かせるけどお前ボタン動き回る画面なんか作ったことあんのかよとw
0821デフォルトの名無しさん
2010/11/28(日) 22:30:050822デフォルトの名無しさん
2010/11/28(日) 22:31:16Blend最初触ったとき作ったぞw
残念ながら世に出ることは無かったが
0823デフォルトの名無しさん
2010/11/28(日) 22:47:370824デフォルトの名無しさん
2010/11/28(日) 22:49:33うふふふ
0825デフォルトの名無しさん
2010/11/28(日) 23:21:430826デフォルトの名無しさん
2010/11/28(日) 23:46:57あの人、美的センスはあるはずw
ネイチャーフォトのレベル高いよ
0827デフォルトの名無しさん
2010/11/28(日) 23:55:05・なんでもかんでもアニメーション
・フェードインフェードアウト乱発
・とりあえず半透明
・以上を全てやっていないとゴネだす上司や低能デザイナーがいる
VS2010のI/Fのようにシンプルな見た目で
要所要所をピンポイントで強調するような使い方が一番上手いんだろうが、
そこまで理解できる人(得に上司)が世の中どれだけいることやら。
0828デフォルトの名無しさん
2010/11/28(日) 23:55:210829デフォルトの名無しさん
2010/11/28(日) 23:56:480830デフォルトの名無しさん
2010/11/29(月) 00:07:50だって、せっかくそういう機能があるんだもん
使わないともったいないじゃん
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ひたすら効率化の世界だしUIもあれだし
凝るとすればタブレットとか最近流行りのUIなどでの話だね
0835デフォルトの名無しさん
2010/11/29(月) 01:56:18まだ見た目(ry
0836デフォルトの名無しさん
2010/11/29(月) 01:56:29車、パソコン、携帯電話、携帯ゲーム機、扇風機etc
たんにその本来の役目さえ果たせればいいんじゃなくてかっこいい見た目じゃないと売れない。
プログラムも同じことだよ
0837デフォルトの名無しさん
2010/11/29(月) 01:59:25ウィンドウなんて必要か?凝りすぎじゃね?
0838デフォルトの名無しさん
2010/11/29(月) 02:05:14だが文字入力はいやだ
0839デフォルトの名無しさん
2010/11/29(月) 02:18:290840デフォルトの名無しさん
2010/11/29(月) 02:25:10じゃあCUIがいやだ
0841デフォルトの名無しさん
2010/11/29(月) 02:26:44ターゲットもソースも
両方依存関係プロパティじゃないとダメなの?
0842デフォルトの名無しさん
2010/11/29(月) 02:27:43もちろんわかるよ。
0843デフォルトの名無しさん
2010/11/29(月) 02:28:42まったく。
機能だけなら簡単と言い切るつもりもないけど、機能そろってりゃ他はどうでもいいってもんじゃない。
芸術的な意味のビジュアルデザインよくないと売れないというのももちろんあるし、
同時に UX デザインもされてる。
ボタンの位置とか大きさはどうなってれば使いやすいかとか、
ものすごいノウハウの積み重ねがある。
0844デフォルトの名無しさん
2010/11/29(月) 02:29:23ソース側は割と自由効く。
0845デフォルトの名無しさん
2010/11/29(月) 02:30:30ターゲットは依存関係プロパティじゃないとダメ。ソースは普通のプロパティでおk
0846デフォルトの名無しさん
2010/11/29(月) 02:41:25なるほどThx
TextBoxに入力した値が、いちいちなんちゃらイベントとか作らずすぐに画面に反映されて感動した。
0847デフォルトの名無しさん
2010/11/29(月) 13:07:33@IT、未確認飛行C
の二つしかない。
この二つだけで勉強しろというのか
もっとふえねぇかな。
0848デフォルトの名無しさん
2010/11/29(月) 13:14:30msdnが基本だろ
0849デフォルトの名無しさん
2010/11/29(月) 13:18:320850デフォルトの名無しさん
2010/11/29(月) 20:18:41XaML
0851デフォルトの名無しさん
2010/11/29(月) 20:20:07XAML手書きでやってるのが多いね
VS2010のデザイナでどうやるのかよくわかんね
デザイナでできる事をわざわざ手書きでやりたくないしな・・
0852デフォルトの名無しさん
2010/11/29(月) 20:39:080853デフォルトの名無しさん
2010/11/29(月) 20:40:09プロパティウィンドウのこと?
0854デフォルトの名無しさん
2010/11/29(月) 22:50:420855デフォルトの名無しさん
2010/11/30(火) 00:08:02>>847 で概要チェック。
後は Expression Blend いじりながら Binding, Template, Animation まわり
の知識を固めていく。( 〜ブログ放浪〜 )
最後に MSDN。
まあ、WinForms の時もこんな感じで勉強、ってか慣れていったが。。
素養のある人は MSDN 直でもわかるのかね。
0856デフォルトの名無しさん
2010/11/30(火) 00:17:540857デフォルトの名無しさん
2010/11/30(火) 00:40:090858デフォルトの名無しさん
2010/11/30(火) 00:51:19ブログ放浪してやっと自分がやってた事が理解できるようになって、最後にMSDN見て納得した。
その後Blendも買って楽しいWPFライフ←今ここ
0859デフォルトの名無しさん
2010/11/30(火) 02:50:27このなんとかの部分インテリセンスきかねぇ
クソだな
0860デフォルトの名無しさん
2010/11/30(火) 04:31:01INotifyPropertyChange
を実装する必要はないんですか?
0861デフォルトの名無しさん
2010/11/30(火) 08:55:230862デフォルトの名無しさん
2010/11/30(火) 10:20:420863デフォルトの名無しさん
2010/11/30(火) 10:23:480864デフォルトの名無しさん
2010/11/30(火) 10:31:37最新の Silverlight Tools 入れたら IntelliSense 効くようになる。
0865デフォルトの名無しさん
2010/11/30(火) 11:30:42イベント利用したら
Button1Click+=(sender,e)=>MessageBox.Show("Hello World");
これだけでいいのに
なんかICommandインターフェースを実装してExecuteがどうたらこうたらやらなきゃいけなくてわけわからん
なんでイベントがダメでコマンドならいいんだ?俺には難しすぎる
別にコマンドは無理して使わなくてもいい
コマンドじゃなくてイベントだと
例えばボタンが押された処理動作を
メニューやホットキーなど複数の条件から呼び出したい場合
それぞれイベントハンドラを記述していくことになる
だが、コマンドを作っておけば、XAMLでコマンド名を書くだけでいい
それ以外はバインディングなどをイベントハンドラで処理する場合
値が正しいかどうかのチェックで動作を変える場合も
イベントだと自前で実装することになる
コマンドなら雛形があるのでそれにあわせて書けばいい
今のおれがわかるのはこれぐらいだな
0867デフォルトの名無しさん
2010/11/30(火) 12:02:05>例えばボタンが押された処理動作を
>メニューやホットキーなど複数の条件から呼び出したい場合
>それぞれイベントハンドラを記述していくことになる
>だが、コマンドを作っておけば、XAMLでコマンド名を書くだけでいい
それはイベントだって同じじゃあないの
Methodというメソッドを作って
<Button Click="Method"/>
<Menu Click="Method"/>
ホットキーはしらんけど
<KeyPress="Method"/>
多分こんな感じでしょ
イベントハンドラはひとつで
XMLのほうでイベントハンドラ名を書くだけでいいっしょ
そういえばそうだな
Winフォームと比べてたわ
あとは、CanExuteがfalseの場合
呼び出しもとのコントロールが自動で無効になるとか
イベントだとEnable=falseとかしないとだめでしょ
0869デフォルトの名無しさん
2010/11/30(火) 12:15:06デリゲートがシリアライズしづらいからクラスでラップしちゃって Java みたいになってる。
あと、コマンドには実行可否の判定(CanExecute)がつきものなので。
0870デフォルトの名無しさん
2010/11/30(火) 12:16:45それはでも、コマンドである必要ない。
ユーザーからの入力イベントの他に、
ちゃんと意味論的なレイヤーのイベント(今コマンドでやってるようなこと)をデリゲートで処理ってのもできたはず。
やっぱ、CanExecute とシリアライズのしやすさの問題でわざわざ ICommand インターフェイスにしてあるんだと思う。
0871デフォルトの名無しさん
2010/11/30(火) 12:30:33ってもんでいいのかなぁ・・・
コマンドの説明見ても、「上書き保存」は、既存のファイルが無かったらできないようにする
「切り取り」は、テキストが選択されてないとできないようにする
とかそんなサンプルばっかりだし
結局MVVMで依存しないようにするにはコマンド使うことになるわけで
そういうのが必要ない場合はイベントで普通に書けばいいんじゃない
0873デフォルトの名無しさん
2010/11/30(火) 12:46:02新たにコマンドという概念を追加して
XAML上で使えるようにしたってことだな。
0874デフォルトの名無しさん
2010/11/30(火) 13:27:050875デフォルトの名無しさん
2010/11/30(火) 13:35:30バイナリ列とかXML文字列に変換って意味<シリアライズ(直列化)。
コードビハインドなしのXAML中にかけるのは、直列化可能なものだけなのよね。
デリゲートは実は直列化できなくて、
XAML のイベントへの代入は結構内部的に微妙なことしてる
(XAML から自動生成される .g.cs の方にイベント追加の += が生成されてる)
0876デフォルトの名無しさん
2010/11/30(火) 13:43:35なるほど、たしかにビハインドのないカスタムコントロールでは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:010880デフォルトの名無しさん
2010/11/30(火) 15:50:56お前なんか勘違いしてるだろ
>>879
だよな、イベントでまったく不都合はない
0881878
2010/11/30(火) 16:15:23>>878でロジックがビューに依存すると言ったのは、VとVMの間の接続をそのままイベントに置き換えてしまった場合。
VのイベントハンドラでVMのメソッドを呼ぶようにすれば問題はないけど
それをXAMLだけでやれるようにしようとすれば、コマンドバインディングが必要になる。
0882デフォルトの名無しさん
2010/11/30(火) 16:18:33デザインとメタデータに徹しさせて。
多国語対応するなら文字列リソースも分けないといけないし。
0883デフォルトの名無しさん
2010/11/30(火) 16:26:41イベントハンドラの場合、シグネチャ一緒やったらイベントハンドラ流用できっけど、シグネチャちゃうやつのイベントの場合やと
同じ処理したいって時は、いったんそいつのイベントハンドラ関数作ってからその関数内で同じ処理呼びださにゃならん。
コマンドにすりゃ、シグネチャ関係無しにどのイベントに対しても使える。って理解でOK?
0884デフォルトの名無しさん
2010/11/30(火) 16:29:120885デフォルトの名無しさん
2010/11/30(火) 16:37:580886デフォルトの名無しさん
2010/11/30(火) 16:44:33ユーザーコントロールとかビヘイビア作って XAML にそいつを書くってやり方すれば、
XAML 肥大化させず、かつコードビハインドにコード書く必要なくせる。
>>883
それは微妙。
イベントハンドラーの引数揃えりゃいいじゃん。
ICommand だって、パラメーター色々変えたいけどやむを得ず object 型だし。
そうでなくて、デリゲートはメソッドへの参照だというのがネックで、
XAML 化/XAML 中への記述がしにくいのよ、.NET のデリゲートの仕様的に。
0887デフォルトの名無しさん
2010/11/30(火) 16:45:48データバインディング自体が遅延バインドだけどもね。
遅延バインド/dynamic な動作は極力プログラマーの目に触れない方が安全。
だから、それをフレームワークの内側に閉じ込めて直接見えなくしてるのが WPF。
0888デフォルトの名無しさん
2010/11/30(火) 17:05:14つまりthisのクラスはButtonに依存するんだわ。
それをもしV-VMに置き換えたら V.Hoge += ((VM)this).OnHoge; となって
thisのクラス(VM)がVに依存してしまう。
0889デフォルトの名無しさん
2010/11/30(火) 17:09:19それも、データバインディングでイベントハンドラー登録ができれば解決したものの、
結局そこで >>886 の話になる。
XAML 中に書けるイベントハンドラー(のメソッド)はコードビハインド中のものに限られる。
ここが一番のネック。
0890デフォルトの名無しさん
2010/11/30(火) 17:15:07つまりWPFは必要ない
0891デフォルトの名無しさん
2010/11/30(火) 17:19:47XAMLとコードビハインドの関係が
イベントハンドラを介してつながるのが未だ主流、という話をしてるだけで、
誰もWPFが必要ないとは言ってないだろ。
日本語が読めないのか。
0892デフォルトの名無しさん
2010/11/30(火) 17:20:000893デフォルトの名無しさん
2010/11/30(火) 17:24:36・今利用者が多いの
→ コードビハインド中にイベントハンドラー直書き
・じゃあ、コマンドって?
→ イベント処理をデータバインディング使ってビューから分離するときに使う
ここでネックになるのは、イベントだとビューから分離できない
(ただし、ビューからの分離っての自体、アプリ規模がそこそこ大きくないと有効性低い)
・なんで Action とかでなく ICommand なの?
→ CanExecute も持たせたいから
デリゲートの方がシリアライズしにくいから
0894デフォルトの名無しさん
2010/11/30(火) 17:25:40昨晩騒いで涙目になってた人でしょ
0895デフォルトの名無しさん
2010/11/30(火) 19:18:38thisのクラスはここでいうとコードビハインドのクラスでしょ。つまりXamlで宣言してる
ルート要素と同じインスタンス。
なのでXamlとコードビハインドはセットでViewなので、
V-VMでいうと
コマンドなら<Button Command={Binding hoge... } />と、XamlでVMの機能を呼び出すのに対し、
イベントなら、コードビハインドのハンドラ内でVM.hoge();と呼び出すことになる。
呼び出す場所がXamlかコードかの違いだけで、VとVMの結びつき自体は変わらないと思うんだが。
0896デフォルトの名無しさん
2010/11/30(火) 19:29:01クラスの依存か、インスタンスの依存かはちゃんと区別しないと。
インスタンスの依存は絶対起きる。これは当たり前。
切りたいのはクラスの依存。
で、そのためには dynamic にやる。
もちろん、コードビハインドで dynamic に VM 操作してしまえば依存は切れる。
けども、極力ユーザーに dynamic なコードは書かせたくなくて、
出来ればデータバインディングを使いたい。
(dynamic はフレームワークの内側に隠ぺいする。)
0897デフォルトの名無しさん
2010/11/30(火) 19:36:480898デフォルトの名無しさん
2010/11/30(火) 19:38:22クラスの依存とインスタンスの依存の違いを教えて。
コマンドでもイベントでも、VがVMのインスタンスを持つのは同じ、
そしてどちらもそのインスタンスに対して呼び出しを行ってる。
0899デフォルトの名無しさん
2010/11/30(火) 19:45:24ViewModel 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:07interface とか継承ベースの強い型付けはテスト用のダミー差し替えがしにくい。
結局、リフレクションとかに頼った dynamic な挙動させたくなる。
でも、一方で、それは利用者の目には触れさせたくなくて、
出来ればフレームワークの内部に隠ぺいしたい。
0901デフォルトの名無しさん
2010/11/30(火) 22:18:14ibentoでいい
0902デフォルトの名無しさん
2010/11/30(火) 22:20:320903デフォルトの名無しさん
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:160906デフォルトの名無しさん
2010/11/30(火) 23:45:39ビルドは通るのに動かないなんて箇所を増やしてメンテできないだろ。
Bindingのエラーも潰すのが大変だっていうのに。
0907デフォルトの名無しさん
2010/12/01(水) 00:30:20as 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テスト抜きにしても、切れる依存は切りたい。
Java とかが DI とかに走りまくってるのも、静的な結合なくすためだし。
全くダメじゃなくて、程度の問題ではあるけども。
(依存あるコードの方が圧倒的に書きやすいので、そことのトレードオフ。)
0910デフォルトの名無しさん
2010/12/01(水) 02:15:25どのみち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:530916デフォルトの名無しさん
2010/12/01(水) 12:09:520917デフォルトの名無しさん
2010/12/01(水) 15:50:32XAMLのほうで、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:360919デフォルトの名無しさん
2010/12/01(水) 16:08:46気のせいじゃないの?
http://msdn.microsoft.com/ja-jp/library/ms605728.aspx
0920デフォルトの名無しさん
2010/12/01(水) 16:47:48VC#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:15storyboad s= new storyboad();
Storyboad.setTargetProperty(なんとか);
Storyboadのstaticメソッド実行しただけなのに
これでなんかsのターゲットプロパティ変わってるし。
複雑怪奇すぎるぞwpf
0922デフォルトの名無しさん
2010/12/01(水) 17:04:170923デフォルトの名無しさん
2010/12/01(水) 19:54:12<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:32ttp://www.netframeworkdev.com/windows-presentation-foundation-wpf/gridsplitter-drags-out-of-the-window-27306.shtml
0925デフォルトの名無しさん
2010/12/01(水) 23:06:050926デフォルトの名無しさん
2010/12/02(木) 00:23:06確かVisual Basic netでもWPFって使えたよね?
VBでWPFの人気がないのはなんでだろう
0927デフォルトの名無しさん
2010/12/02(木) 00:25:480928デフォルトの名無しさん
2010/12/02(木) 00:30:40世界的にはC#のほうが多く使われてるから
0929デフォルトの名無しさん
2010/12/02(木) 00:35:360930デフォルトの名無しさん
2010/12/02(木) 00:36:310931デフォルトの名無しさん
2010/12/02(木) 00:36:32スタイルとテンプレート合わせたり
スタイルとテンプレートとアニメーション合わせるともうわけわからん。
テンプレートで丸いボタンにして
ストーリーボードとかいうの使ってマウスカーソルが合わさると色が光って
スタイルでそれを全部のボタンに適用
みたいなことしたいんだがどうすればいいんだ。
0932デフォルトの名無しさん
2010/12/02(木) 00:39:30×VB→○VB6
×WPF→○OOP/CLR
だと思う
0933デフォルトの名無しさん
2010/12/02(木) 00:58:01有益な情報を発信できる人がVBしか使えないことはないだろうし、
そのうちでC#よりもVBのほうが好きって人はあんまりいないんじゃないかな
0934デフォルトの名無しさん
2010/12/02(木) 01:01:47一番いいのは、Blend で適当に何か書いてみて
生成されたコード眺めることなんだけどもね。
ほんと、Blend Express(無償)出ればいいのに。
0935デフォルトの名無しさん
2010/12/02(木) 01:06:47VisualStateManager使うのが正しいやり方だけど
正直VSMはBlendないときつい
0936デフォルトの名無しさん
2010/12/02(木) 01:07:51Visual Studio Expressだけしかもってない貧乏人は
アキラメロンってことか。
XAML PADとかいうのも使いづらい品
0937デフォルトの名無しさん
2010/12/02(木) 01:14:55ただ明らかにデザインツール前提で非常にわかりにくい
0938デフォルトの名無しさん
2010/12/02(木) 01:15:18趣味レベルの人向けのを5000円くらいで出してヨ
0939デフォルトの名無しさん
2010/12/02(木) 02:21:56それをVisual Studioのデザイナのツールボックスに追加するのはどうやんの?
0940デフォルトの名無しさん
2010/12/02(木) 02:22:380941デフォルトの名無しさん
2010/12/02(木) 02:25:08リビルドで認識するはず
されない場合はIDEの設定を見てみて
0942デフォルトの名無しさん
2010/12/02(木) 03:31:20<StaticResource ResouceKey="なんとか"/>
このStaticResouceがインテリセンスで候補になーい!
Visual Studioの早期改善が求められる。
0943デフォルトの名無しさん
2010/12/02(木) 03:37:53値が属性と勘違いされて赤い字になるのがイヤ。
0944デフォルトの名無しさん
2010/12/02(木) 04:29:220945デフォルトの名無しさん
2010/12/02(木) 04:34:31<Grid Button.Click="なんとか">
ここにボタンいっぱい配置するコード
</Grid>
↑のButton.Clickがインテリセンスで出てこない。
確かにまだ早い、のかも
でもWPFってVisual Studio 2005のころから(まだテスト段階だったらしいが)あるんだろ
それでもまだ早いって、相当遅れてるね。こりゃ、
0946デフォルトの名無しさん
2010/12/02(木) 09:25:17そのやり方に力入れてないからなぁ・・・
0947デフォルトの名無しさん
2010/12/02(木) 09:26:130948デフォルトの名無しさん
2010/12/02(木) 12:01:23WinForms+VSが神すぎるだけ
そりゃVBやDelphiから続く系統の完成形なんだから比べたら可哀想
0949デフォルトの名無しさん
2010/12/02(木) 13:20:170950デフォルトの名無しさん
2010/12/02(木) 14:18:58コードはC#で
が基本らしいけど
一部の外観はC#のほうで書いたほうがやりやすい。
0951デフォルトの名無しさん
2010/12/02(木) 15:24:58<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.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それはテンプレート使いこなしてないだけでない?
具体的にはどういうの?<一部の外観、C#の方がやりやすい。
0955デフォルトの名無しさん
2010/12/02(木) 23:49:09using System.Windows.Media.Animation
が書いてない。
いちいち新しいプロジェクト付くる旅にusing書くのめんどくせ。
最初から書けよクソ
0956デフォルトの名無しさん
2010/12/02(木) 23:50:250957デフォルトの名無しさん
2010/12/02(木) 23:52:320958デフォルトの名無しさん
2010/12/03(金) 14:22:400959デフォルトの名無しさん
2010/12/03(金) 14:30:240960デフォルトの名無しさん
2010/12/03(金) 14:31:37みたいなことはやり方を覚えた。
<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:28Triggerの代わりにDataTriggerでバインディング
0962デフォルトの名無しさん
2010/12/03(金) 19:44:200963デフォルトの名無しさん
2010/12/03(金) 23:34:371対1じゃないとダメか。
0964デフォルトの名無しさん
2010/12/04(土) 14:16:290965964
2010/12/04(土) 14:47:400966デフォルトの名無しさん
2010/12/05(日) 00:59:28<Grid>
<Button Width="100">
<Button.Template>
こういうのがViewで
class person{
int age;
string name;
}
これがModelなの?
ModelViewって何
0967デフォルトの名無しさん
2010/12/05(日) 01:00:100968デフォルトの名無しさん
2010/12/05(日) 01:12:27データバインディングでビューから色々分離する設計パターン。
0969デフォルトの名無しさん
2010/12/05(日) 01:17:52M-VM-V か V-VM-M の方が繋がってる方向的に良くなーい?
0970デフォルトの名無しさん
2010/12/05(日) 01:19:240971デフォルトの名無しさん
2010/12/05(日) 01:27:060972デフォルトの名無しさん
2010/12/05(日) 01:50:390973デフォルトの名無しさん
2010/12/05(日) 14:43:100974デフォルトの名無しさん
2010/12/05(日) 14:56:590975デフォルトの名無しさん
2010/12/05(日) 16:56:20オサレなGUI?そんなの個人でやるもんじゃないでしょ
0976デフォルトの名無しさん
2010/12/05(日) 17:04:19ハイ無理ですね
0977デフォルトの名無しさん
2010/12/05(日) 21:13:14教えて
0978デフォルトの名無しさん
2010/12/05(日) 21:14:22まだWPFがオサレな
0979デフォルトの名無しさん
2010/12/05(日) 21:20:160980デフォルトの名無しさん
2010/12/05(日) 21:32:41突然何を書いてるのかと。
0981デフォルトの名無しさん
2010/12/05(日) 21:34:07まったくだよな。
言いやすさなんだろか?
0982デフォルトの名無しさん
2010/12/05(日) 21:37:51スクリプト言語なども含めて他の言語のGUIアプリ開発環境と比べたら神だよ
最高の完成度なのはWinFormsだが
0983デフォルトの名無しさん
2010/12/05(日) 21:48:58firefoxのguiフレームワーク
あんなわけわからんのでもガンガンいくからな外人は
0984デフォルトの名無しさん
2010/12/05(日) 21:51:21そう、他の言語やら使うと(使わされると)実感するよ。
0985デフォルトの名無しさん
2010/12/05(日) 22:09:00WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part8
http://hibari.2ch.net/test/read.cgi/tech/1291554513/
0986デフォルトの名無しさん
2010/12/05(日) 22:13:481のコメントが前向きだ
0987デフォルトの名無しさん
2010/12/05(日) 22:20:022 .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:35C#スレでもWPFの質問(回答が付いてる!)見る機会が増えてきて、盛り上がってまいりますた。
0990976
2010/12/05(日) 23:29:29たまんねー
0991デフォルトの名無しさん
2010/12/05(日) 23:43:580992デフォルトの名無しさん
2010/12/05(日) 23:57:31これが荒らしじゃなかったら何だって言うんだw
0993デフォルトの名無しさん
2010/12/06(月) 00:08:25WPFじゃないんだろう
エディタはWPFで作ってるくせにそんなに特別負荷のかかるところとも思えないんだが
0994デフォルトの名無しさん
2010/12/06(月) 00:14:200995デフォルトの名無しさん
2010/12/06(月) 00:18:06Windowsの設定によってはスクロールバーなんか明らかに他の部分と違うし
http://connectppe.microsoft.com/VisualStudioJapan/feedback/details/564203/
単にリリースに間に合わせるためっぽいね
0996デフォルトの名無しさん
2010/12/06(月) 00:44:540997デフォルトの名無しさん
2010/12/06(月) 01:01:14Part2 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:460999デフォルトの名無しさん
2010/12/06(月) 01:23:081000デフォルトの名無しさん
2010/12/06(月) 01:23:1810011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。