1 名前:デフォルトの名無しさん [2009/01/09(金) 22:14:36 ] あたらしいGUI FW、WPFについて語るすれ。 .NET3.5 SP1 もリリースされて盛り上がってまいりますた。 Visual Studio 2008 ttp://www.microsoft.com/japan/msdn/vstudio/ Microsoft .NET Framework 3.5 Service Pack 1 ttp://www.microsoft.com/downloads/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=ja WPF Toolkit - October 2008 Release ttp://www.codeplex.com/wpf/Release/ProjectReleases.aspx?ReleaseId=15598 関連スレ Microsoft Silverlight 2.0 その3 ttp://pc11.2ch.net/test/read.cgi/tech/1227324813/ 過去スレ 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/
29 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 21:29:14 ] 説得力
30 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 21:32:24 ] WPFにはFlashみたいな画質設定とかないのかな? 瞬間の動作は気分的な問題だから、重くならないように荒くさせてあげたいんだけど。 (だったら瞬間どうさ止めろとかなしでw
31 名前:デフォルトの名無しさん [2009/01/28(水) 21:37:35 ] <Label Content="{Binding Name}" /> 今、こういうふうにラベルで文字を表示してるんだが、 <Label Content="{Binding Foo(Name)}" /> こんな感じで処理してから表示したい。 どうすればいい? Fooを↓みたいに定義すればコンパイル通るんだが文字が表示されなくなった。 public void Foo(string str) { return "foo" + str; }
32 名前:31 mailto:sage [2009/01/28(水) 21:38:45 ] まちがえた。 public string Foo(string str) { return "foo" + str; } こうだな。
33 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 21:45:08 ] IValueConverter使えば?
34 名前:31 mailto:sage [2009/01/28(水) 22:00:39 ] >>33 ありがと。 でもこれで表示されないのはなんで?
35 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 22:03:38 ] そんなバインディングできない! 例外だ例外! あ、例外が出たから空に置き換えときますね
36 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 22:15:23 ] 一週間も書き込みなかったのに急に勢いづくWPF恐るべし
37 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 11:48:05 ] エクスプローラで"表示→アイコン"とした時の表示みたいに ・項目は水平に並べられる ・幅に収まらない場合は右端で折り返され、下に伸びていく ・画面に収まらない場合は垂直スクロールバーが表示される という風にしたいのですが、下のようにWrapPanelを使っても折り返されず 右にどんどん伸びていって水平スクロールバーが出てしまいます。 どうすればいいのでしょうか? <ListView Name="listView1"> <ListView.ItemsPanel> <ItemsPanelTemplate> <WrapPanel /> </ItemsPanelTemplate> </ListView.ItemsPanel> </ListView>
38 名前:31 mailto:sage [2009/01/29(木) 19:24:22 ] IValueConverterにコントロール自身を設定することはできない? 変換にはどうしてもコントロールにある情報が必要なんだが。 やりたいこととしては 名前とGUIDが入ったデータの配列があって、 名前をリストで表示したいんだが、 名前が同じでGUIDが違うデータがあったら後のデータを 「〜〜〜(2)」みたいなかんじで表示したい。 てかWPFって難しいな。
39 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 21:46:43 ] >>37 WrapPanelのWidthが指定されてないから無制限に横に広がっちゃう ViewBaseクラスのサンプルにWrapPanelの例があるよ >>38 ConverterParameterでパラメータ渡すとか つかIValueConverterにDictionaryとか持たせればどうとでもなるような気がするけど
40 名前:37 mailto:sage [2009/01/29(木) 22:49:52 ] >>39 ありがとうございます。 <ListView Name="listView1"> <ListView.ItemsPanel> <ItemsPanelTemplate> <WrapPanel Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=ScrollContentPresenter, Mode=FindAncestor}}" /> </ItemsPanelTemplate> </ListView.ItemsPanel> </ListView> とすることでできましたが、ScrollContentPresenterというものがどっから出てきたのか分からず ちょっとすっきりしません。 ListViewとScrollContentPresenterの関係についてはどこに書いてあるのでしょうか?
41 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 03:51:26 ] >>40 ListView ControlTemplate の例 msdn.microsoft.com/ja-jp/library/ms788747.aspx あと、Snoop っていう WPF のツリー構造を表示するツールもあるから、検索してみると良い。 どのプロパティに値を設定すれば、どんな風になるとか、実行しながら色々試せる。
42 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 19:28:32 ] >>41 Snoopでツリー構造表示はすごく参考になります。 結局そのリンクにあるControlTemplateをカスタマイズする方法にしました。なんかいろいろできそうだし。 ありがとうございました。 <ListView.Template> <ControlTemplate> <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"> <ItemsPresenter /> </ScrollViewer> </ControlTemplate> </ListView.Template> <ListView.ItemsPanel> <ItemsPanelTemplate> <WrapPanel /> </ItemsPanelTemplate> </ListView.ItemsPanel>
43 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 22:46:41 ] 来るVS2010ではWPF Toolkitが標準になるそうだけど 今から使ってる香具師はいる?
44 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:01:22 ] WPFでリアルタイムにグラフを書かせたいのですが、どうすればいいでしょう? グラフは N分間の受信データをグラフに表示する グラフにはN点で表され、それぞれの点は対応する時間(分)での最終データを表す 毎秒数回データを受信し、その都度グラフに反映する ときどき値域が変化しその都度全体を再描画する こういうものです
45 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:07:38 ] 普通にタイマーでまわした方が妥当じゃない? 「変わったときに」と指定するなら、タイマーで前回と差が出たら〜にすればいいと思うし、 それに全体をっていうのが引っかかるけど、やっぱ作画した上から瞬間のデータを書いてやるのが一般的。
46 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:53:24 ] データの送受信タイミングを受信側が制御するならタイマー データの送受信タイミングを送信側が制御するならコールバック
47 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 00:00:30 ] WPFの入門書はどれがいいでしょう?
48 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 10:58:12 ] ダブルパフィーの超技巧テクニック第2版中国版
49 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 11:44:26 ] 「XAMLプログラミング」 Microsoft株式会社 川西裕幸 高橋忍 著 ISBN978-4-7973-3916-1
50 名前:デフォルトの名無しさん [2009/01/31(土) 13:05:52 ] WPFエッセンシャル買ってみたけど、このフレームワークの背景とか 意味とかはふむふむと興味深い点も多かったけど、正直実践にはあまり 役立ちそうにない本だった。
51 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 14:27:01 ] リストビューの要素がダブルクリックされたらコマンドを実行させたくて 下記のようにスタイルを設定しようとしても、InputBindingsにsetアクセサが無いと言われます。 どうやればいいのでしょうか? <ListView.Resources> <Style TargetType="ListViewItem"> <Setter Property="InputBindings"> <Setter.Value> <MouseBinding Command="ApplicationCommands.Open" MouseAction="LeftDoubleClick" /> </Setter.Value> </Setter> </Style> </ListView.Resources>
52 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 15:46:20 ] >50 俺も読んだけど、ことWPFに関して言えば、フレームワークの背景に有る 考え方を知る事の方が重要だと思った。今までとかなり違うからね。
53 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 16:35:35 ] XAML、よいんだがBindingの記述とかなんか直感的じゃないんだよなぁ・・・
54 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:33:08 ] 確かにエッセンシャルWPFはイマイチだった。 2005年にでたプログラミングWPFのほうがいい。(ベータ版が対象だが)
55 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 19:27:16 ] >>53 そもそも面倒くさいよな。 ちょっとしたことでもコンバータとか書かねばいかんことが多いように見えるし。 思ったのは、頻繁に使う一般的な数値データのバインドなら、たとえばいっそ、 xamlでデータ専用クラスみたいなのを定義できるようにして、 <Data Name="mydata"> <Int Name="d" Enum={ i0,i1,i2 } i0={ value="5" min="0" max="10"} ・・/> <Double Name="d2" Enum={ D0,D1,D2,D3 } D0={ value="6.2" min="0" max="20.0"} ・・/> </Data> (つまり class Mydata { int d[3] ; double d2[4]; } と同義的なクラス。簡単なソフトならそのまま 基本変数をまとめたメインデータクラスとして使ってもいい) などとして、 コードからは mydata.d[i0]= で値の授受が出来、 コントロールには <Text Bind="mydata.i0"> で即ok,くらいにしてくれるといいようにも思うのだが。
56 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:02:07 ] よくわからんのだが XAMLというのはクラスのメンバの値の設定をマークアップ言語?で記述してる って解釈でいいの? それ以外なにか特徴ある? どこ見てもいきなり文法の説明っぽいのばっかりでいまだに全体像がつかめない
57 名前:31 [2009/02/01(日) 00:09:47 ] <Label> <Binding> <Binding.Converter> <colorful:MyConverter> <colorful:MyConverter.Data> <Binding Path="Data"> <Binding.RelativeSource> <RelativeSource Mode="FindAncestor" AncestorType="{x:Type UserControl}" /> </Binding.RelativeSource> </Binding> </colorful:MyConverter.Data> </colorful:MyConverter> </Binding.Converter> </Binding> </Label> これで実行すると出力に System.Windows.Data Error: 4 : Cannot find source for binding with reference って出て、MyConverter.Dataにも値がセットされてないみたいなんだがなんか原因分かる? 上記の部分はテンプレートの一部なんだが、このテンプレートを使用してるコントロールには 依存プロパティとしてDataが定義されている。
58 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:38:55 ] >>56 すっごーく乱暴に言えばHTML/CSS+JavaScriptとXAML+C#/VB.NETで対応する感じ。
59 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:55:51 ] >>56 その解釈で合ってるよ。タグ名がクラス名に該当する。 属性がプロパティ WPF以外のクラスも生成できる
60 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:59:42 ] コードを生成してるんじゃなくて実行時にパースしてるんだけどな
61 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:16:29 ] 新しくウィンドウ作るとデフォでpublic classとして作られるんだけど internalじゃなくてpublicなのは何か理由あるの?
62 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:35:06 ] >>51 ItemTemplateの方で記述すべきことじゃね? >>57 そりゃConverterに先祖は存在しないだろう
63 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 02:17:07 ] WPFのWindowをWindows.FormsのRegionみたいに範囲を指定して穴空けたり削ったりしたいのだけど 対応するプロパティってどれでしょうか? ClipとかVisualClipかなと思ったのだけどうまくいかなくて。
64 名前:57 [2009/02/01(日) 06:49:58 ] >>62 どうすればコントロールの依存プロパティにアクセスできる? RelativeSourceについていまいち理解できてないんだが いいサイトないかい?
65 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 11:22:56 ] >>64 やりたいことの大枠は分かったけど実現方法が間違ってる感じがするよ 表現したいデータとUIを説明してくれれば助言できるかもしれない 38だけじゃ抽象的過ぎる
66 名前:57 mailto:sage [2009/02/01(日) 13:51:08 ] >>65 「こんなデータも表現できるのかな」ってのをやってみただけだから 特に何か目的があって作っているわけではないんだ。 過去にC#(非WPF)の仕事で扱ったデータ構造を参考にしたんだが。
67 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 14:21:36 ] だから、多分表現できる、ただ表現の仕方がまずいだけだろうっていってるのよん 目的? 「こんなデータも表現できるのかな」で十分じゃん
68 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:10:34 ] つかどうでもいいって思ってるなら聞くなよ
69 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:11:59 ] もしかしてWPFってxaml使わなくてもOK? C#だけで書けるんならそのほうがやりやすい気がするんだが xaml使うメリットってなんなの?
70 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:20:12 ] XAML使わない方が圧倒的に面倒 試してみた俺が保証する
71 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:22:20 ] C#で書くと階層構造作るのが面倒臭すぎる 後で解読不能
72 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:35:53 ] XAMLでロジック作労とするとこれがまた面倒なんだよな・・・
73 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 17:05:34 ] 混ぜて使うのが普通だろ。 前のスレにXMALなしのサンプルがあったが、アップローダーからは消えてるな。 HTMLをjavascript+DOMで動かすようなもの。
74 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 17:49:57 ] UIとロジックを徹底的に分離しようと意識して書いてみたら結構いい感じになった ような気がする。 BindingとかStyleとかコマンドとか、理解が進むと便利な仕組みだと実感できる。
75 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 20:38:26 ] UIとの分離については、RoutedCommand が重要なポイントだと思う。 C#側でコマンドをずらずら書くところをもうちょっと綺麗にしたいけど。
76 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:43:51 ] xamlって、Cocoaでいうnibみたいなもん?
77 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:32:12 ] >>70 ,71 C#に対する利点ってどんなところ? 何が書きやすくなるの?
78 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:44:39 ] やってみればいいじゃん。 WPFはどっちのやり方も使えるように設計されている。
79 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:49:40 ] 一回好きなようにXAMLで書いてみて,それをC#で書き直してみたらいい アニメーションとか死ねる
80 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:29:06 ] 画面の位置、階層構造 XAML>C# ロジックや複雑な関係構築 XAML<C$
81 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:30:03 ] どっちもナイス VB
82 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:50:25 ] XAMLって言語なんですか? 個別に本を買って勉強した方がいいですか? これやりたくて今C#勉強してるんですけど、道のりは長いですね
83 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 01:46:19 ] >XAMLって言語なんですか? XMLベースの宣言的言語
84 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 01:58:25 ] 別にWinFormsのような感覚でやっててもいいわけだし
85 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 02:15:21 ] >>82 XAML は言語といっても HTML みたいなものだから、そんなに難しくはないよ。 見たり書いたりしているうちに、すぐに慣れると思う。
86 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 03:08:29 ] >>85 静的なものはいいんだ 問題はバインド関係 正直リソース系のあの宣言方式はどうにかならんかったのかと
87 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 13:20:19 ] MouseBindingで、(None or Shift or Ctrl or Shift + Ctrl)+左クリックを表すには 4通り全て書く以外方法は無いですか?
88 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 13:52:33 ] そうやってROでくくってやれば1通りの書き方で収まってると思うんだけど?
89 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 14:17:35 ] >>88 ROって何ですか? <MouseBinding Gesture="LeftClick" Command="Hoge" /> <MouseBinding Gesture="Shift+LeftClick" Command="Hoge" /> <MouseBinding Gesture="Ctrl+LeftClick" Command="Hoge" /> <MouseBinding Gesture="Ctrl+Shift+LeftClick" Command="Hoge" /> Gestureにどう書けばいいんでしょうか?
90 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 19:29:18 ] 質問 XAMLの階層構造ってなんですか?
91 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 23:37:31 ] 画面の階層構造
92 名前:デフォルトの名無しさん [2009/02/03(火) 11:54:59 ] >>71 そっかなあ。HTMLドキュメントをDOMで操作すること考えたら、 アーキテクチャの設計次第では大したことないと思うが。 第一、いまどきGUIの設計はRADユーティリティ利用が当たり前で、わざわざ コード書くバカいないだろ。windows formのときにそんなことしてた?
93 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 15:06:40 ] だからそのデザイナが生成するコードがC#じゃなくてXAMLになっただけだよ Designer.csなんてちょっと複雑になると人間が読むのが難しくなるし 必要に応じて修正することもできない
94 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 15:54:12 ] 一回デザイナのコードが壊れると、デザイナのウィンドウに ブラウザの「ネットに繋がってません」的なコードを表示するようになる これがコントロール関係でのエラーだと修復はほぼ不可能
95 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 16:05:19 ] XAMLなら言語に依存しない VBだろうとC#だろうとIronPythonだろうと同じデザイナが使える
96 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 16:17:27 ] XAMLはずらっと項目が並んだプロパティウインドウをちまちまクリックするのは面倒くさいだけだと気付かせてくれた点で(作る側的に)UI革命
97 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 17:02:51 ] XAML採用の理由は、半分ぐらいExpression Blend用だろ。
98 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 18:24:55 ] Expression Blendだけ高すぎる・・・ せめてExpression Webくらいの値段にしてくれ
99 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:03:36 ] あんなもん売れても無いからそのうちVSに統合されるよ
100 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:46:10 ] ttp://japan.zdnet.com/news/os/story/0,2000056192,20387503,00.htm > 特にVistaに組み込まれた画像描画機能であるWPFの利用が伸び悩んでいることに触れて 自分らは使ってないくせに、どの口が言うか
101 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:49:25 ] VS2010で使われるよ
102 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 20:20:56 ] 基本XAML無しで追加機能としてXAMLも使えるよ的に出してればもう少し使われたかも。 いきなりUIだけ別言語使えとかハードルが高すぎたんだ。
103 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 20:23:01 ] そもそも今まではUI作るのに開発言語なんか使えなかっただろ いままで通りデザイナで作るのに加えて,オプションとしてXAMLを直接いじることもできるようになった
104 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 20:31:30 ] WPFがココまで使われないとは正直思わなかった。 おそすぎんだよな。きびきび動いてたら色々と使う所も出てきたと思うけれど。 Longhorn時代に出ていた想定アプリケーションはどこへ行った屋ら
105 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 20:33:47 ] >>102 昔だってダイアログはリソーススクリプトで別だったじゃないか。 まあ手書きなんてやらないけど。
106 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:07:31 ] そもそもデスクトップアプリの数が増加どころが淘汰・減少気味だからなぁ。 数だけでいえばデスクトップのWPFアプリよりもブラウザベースのSilverlightの圧勝になりそう。 機能限定とはいえOffice移植はインパクトでかいよ。 とはいえWPF製デスクトップアプリも無いわけじゃない。 Xperfは最近やたら見かけるようになってきたし。 Windows 7付属のPowerShell統合環境も確かWPF製。 MS以外だと映像系で即戦力として使われてる感じ ttp://loilo.tv/ とか >>6 が書いてた ttp://tmpgenc.pegasys-inc.com/ja/product/tme3.html とか
107 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:59:59 ] >>100 普及させたいならまずExpressionタダにしろよ
108 名前:デフォルトの名無しさん [2009/02/03(火) 22:05:36 ] 正直WPFは生産性が低い。 凝ったUIを作りこみたいときには、今までオーナードローなんかで 四苦八苦してたことから考えれば、むちゃくちゃ楽なnだけれど、 そもそも「凝ったUIを作りこみたい」という需要がほとんどないんだと 思う。 意外と便利だなと思ったのは、Expressionのプラグイン作ってみたとき。 UIをWPFのUserControlの形で渡して、INotifyChangeを実装しておくと アプリケーション側でのユーザーの入力が簡単にわかるし、データの やりとりはマネージ型でできるからこれまた簡単。プラグインを指定フォルダ においとくだけでリフレクションで自動的にロードしてくれるのでインスコも 至極便利。 MSもWPF普及させたいならIEとかオフィスのIFを公開してWPFでプラグインを 簡単に作れるような実装をすればいいのにね。 IEのBHOなんてとてもいじる気になれない。なんで未だにUIがらみが COMなんだよ。 お気に入りとかRSSのサイドパネルにカスタムのパネルを WPFで自由に作って簡単にロードできたらWPFつかうきにもなるんだが。 どんどん作れるようにすればいいのに。
109 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:08:48 ] >>104 WindowsXPで走らせるとモッサリするからな。 WPFが増えるには、WindowsXPの比率が下がらないとね。 Beta1で評価が高いWindows7、製品版の完成度と出来映えに掛かる!
110 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:55:34 ] >>108 まぁ要するに、公開当初のコントロールが不十分で しかもVS2008のエディタがdでも無く貧弱だった これに尽きる 上の方でちまちまフォーカスしてプロパティ設定するより直打ちがいいとか抜かしてるのいるけど 直打ちじゃそもそもどんな属性があるのか「その場」で分からんじゃないか とか言うと「最初にヘルプ嫁ボケ」とか言われそうだが、昔から読み辛いのに定評あるだろヘルプは ただでさえ作法違うんだから、一目瞭然にすべきだった
111 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:13:57 ] プログラムでビットマップデータ変更すると即座に表示に反映される、ってことしたいんだけど WPFだとどうすればいいの?
112 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:17:43 ] どのレベルで分からないのさ?
113 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:22:24 ] >>111 WriteableBitmap?とエスパーしてみる
114 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:26:39 ] WPF,xamlまださわったことないんだ だからどのレベルといわれてもw WriteableBitmap?ぐぐってみる、ありがとう エスパー大好き^^
115 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:26:49 ] Dependecyつかえば?
116 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:12:43 ] Dependency? 依存関係プロパティとかいうやつですか? 勉強してみます ありがとう WriteableBitmap、チョイ見た感じわかりやすそうでいいですね DirectX?やってるような気分になる ほんとエスパー大好き^^
117 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:27:16 ] >>110 なんでMSってヘルプ作るのこんなに下手なんだろうな
118 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:30:09 ] 形にこだわってるという印象がある 体裁ととのってればよし、みたいな
119 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 01:50:23 ] 伸びてると思ったらこれか!
120 名前:デフォルトの名無しさん [2009/02/04(水) 16:56:24 ] >110 xaml直打ちはありえんな。今時ウェブデザイナでもそんなことはせん。 そもそも「UIとロジックの分離」ってのが胡散臭すぎる。 ウェブの世界では確かにUIはデザイナが作ってるけど、そもそも商用パッケージ 製品でもない限り、デスクトップアプリケーションの世界UIデザインとロジックを分 離して別々の間が作るなんてあり得ない絵ゾラごとだとおもう。 xamlはxbapとかsilverlight専用でいいよ。
121 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 20:45:21 ] >>117 osx になってから、Appleの開発者サイトは見やすくなった。
122 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 20:48:34 ] >>117 互換性ってのを気にしてるんじゃない? Macはそこらへん無視だから作り直したりできるけど、MSは数十年前からの積み重ねだから自由が利かないんじゃない?
123 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:17:40 ] >>120 多人数開発が当たり前のデスクトップアプリケーションで、UIとロジックをろくに分離せずに開発するとか完全に死亡フラグ
124 名前:デフォルトの名無しさん [2009/02/04(水) 22:25:43 ] >>123 画面設計とバックエンドを分離することはあるが、UIと「UIにまつわる」ロジックを 分離するなんてありえんだろ。
125 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:01:33 ] >>124 モデル部、モデル部と連携するUIイベントハンドリングと相互作用、UIでの表示とイベント操作を行うコントロールは分離可能。 WPFでのXAMLは2と3の分離
126 名前:デフォルトの名無しさん [2009/02/05(木) 08:27:38 ] >>125 MVCの役割をキチンと分離して見通しがよく、相互に影響の少ない プログラミングを、なーんて話と、実際にを分離・分業で作成して うまくいくかどうかって話はべつもんだろ。 UIの入出力なんてそもそも不可分いったい何だから、「分けましょう」 なんて教条主義ふりかざしたところでうまくいかんものはいかん。 デザインがプログラミングとは別に意味を持つwebの世界ならともかく、 デスクトップアプリケーションでV,C分離して分業する意味もないし、 そんなことして品質と生産性が保てるとは思えん。 理想論としては分業しなくても極力見通しよく設計する方がいいのは 確かだけれど、 ・分業するためにはVCをきっちり分離しておかないと という話と ・分業も必要ないのに VCをがちがちに分けすぎたものが果たして 使いやすいのか? という話を混同してない?
127 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 08:56:36 ] >>126 いや、業務アプリでも捨てコードとかでないならきっちりやっとくべきだと思うけどね。 動かしたあととかに色々変えてくれとか言うものも出てくるはず。その中にはきちんと分離しておけばZAMLレベルの修正で住むものも宅差なると思われ。 ドメインモデルとのやりとりはUIの中のVからはやったらあかん。
128 名前:デフォルトの名無しさん [2009/02/05(木) 11:04:03 ] >>127 ごめん、俺の論点の出し方がわかりにくかったかも。 ・どんなプログラムでもMVCを疎な設計にしておくべし → 同意 ・M,V,Cを分業して別々な人が設計するならMVCの分離は必須 → 激しく同意 ところが上二つから ・V,Cは別々の人が設計すべき→・だからXAMLがいいんだ という話にはつながらないはず。 分業はほんらいできればしたくないんだよ。究極には一人の人が設計から 実装まで完結できればそれが一番品質も、生産性も高いと思う。 ところが現代の大規模システムではそんなのとうてい無理だし、ウェブ系の アプリケーションのようにデザインが重視される世界ではそもそもプログラマに そのスキルがないから、「仕方なく」分業するわけだ。 XAMLは、その「仕方なく」の世界のために作り出されたものだから、別に そんな必要のないときに使うと 使いにくいものになっているってのが俺の持論。 だいたい、UI設計の分離といっても、ちょっとした振る舞いやレイアウトの変更 程度なら確かに"XAMLレベルの修正ですむ"ケースもあるだろうけれど、 現実のプロジェクトではそんなことあり得ない。 これはMVCモデルのせいじゃ なくて、 何をしたいのかよくわかってない糞ユーザーと、いつまでも 要件も仕様も凍結できず工程がぐだぐだの腐ったプロジェクトマネージメントの せいだが…。 MVCモデル開発が仕様変更に強いというのは嘘だと思う。仕様がキチンと確定 していれば、MVCをキチンと分離した設計によって、効率的な分業が可能 というのが正しいのではと思う。 少なくとも現実に目を向ける限り、分離が可能なのは実はVとCじゃなくて "Look"とVCだと思うんだよなぁ。。。"Look”のためだけならXAMLもあながち 悪くはないと思うが…。
129 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 16:13:42 ] >・V,Cは別々の人が設計すべき→・だからXAMLがいいんだ これが違うというのは同意。また分業しないほうがよいというのも同意。 でも仕様が不明確で肯定がグダグダになるのとMVCなどで分離するかどうかはまた別のはなしかと。 どうせ全員一致のMVCの定義すらないわけだしそこらへんの言葉遊びしても意味ないかと。 WinFormsよりはWPFのほうがいずれにしてもUIとモデル部などを分離しやすいのは確かだし。 仮に分業目的でなくてもWPFでの分離の仕方はそれなりにいいと思う。その手段としてXAMLがあるわけだが、それは必須条件じゃないし。