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/
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があるわけだが、それは必須条件じゃないし。
130 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 16:40:28 ] quince.infragistics.com/ ここ面白いな
131 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 17:19:19 ] >>130 かなり面白いな。 どっかにサンプルソースがないのかねぇ…。みつけられんかった。
132 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:32:15 ] >>130 愛用のoperaじゃぴくりともう五課ねぇ・・・
133 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:43:06 ] >>132 さぁ、Opera 10 alphaを入れるんだ
134 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:09:02 ] >>130 何が面白いんだよ馬鹿しかもSilverlightだからスレ違いだろボケ
135 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:25:41 ] 見たけどページはSilverlightだけど中身はWPFじゃん HTMLはスレ違いとかならかわいげがあるが
136 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:37:06 ] 両方あるんだけど、、、
137 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:02:56 ] ソースもあれば最高なんだけどな
138 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 14:19:44 ] VirtualizedWrapPanelが無いのはなぜなんだ…
139 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 14:32:06 ] 僕らが車輪の新生産を出来るように。
140 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:40:48 ] StackPanelは画面内に収めるのが普通だから
141 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 03:47:15 ] System.Windows.FormsのLocationに相当するものはWPFのコントロールにはないの?
142 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 04:43:18 ] Canvas
143 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 12:58:41 ] WPFにもなってLocationなんて指定する奴はWPFの存在意義がわかってない
144 名前:デフォルトの名無しさん [2009/02/07(土) 13:06:59 ] XAMLでブール値を設定するにはどうしたらいい? 〜〜〜="True" じゃぁ文字列になってしまう。
145 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:16:51 ] WPFってエフェクトさえ使わなければ軽い気がしてきた
146 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:48:49 ] 3.5はシェーダ使うようになったからエフェクト軽くなったらしいけど
147 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:15:47 ] >>142 ありがとう >>143 なんで聞いてるか理解できないならどっかいけ
148 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:33:47 ] >>144 プロパティの型がBooleanならそれで通る ContentみたいにObject型の場合は,ルート要素で xmlns:sys="clr-namespace:System;assembly=mscorlib" とした上で <Button><Button.Content><sys:Boolean>True</sys:Boolean></Button.Content></Button>
149 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:40:59 ] ウィンドウの大きさを変化させたとき 右下に配置したボタンがずっと右下にあるようにするにはどう設定すればいいですか?
150 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:33:09 ] Grid使うとか,DockPanelで下にStackPanel { FlowDirection = LeftToRight }配置してその中に入れるとか WinFormsのDockみたいな考え方はしない
151 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:36:55 ] 間違えたRightToLeftだった
152 名前:デフォルトの名無しさん [2009/02/09(月) 00:45:24 ] >>149 VerticalAlighnment="Bottom", "HorizontalAlignment="Right" じゃだめなの?
153 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:00:11 ] >>152 GridやPanelを組み合わせるのはよくやる <Grid> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="30"/> </Grid.RowDefinitions> <Canvas Grid.Row="0"></Canvas> <StackPanel Grid.Row="1" Orientation="Horizontal" FlowDirection="RightToLeft"> <Button Height="23" Name="button1" Width="75">Button1</Button> <Button Height="23" Name="button2" Width="75">Button2</Button> </StackPanel> </Grid>
154 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:00:58 ] >>149 だった訂正
155 名前:デフォルトの名無しさん [2009/02/09(月) 07:51:19 ] ARToolkit+DirectShow.NET+WPFのシンプルなスケルトンを作ってみた。 微妙にスレ違いかもしれないけどARToolkit関連のスレが消失しているのでここに書かせてくれ。 ちょっと前にミクさんが机の上で踊ったりする動画がニコ動で流行ったりして、 ARToolkitってのが流行ったじゃん。でも、このARToolkitって、3D描画はOpenGL、 UIはGLUTっていう融通が利かない仕様になってたり、必要なくてもOpenVRML ライブラリが必要だったり、C++以外での開発に難があったり、と(俺には)敷居が高かった。 で、brains-N-brawnさんがARToolkitの改良版のARToolkitPlusのPInvoke可能なdllと そのdllをPInvokeするC#で書いたラッパーコードを作って、さらに3D描画をWPFでやる サンプルプログラムを www.mperfect.net/wpfAugReal/ で公開したんだ。 俺はこれは使える!と思ったんだけど、brains-N-brawnさんのコードはARToolkitPlusの 色々な機能を試していて軽量なサンプルとは言い難い物だった。それで、自分でARToolkitPlus+DirectShow.NET+WPFの組み合わせの最低限の内容を持って十分に整理された スケルトンコードを書いてみた。こいつは特別なライブラリを導入しなくてもVisual C# 2008 のみでビルド可能でしかも3D部分はWPFだし、WPFだからGUIとの連携も容易だしで、 これからARを始めようとする人にはサンプルとして比較的向いているかもしれないと思う。 そんなわけでコードは sites.google.com/site/augmentedrealitytestingsite/download ここに置いてある。あと、www.nicovideo.jp/watch/sm6074669 にデモ動画を アップしてみたけど、ミクさんとかの面白いネタがあるわけじゃない。 ニッチ市場向けの内容なのに長文ですまない。せっかくだから誰かが活用してくれるとうれしい。
156 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 12:31:01 ] >>150 ,151,153,154 ありがとうございます Dock、Dockの階層化でやってみて所望の動作ができることを確認しました >>152 やってみ
157 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 15:36:09 ] >>156 152です。 <Window x:Class="WpfApplication1.Window1" xmlns="schemas.microsoft.com/winfx/2006/xaml/presentation " xmlns:x="schemas.microsoft.com/winfx/2006/xaml " Title="Window1" Height="300" Width="300"> <Button Width="120" Height="80" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0,0,10,10">Button</Button> </Window> じゃ駄目なの?と思ったんだけど、実際にはほかのコントロールも配置するんだから 実際にこんなコードにはしないね、確かに。
158 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:56:36 ] >>117 なんでTipsみたいなものをもっと大量に用意しないんだろうな。 ネットであさったりあれこれ実験したり、(それこそこういうとこで聞いたり)に 多くの人間がどれだけ無用な時間を取られていることか。 割く人員が少ない(天下のMS様だがそういう金はなぜかない)とでもいうのなら、例えば適当な学生を複数雇って、 よくあるタイプのフリーソフトを指定して(この「ちょっと高機能な関数電卓ソフト」の類似品を1からWPFで作ってみてくれ) わかりにくかった点はどこで、どう解決したのレポートを書かせて、 適当にリライトしてアップすればいい。 「ただでも習得しようと思っていたところ」だというので、 1本十万円とか1ページ1万円くらいでバイトとして喜んでやる奴幾らでもいるだろう。 節約したいならインドあたりの工科大の学生とかでいいわけで。 「WPFでこれらの見た目も機能もカラフルな数々の便利ソフトがすぐ出来ます。 全ソースと整理されたわかりやすい解説はこちらのページ群をご参照」 使う気になる人間・会社、ぐっと増えるんじゃないんだろうか。 そういうことをほとんどせず>>100
159 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 19:10:27 ] 金というか資本主義じゃなかったら今だにマンモス狩ってるだろjk
160 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 19:16:25 ] 技術オタク万歳 ゲーム廃人よりたちが悪い。 そこに付け込んだのがWPF つかわなきゃいいだけ
161 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 20:53:10 ] 今日、渋谷の書店でWPFの書籍を買おうとした かなり品ぞろえが悪かった(3,4冊くらいしかなかった) WPF大丈夫なのか? 不安になって本買うのやめた
162 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:10:00 ] まずは、WPFのなんたるかから勉強しろ。 哲学みたいなもんだ
163 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:30:56 ] >>158 とか >>160-161 みたいのは、PHPやRubyだけやってればいいと思うよ。いやマジで。
164 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:34:08 ] 本買わなかっただけでその仕打ちorz
165 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:09:11 ] いいんじゃん自分だけわかるみたいなこと言わせておけば 使う人少なければ開発続かないだけだし
166 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:37:20 ] デスクトップUIの技術自体がもうそれほど重要視されない時代で、なおかつ、 MS系技術がやたらめったら嫌われる傾向の日本では、今後も流行ることないから、 日本語ドキュメントが山ほどあるみんなが使っているものを触らないと落ち着かない人であるとか、 マイナーなものに手を付けることを、今後(その技術のエッセンスがどっかで生き残るだけじゃなくて) その製品自体が普及するか否かだけで不安になる人は、来ないほうがいいよと言ってあげただけ。
167 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:44:29 ] サンプル山ほどあるだろ
168 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:49:57 ] ほんとその通り。 UI技術に投資するなんて無駄なだけ。 もっとやるべきことがある
169 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 23:24:52 ] 勉強すればいいと思ってる馬鹿は大抵学歴が高い傾向にある 本質がわからない。辿りつけない層であり、GDPを上げるために仕込まれた人口比率の最も多い層でもある プログラミングすらしないで目的を達成させることのほうが大事 お前の言っているやるべきこともたぶん糞
170 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 23:36:27 ] >プログラミングすらしないで目的を達成させることのほうが大事 そりゃそうだが、プログラミングする以上はちゃんと勉強しろよ
171 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 23:46:35 ] 軍事技術が優先だったけど今はそいつらが集まって自動でアプリケーションを作りだす人工知能の開発に本気になってるから それまで待ってろ。もう50年もすれば人がいらなくなる
172 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 23:51:36 ] >>171 その頃ロシアでは ウォッカの生成方法を考えるAIの研究をしていた
173 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:41:09 ] >>171 未来の二つの顔だな あれの中ではナイスなAIのおかげで皆働かなくてよくなったとなってたが、もし実現しタラ超格差になるだけのような気がする。
174 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 01:08:05 ] 俺はWPFに賭ける 今すごい使い方を編み出せばMSからMVPをもらえるかも知れん やってやるぜ
175 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 01:18:21 ] >>174 釣り針垂らしてスレチの阿呆に餌を与えようとするなw
176 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 08:14:56 ] >>155 です。 せっかくなのでARToolkit+DShowNET+WPFでミクさんネタもやってみました。 まあ、このネタはもうやりつくされた感がありますが。ミクさんxamlにしたよー。疲れた。 www.nicovideo.jp/watch/sm6099189 sites.google.com/site/augmentedrealitytestingsite/download (コード) UIとかあんまり関係ないプログラムになっているけれど、WPFってUIのフレームワーク なのにビットマップエフェクトと3Dを宣伝文句にする姑息な事してきたわけだから、 3D描画に酷使してやれば本望だと。それに前にも書いたけど本家ARToolkitがGLUT べったりなのに対してWPFを使っているのでこのコードをスケルトンとして作ったプログラム ではバインディングなどのWPFの恩恵を受け易い。・・・はず。
177 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:40:41 ] CAG for WPF 日本語版出てたのね。 ttp://msdn.microsoft.com/ja-jp/library/dd365013.aspx
178 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:54:52 ] WriteableBitmapとBitmapなにがちがうですか?
179 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 13:04:35 ] 過疎ってる・・・ OpacitySliderはスライダーで、 RotateTransform rotate = new RotateTransform(0); OpacitySlider.LayoutTransform = rotate; DoubleAnimationUsingKeyFrames rotationAnimation = new System.Windows.Media.Animation.DoubleAnimationUsingKeyFrames(); rotationAnimation.KeyFrames.Add(new LinearDoubleKeyFrame(0, TimeSpan.Zero)); rotationAnimation.KeyFrames.Add(new LinearDoubleKeyFrame(360, TimeSpan.FromSeconds(5))); Storyboard rotationStoryBoard = new Storyboard(); rotationStoryBoard.RepeatBehavior = RepeatBehavior.Forever; rotationStoryBoard.Children.Add(rotationAnimation); Storyboard.SetTarget(rotationAnimation, OpacitySlider); Storyboard.SetTargetProperty(rotationAnimation, new PropertyPath("(FrameworkElement.LayoutTransform).(RotateTransform.Angle)")); rotationStoryBoard.Begin(); でスライダーは回転するんだけど、 Storyboard.SetTarget(rotationAnimation, rotate); Storyboard.SetTargetProperty(rotationAnimation, new PropertyPath("Angle")); って変更すると回転しなくなる。何でだか分かる人いる?ちなみにスライダーを回転させたいん じゃなくて、別の問題を単純化したらこうなったんだけど。
180 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 04:21:50 ] >>179 にレスが付かなくて(179は俺ね)連投みたいになってもうしわけないんだが、 Storyboardを使ってミクさんをアニメーションさせたので、またコードと動画を貼っておく。 sites.google.com/site/augmentedrealitytestingsite/download www.nicovideo.jp/watch/sm6116619 www.nicovideo.jp/watch/sm6117872 WPFって一応今の流行だと思うんだけど、何でこんなに過疎ってるの?
181 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 04:54:52 ] 必ずしも必要なものが出現するとは限らない 社員を遊ばせておくぐらいなら何かを作らせた方がいいという時だってある Vista、C#、WPFなんかがそれに当てはまる。
182 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 07:14:01 ] >180 これって、描画領域になんか重ねたりとかも出来るの?
183 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 07:31:00 ] >>182 Canvasの上にViewport3Dという構成だからCanvasに重ね描きするかその上に別のコンテナを乗っけてViewport3DとZオーダーを調節すれば良いんじゃない?ソースあるから適当にいじってみて。
184 名前:デフォルトの名無しさん [2009/02/12(木) 11:19:15 ] visual studioで app.xamlのstartupUriに指定されたウィンドウのxamlファイルの ファイル名を変更しても、リファクタが効かず、毎回手で変更しないといけない のですが、これってバグですか? ファイル名ではなくクラス名としてのwindow1の名を変更したときにはちゃんと xamlにも変更を反映してくれるので、技術的な問題と言うよりも、忘れられちゃった としか思えないんですが。 みなさん、デフォルトの"window1.xaml"のまま使っているんでしょうか?
185 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 11:27:29 ] >184 C#の仕様上はファイル名と中のクラスには何の関係もないんだから、 中に記述されていうクラスのクラス名を変えないとリファクタリングは 効かないに決まっている。ただ、その場合もxamlの記述までは置換され なかったような記憶があるけれど。
186 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 11:28:30 ] 185です。 >>184 あ、その場合にはうまく行くのね。
187 名前:デフォルトの名無しさん [2009/02/12(木) 11:52:23 ] >>186 windows formのときは メインウィンドウのcsファイルの名前を変更すると formクラスの名前も、formクラスの参照先も、designer.cs やresxファイル の名前も全部自動で変えてくれたので、Form1.csをMainForm.csとか 自分のわかりやすい名前に変えるだけで手間いらずだったんですけどね…。 理想はwinformの時みたいに、Window1.csをMainWindow.csに変更したら window1クラスの名前およびその参照先を全部MainWindowクラスにして、 app.xamlのstartupUriまで一気に変えてくれることなんですけどね。 今は ファイル名の変更、クラス名の変更、startupUriの変更と3ステップ必要 なのがにくい…。
188 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 13:13:04 ] SuspendLayout, ResumeLayout, Invoke, Refresh, Update, Invalidatedと等価なのは何でしょう?
189 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 16:08:23 ] すいません、「WPF」での「Dim IconB As Icon = Icon.FromHandle(Icon_hWnd)」はどこにあたるのでしょうか? WPFでIconは全てImageに変わったというのは判ったのですが、アイコンハンドルから画像に変換することができませんでした。 もしかして、別の方法でハンドルからアイコン画像を変換する方法があったら教えてください。 よろしくお願いしますm(_ _)m
190 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 16:33:13 ] >>187 186です。 Windows formsだとそうなんだ。知らなかった・・・。 IDEがスタイルを強要するみたいで個人的には嫌だけど、スタイルが受け入れられるなら便利では あるね。それと多分JAVA出身の人なんかはファイル名と中身が関連付かないと気になるんだろうね。 そう言えば、System.Windows.Forms.Formを含んでいるcsファイルを開くと必ずデザイナが 開いて、csファイル毎にデザイナで開くかエディタで開くか設定できないのも個人的には嫌だった なあ。しかも、Formを継承したクラスが一番初めにないとエラーが出たり。Windows Formsでは C#とクラスライブラリの仕様だけでなくIDEの支援もセットでUIのフレームワークを形成して いたんだよね。昔のVBと同じで。それがWPFで解決されてUIはC#から独立した言語/デザイナ で定義するようになったのだから今さら言語仕様にない事をIDEが勝手な判断で手出しするのは 控えてくれた方が個人的にはうれしいなあ。x:Classなんて一属性に過ぎないのだからxamlの ファイル名と勝手に関連付けられたりしない方がすっきりする。まあ個人的な見解ですが。
191 名前:>>189 mailto:sage [2009/02/12(木) 16:49:52 ] 自己解決しました。
192 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 16:53:15 ] >>191 俺は知らない事なので、せっかくだから解決内容を書いてもらえるとうれしい。
193 名前:>>189 mailto:sage [2009/02/12(木) 17:11:01 ] もっとスマートならいいのですが、本当に自己が満足しただけの解決なんです orz WPFでフォームをホストしてから、その中で「FromHandle」を使っただけという残念な方法です。 恐らくWPF内でForm系列のものを利用できるような方法があると思うのですがMSDNにも載っていないようなので諦めました(爆
194 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 17:14:34 ] ttp://msdn.microsoft.com/ja-jp/library/system.windows.interop.imaging.createbitmapsourcefromhicon.aspx
195 名前:>>189 mailto:sage [2009/02/12(木) 17:54:54 ] >>194 さんありがとうございます! 何とか無事にアイコン取得できそうです。 Win32との相互というのは覚えとくべきですね
196 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:33:09 ] SendToBackってどうすればいいですか?
197 名前:デフォルトの名無しさん [2009/02/13(金) 05:52:26 ] 最近、WPFが遂に流行ってきた気がする
198 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 06:29:43 ] ない
199 名前:デフォルトの名無しさん [2009/02/13(金) 21:04:43 ] また、プログラミング言語ごとの募集要項での平均年収について、2007年から2008年にかけての上昇 額ランキングを見ると、C#が前年比66万6000円増と大幅に上昇した。2008年における平均年収ランキン グでも1位となっている。 ttp://headlines.yahoo.co.jp/hl?a=20090213-00000000-zdn_ait-sci ついに来たな、時代が俺に追いついた
200 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 21:15:54 ] まじかああああああああああああ ついにきたあああああああああああああ
201 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 22:49:06 ] >>199 ちょっと前と比べてかなり速くなったしドライバとかでもない限り今わざわざCやC++でやる必要もなくなってきたしな ASP.NETやSilverlightもあるしMonoを使えばMacでもLinuxでもUnixでも動くしバックにマイクロソフトがいる 何が言いたいのかって言うと今までが安すぎたんじゃねってこと ついでにこれ貼っておきますね japan.zdnet.com/news/internet/story/0,2000056185,20388173,00.htm
202 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 23:05:22 ] Miguel、GNOMEやってたときはかなり偏屈なあんちゃんだったように思うが なんかもう完全にMSの飼い犬になってるな。そのうちNovellやめて MSに入社するんじゃないか?
203 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 23:25:04 ] >>202 年を重ねるうちに丸くなったかお金のおいしさをしったかのどっちかだろうな
204 名前:デフォルトの名無しさん [2009/02/14(土) 02:03:55 ] クラスライブラリ(dll)からWPFのwindowを作成して表示するには どうしたらいいんでしょうか? winformなら「新しい項目の追加」でformを追加しておいてnewしてshowすれば 表示できましたが、WPFだとそもそもユーザーコントロールしか追加項目 に現れてきませんが、そういうことはそもそもできないんでしょうか?。
205 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 07:59:16 ] WPF試して見ようと思ったんですが、 3.5のSP1インストールできないんだがどうすればいいんですか・・・? [02/14/09,05:10:52] Microsoft .NET Framework 2.0a: [2] Error: Installation failed for component Microsoft .NET Framework 2.0a. MSI returned error code 1603 [02/14/09,05:11:18] WapUI: [2] DepCheck indicates Microsoft .NET Framework 2.0a is not installed. [02/14/09,05:36:58] Microsoft .NET Framework 2.0a: [2] Error: Installation failed for component Microsoft .NET Framework 2.0a. MSI returned error code 1603 [02/14/09,05:37:28] WapUI: [2] DepCheck indicates Microsoft .NET Framework 2.0a is not installed. [02/14/09,07:56:44] Microsoft .NET Framework 3.5 'package': [2] Error: Installation failed for component Microsoft .NET Framework 3.5 'package'. MSI returned error code 1603 [02/14/09,07:56:54] WapUI: [2] DepCheck indicates Microsoft .NET Framework 3.5 'package' is not installed. よろしくお願い致します。
206 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 11:49:00 ] エラー文抜き出して検索すれば早いだろうに。 detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1115761341 それにスレチな。
207 名前:デフォルトの名無しさん [2009/02/14(土) 13:05:02 ] >>204 自己解決しました。 いったんUserControlを新規項目として追加して UserControlをWindowにxaml側、cs側両方で書き換えたら 普通に new →show()で表示することができました。 でもなんでIDEから簡単にwindow追加できないんだろう。
208 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 13:22:51 ] >>206 それはもうやりました・・
209 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 06:33:21 ] ARToolkit+WPFで今度はミクを溢れ出させてみました(というか簡単な物理シミュレーション)。 www.nicovideo.jp/watch/sm6155021 sites.google.com/site/augmentedrealitytestingsite/download (ソース:ARWithWPFMikuEmitted.zip) WPFの3Dにもようやく慣れてきた・・・
210 名前:デフォルトの名無しさん [2009/02/15(日) 14:47:42 ] ListBoxの選択色を変えるにはどうしたらいい?
211 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 15:59:42 ] msdn.microsoft.com/ja-jp/library/system.windows.controls.listbox.itemcontainerstyle (VS.95).aspx このプロパティに、TemplateプロパティにListboxItemをターゲットとするコントロールテンプレートを割り当てるSetterを含むスタイルを与えてやればよい、と思う。そのコントロールテンプレートの中でTriggerを設定するのね。 ListViewの場合でしかやった事がないので外してるかもしれないけど。
212 名前:211 mailto:sage [2009/02/15(日) 16:11:46 ] じゃなかった。 確か、ItemContainerStyleプロパティに割り当てるスタイル中で、<Style.Triggers Property="IsSelected" ...みたいにやれば良いという単純な話だった気がする。 何かの理由でデフォルトのコントロールスタイル中の同様のトリガーが優先されてしまうために コントロールテンプレートまで書き換えた事があったんだけど、多分普通は↑で済むと思う。
213 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:18:26 ] >>211 ,212 試してみる。ありがとー
214 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:18:31 ] もっと簡単にできる wpf listview selection colorでぐぐったらすぐ出てくるよ
215 名前:211 mailto:sage [2009/02/15(日) 16:31:34 ] 試してみたけど、やっぱりTemplateプロパティを書き換えるのも必要だね。 <ListBox> <ListBoxItem>Apple</ListBoxItem> <ListBoxItem>Orange</ListBoxItem> <ListBoxItem>Grape</ListBoxItem> <ListBox.ItemContainerStyle> <Style TargetType="{x:Type ListBoxItem}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ListBoxItem}">
216 名前:211 mailto:sage [2009/02/15(日) 16:36:10 ] <Border Name="Bd" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true"> <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> </Border> </ControlTemplate> </Setter.Value> </Setter>
217 名前:211 mailto:sage [2009/02/15(日) 16:37:15 ] >>214 あれ、俺道化?まあとりあえず最後まで書くので必要なら使って。 <Style.Triggers> <Trigger Property="IsSelected" Value="true"> <Setter Property="Background" Value="LimeGreen" /> </Trigger> </Style.Triggers> </Style> </ListBox.ItemContainerStyle> </ListBox> コントロールテンプレートはPresentationFramework.Classic.dllからReflectorのBAML Viewewプラグインを使って抜き出して、トリガー関係をごっそり削除したもの。関係ないところまで消しちゃっている(IsEnabledのトリガーとか)ので、実際にはもう少し色々試してみて。
218 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 00:55:57 ] リアルタイムで受信したデータに応じて色々表示変えたいんだが、データに応じてUIElementを色々入れ替えたりすると言うことでよいのかな?Rectangleの色だけを変えるとかってできましたっけ?
219 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 12:51:56 ] Vistaで動かすともっさり、XPだとまあまあなアプリ Windows7だとどうなりますか?快適に動くでしょうか?
220 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 13:03:24 ] 一般論として最適化はされているみたいだね。 俺は、古いPCにWindows 7を入れたので細かいパフォーマンスの比較はできないけれど、 WPFアプリの起動は確実に速くなっている。
221 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 18:17:05 ] >>214 って結局どんな方法? ググって見たけど、デフォルトのテンプレートが使っているリソースのキー名で ブラシをListBoxのスコープのリソースで定義する方法しか出なかった。 チートっぽいけどこれ?
222 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 19:10:53 ] >>218 Rectangle.Fill変更すれば変わるっしょ
223 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 23:30:51 ] >>222 グラフのようなもの変えるんだとLineElementをつくり変えて入れ替えないと駄目なのかね? とりあえずうごくんだがなんか無駄な子としてるような気が・・・
224 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 07:35:15 ] 折れ線変化させたりする程度なら、 Polyline置いてdependency property使えば瞬殺だと思うんだが
225 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:01:40 ] WPFでアンチエイリアシングを無効にする方法 ttp://blogs.msdn.com/hiroyuk/archive/2009/02/16/9425120.aspx >これを無効にするには、RenderOptions.EdgeMode="Aliased" を使います。 これってフォントには応用できない?単純にテキストボックスに対してこれやってもなんも変わんなかった
226 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:10:32 ] msdn.microsoft.com/ja-jp/library/aa970908.aspx#guidelines リンク先の直前に >Windows Presentation Foundation (WPF) は常にアンチエイリアスされたテキストを >生成します。生成されたテキストが静的な場合は、ピクセル スナップされます。これに >より、グリフがピクセルグリッド上に直接配置されて、アンチエイリアスされたテキス >トの外観が鮮明になり、テキストがよりクリアになります。ただし、Windows Presen >tation Foundation (WPF) が、スクロール、スケーリング、アニメーション化された変 >換など、アニメーション的な動きを検出すると、そのような動きが完了するまでピクセ >ルスナップはオフになります。アニメーションやスクロールの動きが完了すると、ピク >セル スナップがゆっくりと復活します。 だそうなので、アンチエイリアスはするけれど、ぼやけないように気は使ってくれるみたい。 だから気にしないで良いんじゃない?
227 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:37:37 ] 気になっちゃうんだもん・・・ WindowsFormsHost 使えばいいんだけどさ
228 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:42:45 ] 俺はむしろ、ClearType万歳、アンチエイリアス万歳!だけどなあ。
229 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:49:20 ] さすがにビットマップフォント使えばアンチエイリアシングされないと思わない?
230 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:55:04 ] Bitmapに描画すればアンチエイリアスはかかるかも知れないけど ClearTypeにならないんじゃね? RGBディスプレイで作った画像がBGRディスプレイで見ると悲惨になるような設計されてないはずだし。
231 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:19:01 ] blogs.msdn.com/adam_nathan/archive/2005/10/24/using-com-interop-to-create-a-wpf-visualization-for-windows-media-player.aspx ここからダウンロードできるwpfwmp.zipが壊れているんだけど、誰か壊れていないやつを ダウンロードしていて、今も持っているって人いない?はじめから壊れていたらどうしようも ないし、持っている人が偶々このスレ見ているなんてそもそも可能性がすげー少ない話なんだが。 Adam Nahanさんにも怪しい英語でメールしたけど、返事が来ない・・・ C#+WPFでWMPの視覚エフェクトが作れるってすごく面白そうなんだけど、COMの知識がないから COM InterOpもわけわかめなんだよね。一週間待ってwpfwmp.zipが手に入らなかったら勉強 してみる。 それまでに、 >Make your class implement the IWMPEffects COM interface. >I manually defined this interface in C# based on the IDL definition in the Media Player SDK. をわざわざやってくれる奇特な人も募集中。Windows Media Player 10 SDKは msdn.microsoft.com/en-us/windowsmedia/bb190309.aspx から手に入るみたい。
232 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:29:19 ] idlがあるならmidl.exeとtlbimp.exeでdll作れよ
233 名前:231 mailto:sage [2009/02/17(火) 21:11:56 ] >232 ちょっと調べて知恵をつけて midl /newtlb effects.idl してみたんだけど、effects_i.c, effects_p.c, dlldata.cしかできない・・・ これ以上は初心者板向けになりそうだから、一週間たってwpfwmp.zipが手に入っていなかったら まじめにCOMを勉強するわ。
234 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 21:44:31 ] >>224 殺しちゃうのかよw
235 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 21:46:25 ] ScrollViewer のインスタンスの垂直スクロールバーが 一番下まで来たかどうかを調べる方法って、どうすればいいんでしたっけ? やりたいことは ScrollViewer に対して、コントロール内で PageDown() メソッドを 呼んだあと、もうこれ以上ページを下におろすことができないかどうかを知りたい。 でもなんだかうまくいきません。 ぐぐっても出てこないし、歯がゆい。 もしご存知でしたら教えてください。。。。。。
236 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:51:36 ] WPF 勉強中なんですが、 Windows に Image を張って、 そこに、jpg 画像ファイルを読み込みました。 この画像ファイルに、文字列を書き込みをしたいんですが、 どのようにしたらよいでしょうか? Image.Source から、DrawingContext を生成してなるのかな と思いますが、やりかたがわかりませんでした。
237 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:54:21 ] 画像にじゃなくて画像ファイルに?
238 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:56:16 ] 画像に、です すいません
239 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:02:28 ] >>235 HorizontalOffset/VerticalOffsetとScrollableWidth/ScrollableHeight
240 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:02:51 ] >>236 なんでもかんでもGraphcsで描くWinFormsとは根本的に考え方が違うんだよな 特殊な場合を除いて基本的にDrawingContextは使わない DrawingVisual作ってImageDrawingやGlyphRunDrawingを追加して RenderTargetBitmap.Renderが正当かな
241 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:09:31 ] Canvas使うとかAdorner使うとか色々あるぜ
242 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:15:13 ] いずれにしても元のImageSourceに直接描くのは無理 >>236 じゃないけど,最終的にRenderTargetBitmap以外の方法はあるのか知りたい
243 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:24:25 ] WPFのコントロールテンプレートで迷ってしまいました、どうもラジオボックスの連動がうまく行きません。 <Window.Resources> <Style TargetType="RadioButton" x:Key="Test_Style"> <Setter Property="RadioButton.FontSize" Value="20"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="RadioButton"> <StackPanel> <RadioButton x:Name="tet" Content="!" /> </StackPanel> <ControlTemplate.Triggers> <Trigger Property="IsChecked" Value="True"> <Setter TargetName="tet" Property="IsChecked" Value="True" /> </Trigger> <Trigger Property="IsChecked" Value="False"> <Setter TargetName="tet" Property="IsChecked" Value="False" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </Window.Resources> <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center"> <RadioButton x:Name="RadioButton_1" Style="{StaticResource Test_Style}" Content="RadioButton__1" IsChecked="True" /> <RadioButton x:Name="RadioButton_2" Content="RadioButton__2" IsChecked="False" /> </StackPanel>...
244 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:26:56 ] >>242 ImageDrawingは? 何をもって最終とするのか知らんが
245 名前:242 mailto:sage [2009/02/17(火) 23:30:47 ] 元の画像に文字を合成したImageSourceを得たいんでしょ その完成したImageSourceを作る段階
246 名前:>>189 mailto:sage [2009/02/17(火) 23:30:52 ] やりたいことは、普通にフォームにラジオボックスに2つ張った状態を目標にしています。 通常ならどちらか一方がチェックされれば、もう片方はチェックが外れるようにしたいです。 この方法では一度ならラジオボックスのチェックがどちらか一方に付くようになるのですが、 もう一度チェックしなおすと両方がチェックされた状態になってしまいます。 プロパティの値も実際に見てみたのですが、一度だけ成功していますが、それ以降は値が変化していないということになりました。 Private Sub Window1_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded MsgBox(Me.RadioButton_1.IsChecked & vbCrLf & Me.RadioButton_2.IsChecked) End Sub true:False Private Sub RadioButton_2_Click(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles RadioButton_2.Click MsgBox(Me.RadioButton_1.IsChecked & vbCrLf & Me.RadioButton_2.IsChecked) End Sub False:True Private Sub RadioButton_1_Click(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles RadioButton_1.Click MsgBox(Me.RadioButton_1.IsChecked & vbCrLf & Me.RadioButton_2.IsEnabled) End Sub True:False (ここで見た目は両方ともチェックされた状態になってしまうが、値は希望通り)
247 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:32:07 ] >>246 コレハンミスです。 よろしくお願いします m(_ _)m
248 名前:236 mailto:sage [2009/02/18(水) 00:01:49 ] RenderTargetBitmap でいけそうです。 ありがとうございました。 >>245 そのとおりです。 238は俺じゃないんだが・・・。 書き込んだのを忘れてるんだろうか。
249 名前:244 mailto:sage [2009/02/18(水) 00:08:35 ] DrawingImageだった 名前が紛らわしいよまったく
250 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:23:35 ] DrawingImageは保存できなくね?
251 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:25:49 ] >>248 その年でもう健忘症か? ほっとくと中川みたいになるぞ 病院いってこい
252 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:37:56 ] 保存は条件じゃないっしょ
253 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 03:22:56 ] コードでResourcesを設定して、XAMLからStaticResourceとして読み込んでいるんだけど デザイナ側はコードで設定される事を知らないので >読み込みで問題が発生しました >デザイナを読み込む前に修正しなければならないエラーがドキュメントに含まれています。エラーを修正してからデザイナを再度読み込んでください。 と言われてデザイナが読み込まれない。 このケースだとXAMLでリソースを定義してDynamicResourceとして読み込ませておいて、InitializeComponent後に設定するのが正攻法だと思うけど <Window.Resources> <app:Test x:Key="Test"/> <Window.Resources> この定義方法だと、勝手にインスタンス作ろうとして引数0のコンストラクタがないとエラーになってしまう。 デザイナにコード側で設定されるって事を教えるにはどうすべきなのでしょうか。
254 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 09:30:38 ] ObjectDataProvider使えばコンストラクタに引数渡したり、メソッドの結果にバインドできるのか。
255 名前:231 mailto:sage [2009/02/18(水) 12:53:18 ] >232さんの助言のお陰で、わりと上手く行っています。Adam Nahanさんからの返信はまだ ありませんが、どうやら自力でできそうです。>232さん、ありがとうございました。
256 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 13:11:13 ] WPFでGDI風にテキスト書かせたりするのはどうすればいいですか? ちなみにxamlはつかってません C#でしこしこ書いてます
257 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 13:21:49 ] コンテキスト.DrawString("a")みたいなの? OnRenderをオーバーライドすればそれっぽいことができるけど激しく非推奨 要素を置いていくだけで同じことできるしパフォーマンスも良くないし何よりWPFらしくない
258 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 13:25:51 ] 初心者でよくわかってないんです どうすればいいでしょう? データ更新が多いのでできるだけ早く描画したいのですが
259 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 13:31:38 ] 頻繁にOnRenderで更新するのは最悪 普通に要素を置いていったあとはそれらのプロパティの変更だけですませて できるだけ要素の入れ替えは行わない 画面に表示するだけならDrawing系の要素を使うと軽い
260 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 13:41:41 ] うー Drawing系の要素って何?orz
261 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 13:47:07 ] msdn.microsoft.com/ja-jp/library/aa970683.aspx このへん読め 理解できないなら理解できるようになってから気にすればいい
262 名前:>>243 mailto:sage [2009/02/18(水) 15:42:07 ] 何の参考にもならないと思いますが、何とか希望通りの動きをするようになったのでメモしておきます。 <Window.Resources> <ControlTemplate x:Key="RadioButtonControlTemplate1" TargetType="{x:Type RadioButton}"> <StackPanel> <Label Content="{Binding RelativeSource={RelativeSource AncestorType={x:Type RadioButton}}, Path=IsChecked}" /> </StackPanel> </ControlTemplate> </Window.Resources> <StackPanel x:Name="LayoutRoot" VerticalAlignment="Center" HorizontalAlignment="Center"> <RadioButton Content="RadioButton" Template="{DynamicResource RadioButtonControlTemplate1}" /> <RadioButton Content="RadioButton" Template="{DynamicResource RadioButtonControlTemplate1}" IsChecked="True" x:Name="radioButton" /> </StackPanel>
263 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 15:42:50 ] わからん Drawing系の要素、なんて言葉どこにもでてこない textBlockとかいうのつかったほうがはやいってことか?
264 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 15:47:13 ] System.Windows.Media.Drawingクラス(の派生クラス) 画面に描画するにはDrawingVisualを使う
265 名前:235 mailto:sage [2009/02/18(水) 18:03:32 ] >239 レスありがとうございます。 各プロパティで試してみたのですが、うまくいかない原因は別にあったようです。 実際にスクロールバーの制御をおこなうときに、スクロールバーが表示されていなかったという 何ともお粗末な原因でした。 穴があったら入ってゆっくり眠りたい気持ちです。
266 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 23:41:20 ] なんでwpfのスレが伸びまくるんだろうか?
267 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 00:04:13 ] いいドキュメントがないから
268 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 02:58:30 ] 本もほとんどないしな
269 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 10:17:53 ] 決定版が一冊出ればそれでいいんだけどな
270 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 15:11:22 ] 決定版ドキュメントが一冊出れば飛び付くんだが、最近の有力なエンジニアは 自ブログの充実ばかりで、書籍の執筆熱が冷めている上に、インターネットに 押されている出版社も支援が薄い。 出し惜しみ+買い控えの無限ループ → 書籍出版の衰退
271 名前:>>189 mailto:sage [2009/02/19(木) 15:58:19 ] Blendが自動でコード補助とかしてくれたらわかるけど、ヒントすら出てくれないからヘコしんどい
272 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 16:16:14 ] MSDNが使いづらい 探したいものがあって検索してもなかなか見つからない 数十分かけてやっと見つかったと思ったら大雑把にしか書いてなくて迷うこともある >>271 ヒントでねーわ選択画面ねーわで結局本片手にやるはめになるよな
273 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 16:20:57 ] IntelliSenseが最強の教師って状況はおかしいよな。
274 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 21:38:21 ] Silverlightのドキュメントなんかもっと酷いよ
275 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:10:32 ] MSDNで直接探すのは、どこに書いてあるか見当がつく場合ぐらいだなぁ 特定のクラスについて調べたいとか、この辺に探してるやつがある筈 と思う時ぐらい 調べる対象が漠然としてる時は、ググった方が早いね。
276 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:43:21 ] >>275 クラス名でググった方が早くね? www.google.co.jp/search?q=System.Diagnostics
277 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 23:48:27 ] WPFをMicrosoft Blendで作るのと、Visual Studioで作るのって何が違うの? 分裂したメリット、デメリットが判らない。 自分的にはVisual Studioではコード候補が出るから何とかなる気もする、 Blendは即コンパイル。 こんな感じ?
278 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 00:06:39 ] プログラマーとデザイナーが同時に作業できるようにってことだったと思うけど タダで配るならともかくこれは完全に失敗だよな
279 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 01:18:31 ] Blendがもっと手軽にコントロールテンプレートを弄り倒せるツールだったらヤル気がでた。
280 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 01:28:46 ] >>277 多分Blendに存在価値がないのが問題 どう見たってプログラム素人が手ェ出せるUIじゃないだろ・・・
281 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 02:25:33 ] >>280 xamlを意識しなければそれなりに使えそうだけどなぁ ただ、デザイナじゃないからblendは使いこなせなかったけどw とりあえず、フォーカスするとキモい挙動をする(グラデーションが動く)ボタンなら簡単に量産できると思う。 (センスのない自分が嫌になれるよ!)
282 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 07:43:01 ] 色とかかえたりするにはまぁいいんだけどね・・・ 何つーかもうちょっと全体的に使いやすくなって欲しいんだよなぁ FLASH用のツール作ってた人なんだろ、これ作ったの。
283 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 08:52:06 ] xamlとC#の変換ツールないですか? いきなりxaml使えといわれても何やってるのかよくわからないものは気持ち悪くてさわれない
284 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 09:37:19 ] >>283 それを言うならxamlとC++の変換じゃないの? C#から使うものだけど実装自体をC#でやってるわけじゃなかろう。 俺は詳しくないからxamlをパースしたあとC#に変換しているのか C++で直接動かしているのか詳しくは知らないが、 283はC#のメモリ管理が内部で何やってるかわからんから気持ち悪いとか言って わざわざC++で書いたりするわけじゃないんだろう? ああいう記法でラッピングした以上制約が色々あるから気になるならWindowsFormでやればいいし そこまで潔癖に気にするやつが使う代物でもないと思う。
285 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 10:11:12 ] むしろaspxだろうJK
286 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 13:02:03 ] >>284 これはひどい > C#のメモリ管理が内部で何やってるかわからんから気持ち悪いとか言って CGの動作原理を理解すれば気持ち悪くなくなる 同様に、XAMLとC#の対応関係を理解すれば、XAMLに対する気持ち悪さも消えるだろう 対応関係はDependencyPropertyの解説などを見れば、だんだんわかってくるが、 てっとり早く理解する為に変換ツールが欲しくなるのも理解できる けど、変換ツールは見たことないな ライブラリはXAMLをパースして、(ILを出力せずに)直接オブジェクトを生成しちゃってるし
287 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 13:53:48 ] XAMLがC#のコードとして表示されてるのを見たことある気がするんだが、 VisualStudioにそういう機能なかったっけ?
288 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 14:08:35 ] アプリケーション定義のxamlならobjフォルダにC#コードが出力されるけど。
289 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 14:15:58 ] <x:Code> ``` </x:Code> のことを言ってたりする? これならXAMLの中にそのまま記述できるけど?
290 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 14:34:26 ] >>288 ああ、それだった。たいした情報はないのな。
291 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 16:03:42 ] >290 StartupUriのxamlをフレームワークのAPI使ってロードするだけのコードだからね。
292 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 21:04:52 ] >>283 はXAMLがどうC#と関連づけられるか分からないから気持ち悪いと言っているんであって、 >>284 が言うようなC#のメモリ管理なんて言ってないだろうが。 XAMLで書けることはC#で書けるんだから、C#がわかるなら気持ち悪いなんて事は無いだろうに。
293 名前:284 mailto:sage [2009/02/20(金) 22:05:03 ] すまん、俺がボケかましてただけだった。 milcore直接たたいてるのはWPFでXAMLじゃなかったわな。 直接たたいてるとしたらアンマネージドだからああいう物言いになったと。 メモリ管理どーのってのはあくまでも例え。286は例えとわかってくれているが292には通じんかったようだ。 GCは挙動わかっててさえ気持ち悪いとか非効率とかよく言われるものなのに、 まずGC積んでるC#自体を気持ち悪がらないのにXAML程度を気持ち悪がる理由がわからんって事。 例え悪くてすまんな、低脳なんで。 ただ、XAMLで書けることはC#で書けるというのは大抵書いてあることだけど そのままパースして翻訳されてると俺は思ってないし、 そう考えると実際に内部で何やられてるかわからんと言う意味で 283が気持ち悪がってるのかなとは思い直した。
294 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 22:12:51 ] milcoreは最終的な一番低いレベルの描画に使ってるだけ XAMLをパースしてるのはフレームワークのマネージコード
295 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 22:20:51 ] WPFは最終的な描画以外は全部C#で書かれてるよ SilverlightはアンマネージC++にごくごく薄いマネージドの皮をかぶせただけ
296 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 22:28:05 ] >>294 ,295 把握した。
297 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 00:04:48 ] マイクロソフトの人がこのスレみて反省してくれればいいのだが
298 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 01:52:02 ] マネージからmilcoreたたければなー
299 名前:デフォルトの名無しさん [2009/02/21(土) 09:39:09 ] 299
300 名前:デフォルトの名無しさん [2009/02/21(土) 09:39:45 ] 300
301 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:20:19 ] Dispatcher.InvokeするとTargetInvocationExceptionが起きるんですが、どうすれば回避できるのでしょう?
302 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:25:45 ] 中身(InnerException)は?
303 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:27:50 ] ごめんなさい、知識なさ過ぎて答えられません InnerExceptionとは何でしょう?
304 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:48:19 ] ああ、TargetInvocationExceptionっていうのは呼び出した先でエラーが起きてるってことなのですか? 検索してもさっぱりわかりませんでした それでは調べてみようと呼びだしてるメソッドの中身をtry catchで囲んでみたらなぜかエラーが起きなくなりました なにがおきてるんでしょう?
305 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:56:08 ] try{ ほにゃらら }catch(Exception e){ MessageBox.Show(e.InnerException.ToString()); } してみたら?ていうか、キャッチしなかった場合にデバッグ環境で表示されるダイアログでも InnerExceptionは見れるけど。
306 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:58:33 ] ごめんなさい、エラーおきてました 時間なくてあせってて 原因もわかりました お騒がせしました お付き合いありがとうございました では
307 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:14:02 ] e.ToString() したら InnerException も連鎖的に出してくれたような
308 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:23:18 ] TargetInvocationExceptionが起きると出してくれないんですよ だから何が起きてるのかさっぱりわからなくてパニくりました はずかしい
309 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 01:12:03 ] 違うスレッドで起きてる例外だからスタックトレースとしては連続してないってだけだろ。 ちゃんと例外の発生したスレッドというかメインスレッド側で処理しておけ。
310 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 11:55:11 ] Blendがうんこ過ぎてメモ帳以下ですが、私の使い方が間違っているものだと思うので質問します。 BlendでBindingするときに、勝手に全ての対象へ「x:Name」を定義してしまうのですが、 デフォで親参照とかにする設定などありますか?
311 名前:デフォルトの名無しさん [2009/02/23(月) 12:51:58 ] xamlっていったんC#のコードに変換してからコンパイルされるんですか? コードビハインドのコンストラクタにあるInitializeComponent()の定義を参照 すると、window1.g.csみたいなファイルが生成されて、xamlを置き換えた windows forms時代のようなコードが見られるんですが。 そうやってるなら、いっそのことxamlなしでc#オンリーの選択肢もほしい。 RADツール使うなら、xamlだろうとc#だろうと、かわらんし。 >>283 激しく同意だ。xamlはとにかく裏で何やってるのかさっぱりわからんのが 気持ち悪い。 さっきのInitializeComponent()メソッドなんて定義がどこにもないのに、 使えることになっている。自動生成されたcsファイルいじったらどう反映される んかねえ。 だいたい、プログラムのエントリポイントはいったいどこにある んだ??? いくらなんでも隠蔽しすぎなんじゃないのかね、wpfは。
312 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 13:03:25 ] 根本的に間違ってる XAMLはC#のコードに変換しているわけではない WPF自身が実行時に直接XAMLをパースして組み立ててる window1.g.csはXAMLを読み込む処理を呼び出して 読み込まれた要素を対応するC#のフィールドに代入するためだけに生成される
313 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 13:11:51 ] C#だけでも作れるよね? xaml使ったのとC#だけのもの、初期化処理は違うとしてもほぼ等価な動作すると考えていいの?
314 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 13:25:07 ] それはもちろんそうだけど RADで生成するからxamlだろうとC#だろうとかわらんというなら わざわざC#を吐かせるメリットがない 言語別に対応しないといけないし動的に読み込むこともできないし 人間が読んだり修正したりするのも難しいし RADが人間による修正に対応するのも難しい
315 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 19:33:27 ] >>311 XAMLからコントロールの論理ツリーが生成される。〜.g.cs のC#コードはそれを参照するため。 それと、ASP.NETと違ってコントロールへはIDによるアクセスじゃなくなった。 > xamlはとにかく裏で何やってるのかさっぱりわからんのが気持ち悪い。 裏とか表ってw これはW*Fの基本理念の一つで、「1つのプログラム言語やコードで何でもでき、そして何でもやる。」 という旧態のプログラマ的な思想から脱却して、高度にモデル化され、そして機能と役目の分担が 進んだ結果、こう変化したんだよ。 >>313 できるよ。 過去の資産であるWindowsFormライクなプログラミングスタイルも継承しているからね。 過去の資産=過去の頭脳w ・・・過去の技術者を一気に冷たく捨てないところがマイクロソフト。
316 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 19:38:21 ] すごく… 胡散臭いです
317 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 20:08:53 ] UI専用の言語とその構造に基づいたデザイナという組み合わせは、C#のコードをドキュメント化 されていない流儀で自動生成するブラックボックスなデザイナよりも圧倒的に優れていると思う。 Windows Formsは昔のVisual Basicのノリから抜け出せていなかった。 それに、コンテナの配置はxamlでやって、コントロールの動的生成をコードでやって、とか、 役割分担のさじ加減をプログラマがコントロールし易い(Windows Formsでもできるけど)WPF の魅力だと思う。 xamlはxmlベースの構造的な言語だから、不明瞭なのは直接の子要素がChildrenプロパティなのか Contentsプロパティなのか、くらいだけで、同等のコードをC#で書くのってとんでもなく楽。
318 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 20:28:48 ] いやおまえら、partial classくらい知ってろよ。 2.0からずっと、UIとイベントの定義は一緒だろうが。 WindowsFormsとXAML、どっちも同じ。ASP.NETも。 XAMLはC#で全く同じものが書ける。これは最終的に一つのクラスになるから。 複数のソースで一つのクラスが定義できるのがpartial class。XAMLのように 言語が異なるのは既にASP.NETでやっている。
319 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 20:38:49 ] ここまでの議論の参加者で*.xaml.csでpartial クラスの機能が使われている事を知らない奴が いるとは思えないんだが・・・
320 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 20:53:59 ] 時代はpartial !! じゃなくてw C#使ってるならそのメカニズムくらい分かってる筈だよ。 つーか、Formデザイナからだけでなく、XML構文によるUI要素の 名前空間、クラス、プロパティ、イベントの表現が、公式フォーマットの XAMLドキュメントという定義で可能になったことが新しい。
321 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:02:35 ] そうそう。UI定義の方法は、Windows Forms時代には、デザイナが勝手な流儀で勝手にやっていただけ。でもxamlはXMLベースで標準の構造的な仕様が定まっていて、その構造の上にデザイナが 乗っかっている。だから、ブラックボックスで気持ち悪い、とはならない。
322 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:29:15 ] 以前に書き込んだC#+WPF+ARToolkitPlus+DShow.NETでミクさん大放出を、 Windows Media Playerの視覚エフェクトにしてみた。WMPのSDK的に視覚エフェクト プラグインはC++で作ってオンフレームでデバイスコンテキストに描画するように なっているので難儀したけど、C#板でCOM InterOpについて助言してもらってどう にかC#+WPFだけで全部やれた。 動画:www.nicovideo.jp/watch/sm6242828 ソース:sites.google.com/site/augmentedrealitytestingsite/download のWMPEmitMiku.zip なんかもうコンセプトがカオスになってきて、WPF板的にスレ違いっぽくなってきたので これで終わりにするわ。後の進展(あるか分からないけれど)に興味がある人がいたらニコ動の マイリストでも時々見てくれ。
323 名前:デフォルトの名無しさん [2009/02/23(月) 21:36:00 ] > window1.g.csはXAMLを読み込む処理を呼び出して > 読み込まれた要素を対応するC#のフィールドに代入するためだけに生成される いっている意味がよくわからないんだけれど、 window1.g.csはイベントのシンクとかも処理しているように見えるんだが。 フィールドの代入だけなんて代物じゃないんじゃないの? xaml全体がシンタックスシュガーかと思っていたよ。 そんなとこまで隠蔽して、
324 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:40:22 ] 323が隠蔽された!
325 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:49:21 ] window1.g.csがやってること ・リソースのXAMLを読み込む(Application.LoadComponentに丸投げ) ・ロード後,CLRフィールドに要素を代入 ・イベントハンドラのアタッチ
326 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:59:07 ] C#だってILに変換される。それを隠蔽とは言わない。 期待される動作が一通りで、その通りの動作をするのならば、より低いレベルが隠蔽されていても 問題にはならない。必要に応じて高レベル、低レベルを使い分ければ良い。 ブラックボックスが気に食わないのは、ただ一通りの動作を期待できないからで、それは知識不足 のせいだと思うんだけど。
327 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:13:06 ] XAMLをAPIでパースして、親子関係にのっとり それぞれのUI用クラスを生成してるだけだろ? どこが隠蔽されてて気持ち悪いのかぜんぜんわからねーよ。
328 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:22:48 ] バインディングとかがイベントで実装されている事を知らずに、謎のコードが自動生成されている とか勘違いしているのかなあ。 俺が気持ち悪く感じるのは、XAML記述上の直接の子要素がどのプロパティ(ChildrenとかContentとか) に対応するのかXAMLを見ただけでは分からない事だけだ。まあ確かにこれだけは気持ち悪い。
329 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:14:26 ] 以前アップしたXAMLを使わないWPFの例 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8924.txt 一番下のXAMLのWindowsタグをPageに変えて、utf-8でhoge.xamlで保存。 IEで開けばloose xamlでも動く。
330 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:42:06 ] >>322 ARToolKitはC++でライブラリをラップして、 DLL作ってから参照してるのかいな?
331 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:57:40 ] >>330 その部分はbrains-N-Brawnさんの仕事。 ``ARToolKitPlus - modified to be a DLL and export C-style functions that can be pInvoked from C#'' www.mperfect.net/wpfAugReal/ その部分だけpure .netじゃない。そのDLLをPInvokeするラッパはbrains-N-Brawnさんのを拝借 していてそれはpure C#(PInvokeがpureかは別として)。それからDShow.Netも(COM InterOpが pureかは別として)pure C#。そんでもって3D出力は、NyARToolkitなんかがDirectX SDKに含まれる Managed Direct Xを必要とするのに対しこちらはWPFの3Dを使用しているのでまあ敢えて言えば pure(標準の) C#。 というわけで、上記DLLを除いて、オリジナル・非オリジナルのコードいずれも完全に標準のC#と .NET 3.5(WPF)で書かかれている。まあ、NyARToolkitなんかはARToolkitのコードをマネージコード に真面目に移植しているので、どっちがpureかというのは微妙だけど。でも、3D出力がWPFである点 によって、とっつき易いアプローチになっている面は確実にあると思う。というか、それで無理やり 関連付けてこのWPFスレに投稿しているわけなんだが。
332 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:58:25 ] ごめん、改行が変になって読みにくくなった。
333 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:00:05 ] Windows フォトギャラリーで露出とかコントラスト調整すると スライダーの移動に合わせてほぼリアルタイムに描画されるんですが、 この機能を自作 WPF プログラムに実装したい場合どうすればよいでしょうか?
334 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:07:08 ] WriteableBitmapでも使って更新しまくれとしか答えようがない 画像処理自体はスレ違い
335 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:10:59 ] 詳しくないんだが、一応バインディングとかINotifyPropertyChangedインタフェースとかの話題じゃないか?
336 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:17:39 ] ビットマップの方更新するだけでよかったはず
337 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:19:37 ] どのタイミングで更新、っていいたいんじゃ?
338 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:22:30 ] ダイナミックリソースとかバインディングじゃないの?
339 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:22:59 ] >>331 を、便利な物を作ってる人がいたんだ!。 ARには興味あったのでいじくってみる。 ソース読ませていただきます。
340 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:24:30 ] よし、リフレクタの出番だ。 www.red-gate.com/products/reflector/
341 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:27:05 ] ほんとにビットマップ更新するならバインディングじゃどうしようもない SliderのValueChangedイベント使うくらい
342 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:38:30 ] 結局C#なのね
343 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:43:21 ] >>333 の言いたいことってこういうこと? blogs.wankuma.com/kazuki/archive/2009/01/12/166166.aspx
344 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 09:29:03 ] >>323 はタブーに触れて消されちゃったんだなあ。
345 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:55:23 ] 入力可能なDataGrid風ListView↓使ってる人っている? ttp://pro.art55.jp/?eid=908012 ttp://d.hatena.ne.jp/Yamaki/20070706/1183688885 テキストの編集中、右クリックでTextBoxデフォルトのContextMenuを開くと TextBoxがキーボードフォーカスを失い、編集モードを終えてしまうんだけどそういう風にはならない? ContextMenuのアイテムも選択できない。
346 名前:333 mailto:sage [2009/02/24(火) 22:01:41 ] おまえら、エスパーすぐるw >>343 そこを参考にして画像ビューワーを作ってて、 >>341 のイベントで、 >>334 の方法で自前で露出の調整をしたら、 イベントの処理に5秒もかかっちゃって、 がんばって最適化しても1秒を切ることができなくて、 ためしに、 Vista の Windows フォトビューワーいじってみたら 瞬時に変わるので、これは、GPU 使ってるとか、DirectX 使ってるとか、 なんか自分の知らない WPF テクニックがあるのかと思って質問しました。
347 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:10:35 ] だから、>>340 のリフレクタで解析してみなよ。 俺、Windows XP⇒Windows 7ベータだから、Windows フォトギャラリーないんだ。
348 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:17:07 ] WPF自体はDirectXつかってるけどな
349 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:46:22 ] 単に画像処理の実装が悪いだけだろ WPF自体の描画更新なんか画像処理に比べたら一瞬
350 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:47:51 ] unsafeってしってるか?
351 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:48:31 ] Bitmapの処理はメモリをロックしてアンマネージでポインタを使わないと遅いぞ〜。
352 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:52:26 ] ここはWPFスレですよ WiteableBitmapは十分速いよ もともと>>351 みたいな書き込みの方法しか用意されてない
353 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 23:03:59 ] writeableBitmapにコピーするデータ作るのに時間かかってるんだろうが
354 名前:333 mailto:sage [2009/02/24(火) 23:05:09 ] >>347 >>340 は俺へのレスだったのか。すまん。 reflector は知ってたけど、Windows フォトギャラリー って .net のプログラムだったんだ? 今日は出先なんで無理だが、家帰ったら試してみる。 >>349 そうなんだよ。だから、フォトギャラリーがどうやってるかわかればなぁ・・・と。 >>350 >>351 >>352 WritableBitmap で unsafe でポインタ使っても遅くて、 C++ で書き直して1秒切るところまでいったんだが、 まだ遅いので質問するにいたったわけです。
355 名前:333 mailto:sage [2009/02/24(火) 23:06:15 ] >>353 そのとおりです。
356 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 23:07:03 ] アルゴリズムが違うとか,プレビュー用に簡易に処理してるとか いずれにしてもこれ以上はスレ違い
357 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 23:13:09 ] HLSLでやってみるとか WPFでも使えるようになったことだし
358 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 23:21:00 ] >>354 もはやあれで半分反則だけどこんなのがある。反則なので速いと いっていいのかわからんが ttp://www.codeplex.com/wpffx 川西先生の紹介↓ ttp://blogs.msdn.com/hiroyuk/archive/2009/02/09/9407704.aspx ちなみにちょっとビルドに注意。Codeplex にある別のやつがいる
359 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 04:54:37 ] Windows Formsコントロールのオーナードロー拡張なんてもういやだ。 WPFの入れ子コントロールとXAMLが欲しい。 あと文字の強制アンチエイリアスはさせたくない。 こんな要望に対するソリューションて現状ある?
360 名前:347,340 mailto:sage [2009/02/25(水) 05:17:51 ] >>354 え、WPFスレで、しかもWPFでどうやるのかって質問だったから、.NETプログラムなのかと勝手に 勘違いしてしまった。そうでないのなら、普通にシェーダ使ってるんじゃないの? 純粋なWPFアプリケーションだとしたら、>>358 なんかで紹介されているWPFでのシェーダの使用 は最近の更新で可能になったものだから、Vista標準のプログラムとしてはないと思う。 結局、.NETプログラムじゃない、シェーダを使ってるか、画像処理を気合で頑張っている、つまり スレ違いって所で落ち着きそうだ。
361 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 06:14:00 ] >>359 XAMLの中で、例えばテキストボックスに <TextBox RenderOptions.EdgeMode="Aliased" x:Name"textbox1" 〜 /> と記述した場合、カーソルバーは1ドット幅の縦棒でシャキーンと表示されるけど、テキスト文字だけは 常にアンチエイリアス処理されますね。これだけ我慢すれば、最良のソリューションじゃないでしょうか。
362 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 09:29:50 ] >>359 Form上でそれ実現する奴作った。それ使ったシステム5月ぐらいにリリース予定。
363 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 09:32:20 ] 手伝おう テストするからうpして
364 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 09:52:25 ] 写真だけうp ttp://www.rupan.net/uploader/download/1235523080.jpg
365 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 11:10:48 ] >359 ElementHost使えば、winformsにコントロール単位でWPFコントロール 持ち込めるだろ。例えば、ListBoxだけとか。 んで、起動時にSystemFontsの中から適当なの選んで設定すれば、 フォントもwinforms同様になる。
366 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 13:33:55 ] 初心者な質問で恐縮です。 InkCanvasのペンの色を変える方法を教えてください。 xamlとC#と両方の方法をお願いします。
367 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 13:40:27 ] msdn.microsoft.com/ja-jp/library/system.windows.controls.inkcanvas.aspx MSDN読めないならWPFなんか手を出さない方がいい
368 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 17:45:18 ] キーバインディングでメソッドを呼ぶときは、どのように書けばいいですか? たとえばEnterで、設定ボタンを押すとき。 C#だけなら、 private void settingbutton_Click(object sender, EventArgs e){} を呼ぶには、 settingbutton_Click(this, EventArgs.Empty); と書けばいいのですが、xamlではどう書けばいいですか? <KeyBinding Key="Enter" Command="Close"/> のCommandのところに書けばいいのかと思っているのですが、ここを適当に書くと、 'CommandValueSerializer' ValueSerializer は 'System.String' から変換できません。 とエラーになります。System.Stringということは、デフォルトでいくつかきまっていると思うのですが、その一覧はどこにあるのでしょう? またその一覧のなかで、メソッドを呼ぶStringはなにでしょう? よろしくお願いします。
369 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 17:59:24 ] > settingbutton_Click(this, EventArgs.Empty); > と書けばいいのですが、 の意味が心底分からんが 適当にCommandsクラスとか作ってコマンドごとにRoutedUICommandのstatic readonlyフィールドを用意 それをKeyBinding.Commandに設定 あとはCommandBindingでコマンドが呼び出すメソッドを設定
370 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 18:12:04 ] す…、すまん。ぜんぜんだめだ。 おれが適当に書くとエラーの山だ。 適当にCommandsクラスをどこに作る? .csのほう? public partial class Commands : Window { } コマンドごとにRoutedUICommandのstatic readonlyフィールドを用意 コマンドごと…。ってことは、設定コマンドを作るのだから、 public partial class Commands : Window { Setting } それをKeyBinding.Commandに設定 xamlで <KeyBinding Key="Enter" Command="Setting"/> CommandBindingでコマンドが呼び出すメソッドを設定 private void setting(object sender, EventArgs e){//メソッド} 添削頼む…。
371 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 18:28:17 ] > 適当にCommandsクラスをどこに作る? .csのほう? > public partial class Commands : Window { System.Windows.Input.ApplicationCommandsみたいにstaticクラスでいいよ。 新しくcsファイル作ってそこにでも。 まあ別にCommandsクラスじゃなくてもいいけどな。肝心なのはRoutedUICommandのフィールドだから。 ApplicationCommandsみたいにICommandは一つにまとめるのが自然だと思っただけで。 つかまずApplicationCommands.CloseとかでKeyBindingとCommandBinding使ったの書いてみろよ。 MSDNやヘルプのこれらのクラスの解説にサンプルがいくらでもあるから。
372 名前:デフォルトの名無しさん [2009/02/25(水) 18:42:14 ] WPFの根幹ってWin32API群なの? .NET とどう違うの?
373 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 19:08:57 ] WPFも.NETで動くことは変わらない WPFはSystem.Windows.Formsに代わる新しいGUIフレームワーク 最大の特徴は,Win32ネイティブのコントロールを使用せずにウインドウの中身を 一枚の絵としてすべてのコントロールをDirect3Dで自前で描画してること ゲームの画面にたくさんのキャラクターを描画するのと同じ仕組み
374 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 19:16:26 ] ApplicationCommands.CloseでKeyBindingとCommandBindingのは書けてます。 xamlに <KeyBinding Key="E" Modifiers="Control" Command="Close"/> csに private void Close_Executed(object sender, RoutedEventArgs e ){Close();} public void Close(object sender, CancelEventArgs e){} です。 じゃあsittingの場合は…。 xamlに <KeyBinding Key="S" Modifiers="Control" Command="setting"/> csに private void setting_Executed(object sender, RoutedEventArgs e ){setting();} public void setting(object sender, CancelEventArgs e){} としてはまってるわけです。 で、System.Stringの一覧はどこにあるのでしょう?
375 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 20:11:33 ] System.Stringは文字列型の事だよ。 それと、<KeyBinding ほにゃらら だけじゃなくて、それと <CommandBinding ほにゃらら がセットになって初めてコマンドのバインディングができる。 それから、 <KeyBinding Key="E" Modifiers="Control" Command="Close"/> の Command="Close" って記述においては、ApplicationCommandsが特別扱いされている。 より冗長だが汎用的な書き方は <KeyBinding Key="E" Modifiers="Control" Command="ApplicationCommands.Close"/> となる。つまりクラスのフィールドを指定しているわけ。多分そのエラーメッセージは、この指定 がうまく行っていないという事。それでもって、自分で作ったクラスの静的フィールドを指定する には、さらにxamlのマークアップ拡張を使う必要がある(多分)。 だから、xamlは <Window x:Class="Foo.Window1" ... xmlns:foo="clr-namespace:Foo"> <Window.CommandBindings> <CommandBinding Command="{x:Static foo:Window1.FooCommand}" Executed="FooCommand_Executed" /> </Window.CommandBindings> <Window.InputBindings> <KeyBinding Key="f" Modifiers="Control" Command="{x:Static foo:Window1.FooCommand}" /> </Window.InputBindings> </Window> で、Window1.xaml.csの中の# public partial class Window1 : Window {...}の中に staticでreadonlyなFooCommandフィールドと、FooCommand_Executedメソッドを実装する。 多分こんな感じ。
376 名前:375 mailto:sage [2009/02/25(水) 20:21:42 ] >>375 は俺自身参考にした事がある blogs.wankuma.com/kazuki/archive/2008/03/16/127942.aspx の記事を読み直してまとめたもの。詳しくはリンク先の記事を、やる気があれば 連載になっているから最初から、読んで行って。
377 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 21:00:22 ] 実験してみたけど、 Command="{x:Static foo:Window1.FooCommand}" は Command="foo:Window1.FooCommand" とどちらでも問題ないみたい。だから必ずしもx:Staticのマークアップ拡張を使う必要はない。
378 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 21:44:38 ] >>373 ありがとうございます DirectX系で壁画するということはGPUと相性がよさそうですねVista Aeroなんかとも
379 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 08:10:20 ] 原始人現る
380 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 08:20:15 ] 壁画って何だよ?
381 名前:デフォルトの名無しさん [2009/02/26(木) 09:15:54 ] >>373 WPFで作ったアプリのUIを自動テストするのは、どんな感じ? 大昔つくったアプリは、コントロールにメッセージ送りつけてやったけど。
382 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 10:00:52 ] UI Automationという機能を使うらしい
383 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 14:11:27 ] だれか優しくスマートに懇切丁寧におしえろ。 ListBox.Items.Add("うんこ")見たいな物を3回ループしてやると選択がくるっとんねんけどな、コンテンツだと正常なんだわ。 ListBoxて文字でアイテム管理しとん? 解決方法どないやねん??? >>384
384 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 14:19:06 ] 質問が把握できないので返答もできないわ。力になれなくてごめん。
385 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 14:21:26 ] そんな答えほしなかったわぁー。 おっちゃんも暇ちゃうねん、出来るだけはよう答えてくれへんか? 色々問題もあってやな、今火達磨状態やねんで? 誰かに伝えたいこの想い
386 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 16:53:09 ] >>381-382 皆さん、UnitTestのテストレポートってどうしてる? 基本的に、初期値、幾つかの中間値、そして境界値とその内外だけを確認?
387 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:46:12 ] UnitTest?なんですかそれは ゆとりにもわかるように説明してください
388 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 01:04:38 ] WPFで読み込んだファイルの取り扱いについて質問があります。 下記のようにファイルを読み込むとロックするのですが、 string imgFile = @"C:\tmp.jpg"; img.Source = new BitmapImage(new Uri(imgFile)); ロックをはずす方法を教えてください。 ちなみにFormの場合には、 pictureBox1.Image = Bitmap.FromFile(imgFile); pictureBox1.Image.Dispose(); でロックをはずすことができます。 よろしくお願いします。
389 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 01:41:22 ] Windows.FormsのBitmapでロックされないように MemoryStreamに読み込んでそこからBitmapを読み込むことはよくやる。 同じようにMemoryStreamに読み込ませてBitmapDecoderで読み込めばいいんじゃないかな?
390 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 02:07:24 ] >>388 BitmapImage bmp = new BitmapImage(); bmp.BeginInit(); bmp.UriSource = new Uri(imgFile); bmp.CacheOption = BitmapCacheOption.OnLoad; bmp.EndInit();
391 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 02:49:29 ] みなさま。 早速ありがとうございます。 >>390 これで試してみました。 しかし、ウィンドウは開くものの、ファイルはなにも表示されなくなってしまいました。
392 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 12:30:28 ] >>391 コントロールに読み込んだイメージセットしてないだろ
393 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 12:38:49 ] UI要素の下や上だけに境界線を引くにはどうしたらいい?
394 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 12:46:38 ] >>392 bmp.UriSource = new Uri(imgFile); だけではセットしたことにならないの? セットの方法を教えてください。
395 名前:393 mailto:sage [2009/02/28(土) 12:57:36 ] 自己解決 <Border BorderBrush="Black" BorderThickness="0 1 0 0">
396 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 13:27:07 ] >>394 処理の内容ちゃんと理解しなきゃ
397 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 13:33:32 ] >>394 >>388 に書いてある img.Source = new BitmapImage(new Uri(imgFile)); ってコードの、右辺の処理new BitmapImage(new Uri(imgFile))をファイルがロックされないように 書き直したのが>>390 。出来上がったBitmapImageのインスタンスをimg.Sourceから参照させる 処理は書かなきゃ。
398 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 18:29:38 ] できました。1日いろいろ試してました。 (1)img.Source = new BitmapImage(imgFile); (2)BitmapImage img = new BitmapImage(); img = imgFile; (3)BitmapImage img = new BitmapImage(); img = bmp; (4)BitmapImage img = new BitmapImage(); img.Source = bmp; (5)BitmapImage img = new BitmapImage(); img.Source = bmp; (6)BitmapImage img = new BitmapImage(bmp); 結局次のようにしてできました。 BitmapImage bmp = new BitmapImage(); bmp.BeginInit(); bmp.UriSource = new Uri(imgFile); bmp.CacheOption = BitmapCacheOption.OnLoad; bmp.EndInit(); img.Source = bmp;
399 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 18:30:14 ] 処理の内容の理解をしている限りでは、 BitmapImage bmp = new BitmapImage(); //あたらしいbmp変数を作る。bmpのインスタンスを作る。 bmp.BeginInit(); //bmpの処理を始める。 bmp.UriSource = new Uri(imgFile); //bmpにUriソースからデータを読み込む。 bmp.CacheOption = BitmapCacheOption.OnLoad; //?? bmp.EndInit(); //読み込みの終了。これでディスクとは切り離される。 img.Source = bmp; //画面のimgにbmpをいれる。これでimgにbmpを表示できる。 これで表示はできロックもなくなりました。 しかしながら、問題が。 目的のファイルの削除をする、という動作がまだできないままなのです。 削除処理は次のように書きました。 private void button1_Click(object sender, RoutedEventArgs e) { System.IO.File.Delete(imgFile); } これでボタンを押すと、ウィンドウが消えるのですが、ファイルは残ったままです。 アドバイスお願いします。
400 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:07:14 ] >>399 string path = @"C:\test.jpg"; BitmapImage bmp = new BitmapImage(); bmp.BeginInit(); bmp.UriSource = new Uri(path); bmp.CacheOption = BitmapCacheOption.OnLoad; bmp.EndInit(); image1.Source = bmp; System.IO.File.Delete(path); これで動いたよ > 削除処理は次のように書きました。 > private void button1_Click(object sender, RoutedEventArgs e) > { > System.IO.File.Delete(imgFile); > } これのパスを間違えてるとかじゃね
401 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:14:16 ] >>399 >bmp.CacheOption = BitmapCacheOption.OnLoad; //?? 分からなければMSDNで調べろよ… msdn.microsoft.com/ja-jp/library/system.windows.media.imaging.bitmapimage.cacheoption.aspx msdn.microsoft.com/ja-jp/library/system.windows.media.imaging.bitmapcacheoption.aspx
402 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:18:44 ] > bmp.CacheOption = BitmapCacheOption.OnLoad; //?? なんだよそれ?いい加減にしろよ。 msdn.microsoft.com/ja-jp/library/system.windows.media.imaging.cachedbitmap (VS.80).aspx これ全部読むまで再質問禁止。
403 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:27:25 ] >>400 ありがとうございます。 なんだかわからないのですが、一度終了して再起動したら動くようになりました。 いろいろありがとうございました。
404 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 16:49:22 ] WPFの「Frame」カスタムコントロール作成でこけましたorz Blendで作ってもらったFrameのXAMLをVSで読み込ませると 「'Frame' ControlTemplate TargetType は、テンプレートの型 'PlaceHolderControl' と一致しません。」(エラー場所は無駄な事言ってるので省きました) と、例外が発生します。 コントロールを作ってもらっても一緒です。 しかし、これらは実際バグっているわけでもなく、ビルドもコンパイルも正常に動きます。 どうもVSのデザイナだけがこけています。 何かいい回避方法(Frameに似たコントロール)などありませんか? よろしくお願いします。 環境:Windows7 VS2008
405 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 19:17:27 ] 言ってることがよくわからない FrameのControlTemplateを作ってるの?それ何の意味があるの? そんなことしないでユーザコントロールにFrameを張り付ければ一緒だと思うんだが
406 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 19:29:38 ] FrameってHTML表示したいときとか 「戻る」「進む」ができるようにしたいときに使うんだよわかってる? コンテンツを飾り付けしたいだけならDecoratorの派生クラス(Borderなど)使う もちろんFrameを飾り付けするのにもDecoratorが使えるし,普通はテンプレート使わずにそうする
407 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 19:34:06 ] すいません、言うべき事が抜けすぎでした・・・ 分け合って「Frame」コントロールを作ってもらいました。 これはWebページとXAMLファイルを頻繁に行き来することになったのでこのようにしています。 そしてコントロールにする必要があるのは、そのFrameの中にゴチャゴチャしたものをつける必要があったのです。 発注したコントロールに問題があるのかと思ったのですが、Frame自体を少しでも変えるとおかしくなります。 <Window.Resources> <ControlTemplate x:Key="FrameControlTemplate1" TargetType="{x:Type Frame}"/> </Window.Resources> <Grid x:Name="LayoutRoot"> <Frame Margin="128,160,200,131" Content="Frame" Template="{DynamicResource FrameControlTemplate1}"/> </Grid> このような簡単なものでもエラーになってしまいます。 理由を教えてください
408 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 19:42:32 ] ちょっと状況が良く分からないんだけど、WPFにFrameコントロールがあるので 衝突しているんじゃないかな? xmlns宣言で名前空間への参照を追加して、名前空間込みで「Frame」コントロールや そのx:Typeを指定したらどうだろう?
409 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 19:48:34 ] その自作FrameのTemplatePart属性は確認した?
410 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 21:00:28 ] >>408 ちょっと判らなかったです・・・ MSDNをみてやってみたのですがうまくいきません。 アセンブリは「PresentationFramework.dll 内」となっているので問題ないですが、 XMLNSは参照して追加しても「タグ 'Frame' は、XML 名前空間 'schemas.microsoft.com/winfx/xaml/presentation ' にありません。」 となってしまいます。 色々やってみた結果、 <Frame Margin="120,192,136,139" Content="Frame" Template="{DynamicResource FrameControlTemplate1}"> <Frame.Resources> <ControlTemplate x:Key="FrameControlTemplate1" TargetType="{x:Type Frame}"> <ContentPresenter /> </ControlTemplate> </Frame.Resources> </Frame> ではVSでもBlendでもデザイナで編集したり、コンパイルできたりするようになりました。 結局こうなってしまう理由がわかりませんw リソース内でFrameのスタイルを指定させたいのですが、どうしてもうまくいかない・・・ >>409 これはどういうことでしょうか? 「TemplatePart」というのが判らず仕舞いになってしまいましたorz 申し訳ないです。;;
411 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 21:08:56 ] コントロールテンプレートは完全に自由に書いていいわけじゃなくて, 最低限テンプレートに含めないといけないコントロールが決められてるのが普通 それを示す属性がTemplatePart 逆に,そういう条件が必要ないならあまりテンプレートを使う意味がない
412 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 21:19:23 ] >>410 ツール-オプション-テキストエディタ-xaml-その他-既定のビュー で 「常にフルxamlビューでドキュメントを開く」 のチェックを外せば直るみたい。 でも、xaml直書きする場合、このチェックは入れておきたいよねえ。 なんか普通にバグっぽいぞ。
413 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 21:38:27 ] >>411 >コントロールテンプレートは完全に自由に書いていいわけじゃない てっきり何をしてもいい>>412 物だだと思っていました! TemplatePartは詳しく調べる必要があるようです。 >>412 うまくいきませんでした・・・ どうしても「'Frame' ControlTemplate TargetType は、テンプレートの型 'PlaceHolderControl' と一致しません」がデザイナのみにエラーが出てきます。 コンパイル、ビルドも出来るので間違ってはいないと思いますが、VSのデザイナが使えないというのはキツイです・・・
414 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 04:37:13 ] WPFのデザイナは相変わらず貧弱だなぁ そこが萌えるんだけどw
415 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 16:28:41 ] WPF始めてみたいけどネット上には驚くほど資料ないねこれ・・・
416 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 16:40:00 ] InteliSenseこそ最上のヘルプ
417 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 17:02:12 ] >>416 試すパターンが膨大で困るw
418 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 17:12:14 ] 書店にも本が並んでない すべてxamlのせいで敷居が高くなってるせいだと思う WPFだけなら新しいコントロールライブラリってことで十分普及したと思うよ Microsoftはxaml使うのをWPFが使われるようになってからに遅らせるべきだった
419 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 17:25:04 ] ネットだと ufcpp.net/study/dotnet/index.html とか uchukamen.com/WPF/Default.htm くらいを見て、後はいろんな人のブログを見てバインディング周りの 定石をしれば、本当の話IntelliSenseで十分ヘルプになるようになる と思う。
420 名前:419 mailto:sage [2009/03/05(木) 17:26:32 ] ごめん、419の前にこれを投稿しようとしたんだ。 俺はWPF+XAMLはWindows Formsや昔のWin32APIでウィンドウ 作ってた時代よりも初心者向けだと思うよ。 本がないのも外国語の物は専門性の高い物から入門書まで多いし、 日本の出版事情が大きいんじゃないかな。
421 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 18:07:43 ] ちょっと質問! TextBlockで普通の改行入りテキストを <TextBlock TextWrapping="Wrap"> あれ?<LineBreak /> 声が<LineBreak /> 遅れて<LineBreak /> 聞こえるよ<LineBreak /> </TextBlock> こうやって作った後Blendとかに再読み込みさせると「Inline」がいっぱい引っ付いてくるんだけど、この書き方は推奨されていないから? それともBlendの屁理屈?
422 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 20:01:29 ] 初心者にとっては(とっつきやすさでは) Windows Forms > WPF/XAML Windows Formsは ・XMLを編集しなくていい ・APIのデザインも直感的(使いたい機能が「そこ」にある)
423 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:31:12 ] >>421 意味が同じだから
424 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:27:40 ] >>422 WPFはWindowsFormsと同じようにAPIベースで作成できるよ。 名前が違うだけでやってることはほぼ同じ。 初心者ってのはおまえ自身のことだろ。
425 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:31:49 ] >>423 答えてくれてありがとう! 何かTextBlockも機能的にはとてもいいけど、Labelの方が簡単でとっつき易いなー
426 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:43:40 ] 一般のテキスト表示にはTextBlockを使う Labelは別のコントロールに文字通りラベルとアクセスキーを付けるためだけに使う ということでおk?
427 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:45:20 ] Labelは一行 TextBlockは数行 くらいにしか深く考えたことないや。
428 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 23:16:17 ] GDIが早くていいよ
429 名前:デフォルトの名無しさん [2009/03/05(木) 23:37:44 ] >>419 bindingが覚えづらい。xml的お作法としてはああなるのが正当なのかも しれないけれど、直感に反する書き方だし、わかりづらいし、何とかしてほしい リソースがらみもそう。 とにかくxamlで中カッコ {}が出てくる場面はうんざりする。なんなのこの変態言語 って感じで。
430 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 00:33:21 ] >>429 それ、マークアップ拡張だから、使わないで普通にBinding要素を子要素として 書く事もできるよ。その方がInteliSenseの支援も受けられるし。 RelativeSourceが絡んでくる場合とか、マークアップ拡張使うと 中カッコが二重になって>>429 が言う通りうんざりする。入力支援 もないし。でも、Binding要素とそのRelativeSourceプロパティに RelativeSource要素を普通のxmlの文法で書けば嫌な点は解消される。 例えば、前に書いた、Canvasに置いてあるViewport3Dの幅をCanvasに合わせる コードを書いておくね(なぜかHorizontalAlignment=Stretchだとうまくいかなかった)。 <Viewport3D.Width> <Binding Path="ActualWidth"> <Binding.RelativeSource> <RelativeSource Mode="FindAncestor" AncestorType="{x:Type Canvas}" AncestorLevel="1"/> </Binding.RelativeSource> </Binding> </Viewport3D.Width> 等価なのは <Viewport3D Width={Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Canvas}, AncestorLevel=1}}/> だけど、これだと>>429 が言うように支援がなくて書くのが大変だし、 実行時まで間違いが分からないし、実行時の例外の内容は分け分からないしで 嫌になるのも分かる。
431 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 00:36:17 ] あと、マークアップ拡張使う方がxmlの入れ子が無闇に深くならなくて済むので 必ずしも悪い事でもない。そこでマークアップ拡張使う場合にお勧めなのが 次のアンチョコ: go.nbdtech.com?94E138EA
432 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 01:39:57 ] まともなデザイナーがVSについていればもう少し使われやすいと思うんだがな・・・・ Formsはペタこれするのはわかりやすいけれど、それ以上ができない。 WPFはそういうところがエレガントにできるけど、バインディングとか正直わかりにくい。
433 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 08:13:24 ] >>429 たしかにな 1.xaml=エレメントの画面表示 2.コード=データの操作 3.補助定義表=それらのバインディング等 みたいに分離してみたらどうなのか。3.を1.にくっつけているからゴチャゴチャになっている。 そういう定義ファイルに、>>430 なら、 [ myViewport3D.Width <= myCanvas1.ActualWidth ] とでも書いておけばそれ1行でOKにする。一目瞭然。初期化等も大方は [ myWindow1.Background = Brushes.White ] そこに記述でいいとすれば、xaml自体の方も(エレメントの単純な階層関係記述が基本になり)ごくすっきりする。 でこんなのは、システムがその表を解析して現状xamlに展開する、という形に出来る (ものが多い、or出来るものだけをこういう初期定義可能にする)だろうから、拡張機能として比較的簡単に出来そうじゃないのか。
434 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 17:29:22 ] すいません、バインディングに関する質問です 複数のPage間でテキストデータをバインディングするとき、どうすればいいかわかりません。 名前空間などに定義する方法などが考えられるのですが、一番簡単で効率のいい方法はないですか?
435 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 17:57:21 ] このスレをマイクロソフトに教えればわかりやすい資料つくってくれるかもしれないよ
436 名前:>>434 mailto:sage [2009/03/07(土) 15:56:56 ] マイクロソフトのサンプルの中にWindow間でデータのバインディングをやっているのを見たのですが、 やっぱり名前空間を全てのWindowのザムルに定義している方法を取っているので、これが妥当だと思う
437 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 12:54:50 ] ProgressBarでバーをスムーズに(FormアプリのProgressBarStyle.Continuousみたいに)表示させるには Templateを弄るしかないんですか?
438 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 18:06:04 ] DataContextにオブジェクトが設定してあるとして LoadedやUnloadedイベントにそのオブジェクトのメソッドを登録したいのですが コードを書かずにXAML上だけでできますか?
439 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 04:39:43 ] ここってsilverlightの話もしていいの?
440 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 08:15:43 ] >>439 専用スレあるよ。 Microsoft Silverlight 2.0 その3 pc11.2ch.net/test/read.cgi/tech/1227324813/l50
441 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 21:11:14 ] ↑別スレですか ありがとうございます
442 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 10:41:36 ] 誰かMSに報告 Blendにて「Hyperlink」編集不可 直タグ打ち可
443 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 11:07:30 ] お前がやれ
444 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 11:24:06 ] アカウントとるのめんどくせw エヘッ♪
445 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:36:52 ] xamlで記述したプログラムととC#のプログラムって 記述方法が違うだけで使ってるのは同じ.NET frameworkだから 性能とかはかわらないんだよね?
446 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:07:15 ] かわらん
447 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:08:12 ] ロードはたぶんXAMLの方が遅い ロード後の動作は全く一緒
448 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:46:48 ] ありがと htmlの描き方が苦手なおれはxamlじゃなくてまずC#でWPF勉強するわ
449 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 13:07:52 ] BitmapImageで読み込める画像形式を追加することはできませんか? できればアプリケーション内でローカルに追加/削除できて 他のアプリケーションには影響しないようにしたいのですが。
450 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 16:10:21 ] UriSourceプロパティを使うのはたぶん無理 自前のコードで読み込んでStreamSourceに設定するしかないと思う でもそうするといちいち他の画像形式に変換しないといけないし BitmapImageを使う意味もないので BitmapSource.Createを使ってピクセルデータから直接作った方がいい
451 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 17:17:54 ] アニメーション設定とかしてる場合、コードとザムルアニメーションはやっぱりコードの方が優先? 設定できたりする?
452 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 17:30:33 ] 後で設定した方が有効になるだけだが
453 名前:デフォルトの名無しさん [2009/03/12(木) 18:30:36 ] >>433 > 3.補助定義表=それらのバインディング等 これをデザイナのプロパティウィンドウあたりで簡単に設定できれば xamlの中に取り込まれていても問題ないと思うんだが。 デザイナがひどすぎると思う。
454 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 18:42:18 ] 結局デザイナだろ WinFormsはもっと汚い形でやってるんだから
455 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 16:04:08 ] XMLバインディングをやってみたんだけど、「存在するXMLと同期」じゃなくて、 「存在しているXMLをリソースとして利用」のほうが正しい? どうも作ってみても、EXEの中にリソースとして取り込まれて、XMLファイルの切り替えとかが出来ないw RSSの仕組みでネットワークにあるものを指定してやると、切り替えとかをネットワーク越しに出来るけどローカルでは無理な感じ。
456 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 16:32:24 ] ごめん嘘、忘れて
457 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 02:47:23 ] ポカー
458 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 07:13:23 ] RichTextBox に Wordwrap プロパティがないんだけども、 改行しないで表示させたい場合どうしたら良いの?
459 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 14:17:38 ] TextBoxでいいんじゃね? RichTextBoxの中にあるFlowDocumentだっけか、 あれにパネルとか突っ込んで見たんだけど、どうもスクロールバー自体がテキスト扱いになって操作できないし。
460 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 15:06:30 ] >>458 msdn.microsoft.com/ja-jp/library/system.windows.controls.richtextbox.aspx > RichTextBox ではテキストが常に折り返されます。 > テキストの折り返しが不要な場合は、FlowDocument の PageWidth を RichTextBox の幅より大きく設定します。 > ただし、この場合も、ページの幅に達するとテキストが折り返されます。 なので、 <RichTextBox><FlowDocument PageWidth="300"/></RichTextBox> <RichTextBox><FlowDocument MinPageWidth="680" MaxPageWidth="1024"/></RichTextBox> みたいに、適当に大きな幅を入れておくとか。 ただ、横スクロールバーを表示すると、最初からスクロールできる状態になってしまうのが難点だけど。 後は、イベントで動的に幅を測定して FlowDocument.PageWidth に反映させるとか。
461 名前:458 mailto:sage [2009/03/14(土) 23:04:06 ] >>459 色つけたかったんで、TextBoxじゃだめなのよ >>460 ありがとう。助かったぜ。
462 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:28:01 ] WCFおもしろいな。しかしスレはない
463 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:17:46 ] >>462 Webサービス プログラミング総合スレッド ttp://pc11.2ch.net/test/read.cgi/tech/1031149340/
464 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:38:18 ] >>462 特に旧来のWindowsForms、これからのスタンダードなWPF、XBAP、Silverlight、そして携帯電話や汎用 ブラウザ向けのASP.NETなんかで相互に共用できるアプリケーションシステムの構築となると、 やっぱりWCFは欠かせないよね。 俺の場合、データ・レイヤはSQL Server、アプリケーション・レイヤは機能・役割ごとに複数個のWCFで構築。 プレゼンテーション・レイヤは、WinForm、WPF、XBAP、Silverlight、Javaでマルチクライアント環境を実現。 今はこの基本3層構成をWebサービスのマイブームと位置付けて色々と遊んでいる。
465 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 13:16:46 ] 重要度的には Silverlight>WPF>XBAP な希ガス。
466 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 13:34:46 ] >>465 XBAPはSilverlightへの発展的解消で完全に進化が止まっちゃったからね。 Silverlightは資料もチュートリアルも豊富。WPFとの2本立てで決まりだね。 そういえば、MIX'09でSilverlight 3の発表ですな。 ブラウザナビゲーションとの連携が目玉らしいけど、それよりTextBox上での 右クリック時にコピペ系のコンテキストメニューを出すようにして欲しいな。
467 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 13:46:59 ] もうSliverlight3の発表ですか、これは楽しみ。 ついでにBlendも改善バージョンを発表してもらいたいですね。
468 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 02:29:08 ] Silverlightで書かれたサイトって一発でわかる?
469 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:29:03 ] インストールを強制されるからね
470 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:36:56 ] C#でXPSドキュメントを弄っているけど、これって面白いな。 XpsDocument NewXpsDoc = new XpsDocument("D:\\AAAA.XPS", FileAccess.ReadWrite); XpsDocumentWriter XpsDocWrtr = XpsDocument.CreateXpsDocumentWriter(NewXpsDoc); XpsDocWrtr.Write((Visual)this); NewXpsDoc.Close(); たったこれだけでWindowと配下のコントロールすべてを含むXPSドキュメントが生成されて D:\AAAA.XPS に出力された。 VS2008かExpression Blendを使ってXAMLでサクッと注文書などの伝票フォーマットのひな形の Windowを書いて、LINQでDBやXMLをバインディングさせてやれば、カンタンに自社ロゴ入りの 伝票なんかをXPSで出力できるな。 もうCrystalReportやQuickReport、サードパーティーのPDF帳票コンポーネントなんて不要だね。 さらにバーコードコントロールも .NET 4.0で標準搭載してくれれば・・・
471 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 03:50:47 ] でもC#のプログラムって商用にしにくいよね 割と簡単にソースを推論できるから
472 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 04:25:53 ] >>471 情報システム系の業務アプリには向いているよ。 オンライン販売やパッケージ販売のソフトウェア制作には向かないかも。 商用≠開発したソフトウェアの製品マスターのコピーを販売する 商用=商用の設備・ツールとしてソフトウェアを稼動させる
473 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 07:17:14 ] 難読化してありゃ十分じゃね? 客先で難読化されてた奴見たけど中身を見る手間相当あがると思うけど。 動作のわかる所からクラス機能を推論して意味通る名前を当てはめるにしても全体の把握は大変そう。 一部のロジックがわかれば良くてそこだけピンポイントで調べるのには向かなそうだが。
474 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 07:21:40 ] VisualStudioに組み込んでくれないかな 難読化
475 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 11:06:32 ] 商用というかメーカー製PCのバンドルソフトでも.NET利用がちらほら見かけるようになったが、 大抵ネイティブモジュールとのハイブリットだしな。
476 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 14:52:32 ] ネイティブと混ぜたらネイティブ部分はちゃんとブラックボックス化するのか? あと自作したlibやdllを混ぜたらリコンパイルきかないだろう さすがに機械コードを読んで作るやつはいるわけないし
477 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 15:34:17 ] GUIだけ.NETって感じ?
478 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 15:56:36 ] C++で書いてあるコードでも、UI部分のように、そのほとんどがAPIコールのものは解読は容易。 だいいち、そんなに解読されて困るコアのアルゴリズムがあるんだったら、それはサービス化 してSaaSで提供するとか考えるべき。
479 名前:デフォルトの名無しさん [2009/03/19(木) 21:20:25 ] tabControlのタブに画像を表示させるのはどうすれば良いのですか。 このアプリのようにしたいのですが。 tmpgenc.pegasys-inc.com/ja/product/tme3_feature.html
480 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 21:29:45 ] ItemTemplateプロパティで
481 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 21:40:39 ] >>479 TabItem.Header に Image を指定する。 <TabControl> <TabItem> <TabItem.Header> <Image Source="example.jpg" Stretch="None"/> </TabItem.Header> .... </TabItem> .... </TabControl>
482 名前:デフォルトの名無しさん [2009/03/20(金) 07:25:57 ] 481>> ありがとうございます。 「ファイル example.jpg はプロジェクトの一部ではないか、'Build Action' プロパティが 'Resource' に設定されていません。」 となります。Resource設定はどのように行うのでしょうか。
483 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 11:30:12 ] >>482 Visual Studio を使っているなら、 プロジェクトを右クリック->追加->既存の項目...->イメージ ファイル->example.jpg。 ビルドアションの変更する場合は、 プロジェクトに追加したファイルを右クリック->プロパティ->ビルド アクション。 詳しくは、ここを参照。 Windows Presentation Foundation アプリケーションのリソース、コンテンツ、およびデータ ファイル msdn.microsoft.com/ja-jp/library/aa970494.aspx
484 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 20:48:14 ] WPFの窓の中にopenglで描画したり,WPFの窓をC++で使うことは出来ますか?
485 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:12:32 ] >>484 とりあえずここを読んでみては? WPF 移行と相互運用性 - MSDN msdn.microsoft.com/ja-jp/library/ms753178.aspx
486 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:18:12 ] WPFは4.0でよくなるのかなー Form,Silverlight,WPFどれがどうつかわれてくのかいまいちさきがみえん。 Silverlight3.0とかかなりよさげで環境を問わないWeb,デスクトップ含めたUIフレームワークとしてかなり有望そうだが。
487 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:46:10 ] >>485 読んでみます
488 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 23:24:43 ] 機能もだが、XPで4.0がサポートされるのかどうか不安だ。 グラフィック関係の新規APIはほとんどVista以降のみ対応だからなあ。
489 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 03:38:28 ] SGMLは<tag> </tag>ではなく[tag][/tag]にすべきだった <>入力するときにShiftがめんどくさいです><
490 名前:デフォルトの名無しさん [2009/03/21(土) 08:04:07 ] >>483 ありがとうございます。できました。
491 名前:デフォルトの名無しさん [2009/03/21(土) 09:30:52 ] WPFって時期尚早と思わない? 初心者が取っ付くには敷居が高すぎる。 ウインドウズフォームとちがって単純に貼り付けて プロパティを操作するだけではだめだ。 インテリセンスも効かないXAMLファイルを操作しなくては ならないし。
492 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 12:28:12 ] 時期尚早だよ。だからこそ楽しい。
493 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 14:00:00 ] そういうこと。F#もいい。
494 名前:デフォルトの名無しさん [2009/03/21(土) 14:23:11 ] 少なくとも生産性は低いな
495 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 14:40:02 ] >>491 俺はC#だけで書いてる
496 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 15:06:20 ] 確かWPFってデュアルコア6GHz時代を想定して作ったんじゃなかったっけ?
497 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 15:33:44 ] どう考えても、XAML + C# の方が生産性が高くないか?
498 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 15:37:54 ] WinFormよりXAML+WPFの法がよほど効率的だな。
499 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 15:59:55 ] DataGridViewさえ充実していれば…
500 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 16:01:15 ] 次期バージョンを待て
501 名前:デフォルトの名無しさん [2009/03/21(土) 17:56:52 ] >>497 >>498 何を持ってそう言える???
502 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 21:17:12 ] 生産性を高くするためのフレームワークなんだから、低かったら使う意味ないじゃん。
503 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:55:26 ] XAMLでUIの階層分けを意識して記述できるし、 アニメーションさせなきゃならない部分があっても気軽に書ける。
504 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 00:06:30 ] WinFormsはデザイナでコントロールの親子関係を変更するのが面倒だったな その点、WPFはXAMLを少し書き換えるだけなので楽だ
505 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 00:09:13 ] ポトペタ以上のことやろうとしたらWinFormsは簡単に破綻するでしょ。
506 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 00:59:04 ] XAMLはコントロールの親子関係もプロパティもすべて一覧で把握できる。
507 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 01:02:31 ] UIの柔軟性とソースでの視認性の双方のバランスがいいよなXAMLは これに関してはWinFormとは段違いでいいと思う
508 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 01:12:50 ] >>501 涙目
509 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 01:26:51 ] C#とxamlとで相互変換できるならVSでボタン一つで切り替えるようになるといい それぞれのいい所取りできれば最高
510 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 01:45:40 ] C#の利点(リファクタリングとか)がXAMLでも完璧に使えたらとは思うが、 そのアプローチには無理があるだろう XAML→C#は可能だろうけど、 C#→XAMLはC#のコードがXAMLに埋め込まれる事になりそう
511 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 02:10:37 ] >C#→XAMLはC#のコードがXAMLに埋め込まれる事になりそう これに関してはマイクロソフト様より「技術的には可能だが非推奨」という 実務ガイドラインの見解を戴いております。
512 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 11:54:50 ] コードが埋め込まれたとしても、そんなところには見向きもしないでxamlで見やすいところだけ編集するんだから無問題
513 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 15:22:18 ] WPF Toolkit が更新されてるね。 DataGrid, DatePicker, Calendar のバグが修正されたみたい。 WPF Toolkit - March 2009 Release wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=25047 ttp://blogs.wankuma.com/kazuki/archive/2009/01/31/167199.aspx ↑のスクロールで列の表示が崩れるバグもしっかり修正されてたよ。
514 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 20:22:05 ] XAML編集でちゃんとインテリセンスが効けばいいんだけどねえ。 この辺もVS2010で改善されるのかなあ……
515 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 20:28:48 ] >>514 {Binding }にもインテリセンス効くようになるらしいよ エディタも十分高機能化するそうだけど
516 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 03:46:02 ] VS2008でその水準に達していなかったのが最大の失策
517 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 11:40:19 ] >>515 >{Binding }にもインテリセンス効くようになるらしいよ これはかなり嬉しい。 そういや、WPF Toolkitも標準で入るとか聞いたが…。
518 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 19:05:20 ] Windowsライクな外観を作りにくい
519 名前:デフォルトの名無しさん [2009/03/25(水) 20:42:17 ] なんでWPFでウィンドウの外枠とかタイトルバー弄れないようにしたんだろ。 P/InvokeかWindowStyle.None使えってAnderson神父は言うけど面倒臭いよ面倒臭いよ
520 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 09:14:00 ] ・C#は知ってる。 ・XMLは知ってる。 ・Windows Formは未経験。 この条件でいきなりWPFの勉強を 始めることは可能?
521 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 11:42:45 ] 余裕
522 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 12:57:30 ] >>521 アリガト
523 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 17:27:22 ] >>519 <r:RibbonWindow x:Class="Window1" </r:RibbonWindow> リボンUIのWindowはこんな感じで実装されてるな
524 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 09:19:05 ] System.Windows.Controls.UserControl の再描画を抑制する方法ってありますか? 複数のプロパティを連続して変更する際に、変更するごとに再描画されるのを 回避したいんです。
525 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 12:28:31 ] LayoutRooからいったんRemoveし、プロパティを設定後Addするとか
526 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 19:13:40 ] 印刷プレビューダイアログはどこにあるの?
527 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 08:47:26 ] System.Printing
528 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 08:49:27 ] ってPreviewの方か ないんじゃないかな 作ったFixedDocument表示すればそれがPreviewになるし
529 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 18:41:53 ] VS2008 ExpressでWPFをかじったんだが、 WinFormと比べてデザイナがまだまだ発展途上ですね。 Web上に日本語の情報も少ないし、どうしようか。 みんなどんな開発環境でWPF遊んでる?
530 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 18:45:06 ] 春休みだな
531 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:07:45 ] はるかな尾瀬ー
532 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:30:47 ] >>531 それは夏では 夏がくーれば思いだすー、
533 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:42:40 ] やっちまったぜ♪
534 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 22:49:41 ] ののこみちー
535 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 01:59:37 ] 日本語の情報待ってろ
536 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 02:40:36 ] 英文のドキュメントも読めない奴がこんな発展途上の分野に手を出すなと小一時間 まあ、英語でも情報少ないんだけどなw
537 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 08:33:44 ] WPFはなくなるの? 答えはもちろんNO!
538 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 09:25:32 ] 1年後くらいに、Full Trusted Silverlight Applicationとかが発表されて、 トドメを刺されるような気もする。まうその方向なら今やっといて損はない気はするけどね。
539 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 09:36:28 ] ブラウザ上でFullTrustedなんてActiveXの二の舞だし 結局ローカルにインストールベースになると思うんだが そうするとそれってただのWPFじゃん
540 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 13:33:39 ] Silverlightスレのを参考に winformsの探し方がマズイかもしれないからどこまで正しいか分からんが・・ www.indeed.com/jobtrends?q=sql+ (win+forms+or+winforms)%2C+sql+wpf&l=
541 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 18:04:09 ] WebでWPFは流行らないだろうなぁ。 世のスキル的にもWebはPHP、Java、ASP.NETだし。 今時点で情報の少なさが普及しないってことを物語ってる。 とはいえ、デスクトップ分野ではWindowsFormはWPFに間違いなく移行する。 WPF学ぶなら情報の出そろった3年後が良いよ。
542 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 18:46:15 ] 世のスキル的にも・・って WPFはPHP・Java・ASP.NETの代替になるような物じゃないのだが・・・。 Silverlightの話としても、比べるべきはFlex, JavaFx (, Flash, Java Applet)じゃないか?
543 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:22:15 ] Flex, JavaFx, SLのRIA plugin組が対峙するのはAppleやGoogleが推すHTML5
544 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:27:06 ] Webのクライアントはブラウザで事足りる?
545 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:45:34 ] あれ、AppleもなんかFlash的な何か作ってなかったっけ?
546 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:56:18 ] 洋書でWPFのお勧め本は何?
547 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:14:19 ] MSはxaml無視してWindowsFormの後継としてWPFを積極的に広めるべき 十分広まった後でxamlもちだせばOK
548 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:21:29 ] XAMLのないWPFなんてw
549 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:35:38 ] >>547 馬鹿
550 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:39:51 ] なんで?俺xamlなしでやってるぜ?
551 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:56:20 ] まさかXAMLを使った事がないのに、XAMLイラネって言ってるわけじゃないよな?
552 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:12:00 ] そだよ?xamlわかんねーもん
553 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:14:54 ] XMALなしのWPFプログラムは全部DOM使ってHTMLを記述するようなものだよ。
554 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:15:09 ] それだと「頑張れ」としか言えないじゃないか・・
555 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:37:06 ] 全部C#でやるなんてすごいな。俺にはやり方がわからん。
556 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 23:04:07 ] >>329 にサンプルがあった
557 名前:デフォルトの名無しさん [2009/04/01(水) 03:59:34 ] >>329 を参考にして、MainWindow()内に Image myImage = new Image(); myImage.Width = 200; BitmapImage myBitmapImage = new BitmapImage(); myBitmapImage.BeginInit(); myBitmapImage.UriSource = new Uri(@"D:\Unko\My Pictures\Images\hoge.jpg"); myBitmapImage.DecodePixelWidth = 200; myBitmapImage.EndInit(); myImage.Source = myBitmapImage; を入れて(内容はttp://msdn.microsoft.com/ja-jp/library/ms747027.aspxのものです) 実行してみたのですが、真っ白なウィンドウが出るだけで画像が表示されません。 どこがいけないのかわかりません。どう書けばいいか教えてください。
558 名前:557 mailto:sage [2009/04/01(水) 07:04:31 ] 自己解決しました。 最後にthis.Content = myImage;を追加するだけだったとは…。
559 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 08:40:06 ] >>546 please
560 名前:デフォルトの名無しさん [2009/04/01(水) 19:29:06 ] .NETでGUIプログラミング始める人ってかわいそう。 Windowsの仕組みも知らずにプログラミングして何が楽しいことか。 ま、今に始まったことじゃないけどね。VBとかDelphiもそうだけど。 VC++でWindowsAPI駆使した方が間違いなく素晴らしいアプリ作れる。 もっとも、WindowsAPIは把握するまでが大変だけど。 .NET使った方が楽なところは、マネージコード使って、 それ以外はアンマネージで。使い分ければスタンドアロンWPFいらないぜ! とここまで書いてて気になったが、VistaでWinFX(.NET)が見送られたけど、 いつの日か、WindowsAPIは、.NETで公開されるように置き換わるのかなぁ。 WPFの目指すところがイマイチわからない。
561 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:40:17 ] 釣られないよ
562 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:42:02 ] 突っ込みどころが色々あって釣られたくなるw
563 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:48:03 ] 横からだけど気になるので突っ込みきぼん
564 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 21:09:48 ] System.Windows.Controls.Canvas の継承したクラスを作って、 OnPreviewMouseLeftButtonDown をオーバーライドしました。 Canvas の Children に設定したコントロールをクリックしたときは イベントが発生したんですが、新しく作成したコントロール自身を クリックしたときはイベントが発生しません。 MSDN で UIElement..::.OnPreviewMouseLeftButtonDown メソッドを見ると 「派生クラスの静的コンストラクタ内で、Mouse..::.PreviewMouseDown の 代替クラス ハンドラを登録します。 OnPreviewMouseLeftButtonDown オーバーライドして UIElement のマウス処理動作を変更することはできません。」 とあるんですが、関係あるんでしょうか? OnPreviewMouseLeftButtonDown を OnMouseLeftButtonDown に 変えても同じでした。 自分自身をクリックしてもイベントが発生するようにするには どうしたらよいのでしょうか?
565 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 21:21:09 ] >>564 まず>>560 の話を片付けて質問。な? 空気空気。
566 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 21:36:48 ] そいじゃまず俺から突っ込んでみる。 後ろから ズボッ ! とな。 Windowsの仕組みを知る楽しみ ≠ プログラミングの楽しみ それにプログラム完成までの最短・最良の道を選択するのは 世間では常識で普通のことだよ。
567 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:34:02 ] >>546 希望する内容を言ってくれた方が紹介しやすいが、 Pro WPF in C# 2008 Pro WPF with VB 2008 なんてどうだろう。 一通り最初からゆっくり読んで実験していけば、 エッセンスは頭に入ると思う。 英語も平易て読みやすいし、情報量の割には価格も安い。 ただし、ページ数がハンパないが (C# 版しか知らないが、目次を見る限りは VB 版も同内容だと思う)
568 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:40:28 ] >>564 Panel は子を入れて使うのが前提だから Background が設定されていないとクリックイベントが呼ばれないみたいだね。 <l:MyCanvas Background="Transparent"/> としても良いから Background を設定してみたら?
569 名前:564 mailto:sage [2009/04/01(水) 22:52:57 ] >>568 ありがとうございます。 助かりました。 Background を設定しなければならないなんて考えもしませんでした。 ところで、Background を設定しないとイベントが発生しないと どういう方法で調べたのですが? よろしければ後学のため教えていただきたいのですが。
570 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 23:07:33 ] >>567 これですね。 ttp://www.amazon.co.jp/Pro-WPF-2008-Presentation-Professionals/dp/1590599551/ref=sr_1_1?ie=UTF8&s=english-books&qid=1238594700&sr=1-1 ついでにSilverlight 2.0のこれ↓ も欲しいんだが ttp://www.amazon.co.jp/Pro-Silverlight-C-2008-Windows-Net/dp/1590599497/ref=sr_1_1?ie=UTF8&s=english-books&qid=1238594363&sr=1-1 お金がない・・・
571 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 23:50:03 ] >>567 レスどうも。 確かにそれ1000ページ超えてるんだよね。 600ページくらいだったら即決なんだけど、 検討してみる。
572 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 23:53:24 ] >>570 Proシリーズか。 Linqが良かったから、Silverlight2も気になってる
573 名前:568 mailto:sage [2009/04/02(木) 00:03:56 ] >>569 今回はテストコードを書いて試しているときに、たまたま気付いただけ。参考にならんでごめん。 今調べ直したら、ちゃんと基底クラスの方で書かれていたよ。 msdn.microsoft.com/ja-jp/library/system.windows.controls.panel.aspx > Background が定義されていない場合、Panel 要素はマウス イベントやスタイラス ベントを受け取りません。 マウス イベントまたはスタイラス イベントを処理する必要があるが Panel の背景は必要ない場合は、Transparent を使用します。
574 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 00:25:50 ] WPFアプリケーションを作成してみようと思っているのですが、 最初のウィンドウが表示できなくて困っております。 手順は以下の通りです。 ・新しいプロジェクト画面でWFPアプリケーションを選択 ・ビルド ・実行 多分この時点でウィンドウが表示されると思うのですが、何も立ち 上がらずに実行を終了?してデバッグ実行モードを抜けてしまいます。 そこで、Window1.xaml.csのコンストラクタにブレイクを仕掛けてみたのですが、 どうやらインスタンス化されていないらしく停止しませんでした。 プロジェクトのスタートアップオブジェクトの設定を確かめ、 自動生成されるApp.g.cs内のMainメソッド内にブレイクを 仕掛けてみたのですが、こちらでも停止しませんでした。 どうやら根本原因はMain()が呼ばれていない事のようなのですが、 どのように解決すればよいかわかりません。 もしよろしければ解決のためのヒントをいただけませんでしょうか・・・。
575 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 01:27:09 ] VS2008か? 環境を書かないと
576 名前:574 mailto:sage [2009/04/02(木) 01:34:49 ] >>575 すっかり抜けていました、申し訳ありません。 OSは XP の SP3を適用済みで、VS は Visual Studio 2008 Express Editionです。
577 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 01:46:19 ] うちVistaで同じ手順で普通に実行されるのであんま力になれないけど プロジェクトフォルダの bin と obj を削除して再ビルドしてもダメなら Visual Studio を再インストールしてみたらどうだろう
578 名前:574 mailto:sage [2009/04/02(木) 02:00:35 ] >>577 どもです、さっそく試してみます。
579 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 02:12:40 ] .NET Frameworkのバージョンが3.0未満とか、そういうオチはないだろうなw
580 名前:574 mailto:sage [2009/04/02(木) 02:16:31 ] プロジェクトのプロパティーを確認しましたが、 「対象のフレームワーク」の項目は3.5になっております。
581 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 02:39:03 ] ビルドに成功してるなら実行環境の問題っぽいけどな・・・ Windows Forms Applicationなら問題なくビルドして実行できるのかな?
582 名前:574 mailto:sage [2009/04/02(木) 03:14:19 ] >>581 確認しましたらWindows Forms Applicationでも同じ症状がでていました。 これからVSを再インストールして試してみます。
583 名前:デフォルトの名無しさん [2009/04/02(木) 13:27:19 ] >>545 何、それ? まったく分からない。
584 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 13:48:02 ] >>583 FlexとかAirとかじゃね? まあ開発環境としてはMSより程度が低いよね。
585 名前:デフォルトの名無しさん [2009/04/02(木) 14:07:52 ] >>584 それ、AppleではなくてAdobeじゃん。 >まあ開発環境としてはMSより程度が低いよね。 はぁ? というか、お前自身の程度が低いだけだろ。
586 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 14:23:00 ] 釣られんなよ
587 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 15:23:16 ] AIRのような継はぎのマッシュアップがいつまで持つやら。
588 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 15:49:34 ] >>584 Adobeの開発環境よりMSのVSシリーズが劣るところを詳しく。 まあ程度が低い君に比較する事なんて無理だよね。
589 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:29:42 ] ん?
590 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:33:35 ] 春
591 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:41:16 ] 春ですなぁ…。
592 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:46:55 ] 自演
593 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:48:51 ] アンカーミスだか誤読だか知らんがこれは恥ずい
594 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:50:58 ] ラーメンマン
595 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:55:31 ] 今日温かいなぁ…
596 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:57:27 ] >>584 = >>588 だろ。 クソワロタ
597 名前:デフォルトの名無しさん [2009/04/02(木) 17:06:00 ] Adobeの開発環境よりMSのVSシリーズが劣るところを詳しく。 まあ程度が低い君に比較する事なんて無理だよね。 \___________/ ___ _ / ____ヽ /  ̄  ̄ \ | | /, −、, -、l /、 ヽ きみ頭だいじょうぶ? | _| -|○ | ○|| |・ |―-、 | , ―-、 (6 _ー っ-´、} q -´ 二 ヽ | | -⊂) \ ヽ_  ̄ ̄ノノ ノ_ ー | | | ̄ ̄|/ (_ ∪ ̄ / 、 \ \. ̄` | / ヽ ` ,.|  ̄ | | O===== | `− ´ | | _| / |
598 名前:デフォルトの名無しさん [2009/04/02(木) 17:49:13 ] いつになったらWinFormsを超えられるんだ? 工数増加たまらんね
599 名前:デフォルトの名無しさん [2009/04/02(木) 22:08:14 ] >>553 HTMLはぽとぺたですむからこそ、表現系がDOMだろうがHTMLだろうが どうでもいいわけで。 手でがりがり書かなきゃいけないならどっちでも一緒。HTML内に全部 書かなきゃいけないのはむしろ地獄。ajaxなんて地獄の生産性の悪さ ってこった。
600 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:23:20 ] ajaxとhtmlって関係あんの?
601 名前:564 mailto:sage [2009/04/02(木) 22:52:06 ] >>573 基底クラスのドキュメントかぁ・・・ 勉強になりました。
602 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 23:21:58 ] ああもう、ここは俺のチラシの裏だ
603 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 23:33:29 ] ググってもほとんど個人のウンコblogしかでてこない 全世界のウンコエンジニアのウンコ記事ばかりだ お前の意味不明な忘備録を全世界に公開するな 公開するならせめて意味のわかるものにしろ、この糞どもが ふぅ、すっきりした ほんと、こんな情報ばっかりなんだよなw 俺のウンコを拭くチラシの裏終了
604 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 23:37:51 ] UserControl を作成して、XAML で定義した StaticResource を コードビハインドで使おうと思います。 > StaticResourceExtension ex = new StaticResourceExtension(); > ex.ResourceKey = "HatchBrush"; > Brush brush =(Brush)ex.ProvideValue( XXX ); ↑のようなコードで使えそうだってことはググった結果わかったのですが、 XXX になにを入れれば良いのでしょうか?
605 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:09:28 ] 貴様はMSDNのライブラリすら調べられないのか、このウンコが msdn.microsoft.com/ja-jp/library/system.windows.staticresourceextension.providevalue.aspx で、その引数のインターフェイスが msdn.microsoft.com/ja-jp/library/system.iserviceprovider.aspx そのインターフェイスの唯一のメンバーがGetService メソッド サンプルコード見てるならググる前にライブラリ調べろよ お前みたいなウンコがいらんblog記事書くから こういう分野でのgoogle検索が面倒になるんだよ・・・ もう終電はないし仕事場で俺一人、飲みながら2ch 暴言も反省はしてない。北朝鮮のミサイルが待ち遠しい。
606 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:17:57 ] 俺んちに落ちてこないかなー
607 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:35:45 ] そもそも、WPFうんぬん以前に.NET Frameworkでコード書ける人間が 俺一人ってどういうことだよ、この職場wwww なんかもう、OOPについていけないSEがその辺にごろごろいる コーディング?VBなら一通りできますよ?みたいな。もう死ねよ
608 名前:604 mailto:sage [2009/04/04(土) 00:49:05 ] >>605 IServiceProvider の使い方がわからないわけでなく、 UserControl を継承したクラスのなかで、どうやって IServiceProvider を得るのかがわからないんです。
609 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 01:18:15 ] >>607 お前みたいなのでも雇ってるんだから ずいぶん寛大な会社だと思うんだが。
610 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 01:24:40 ] >>608 多態性(polymorphism)というOOPの概念を知ってるか? というか、インターフェイスの使い方がよくわかってないんだろう・・・ 俺の職場にゴロゴロいるやつらと同じだwww C++では多重継承は変態コーディングで害悪だ、みたいな空気があったけど C#では標準ライブラリからして、インターフェイスを使った多重継承が常識になってるんだよ
611 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 01:43:26 ] >>604 間違ってたら、ごめんね。単純に XAML で定義した StaticResource を使いたいってだけなら、 FindResource メソッドが UserControl の基底クラスで定義されているので、それを使えば良いよ。 msdn.microsoft.com/ja-jp/library/system.windows.frameworkcontentelement.findresource.aspx > Brush brush = (Brush)FindResource( "Key" ); StaticResourceExtension は XAML 拡張マークアップ( Background={StaticResource ...} みたいな書き方 ) を 定義しているだけのクラスなので、通常、コードから使う必要はないです。
612 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 07:10:55 ] >C++では多重継承は変態コーディングで害悪だ、みたいな空気があったけど アホが使うとな。
613 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 07:48:51 ] もうだめかもわからんね
614 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 08:49:24 ] >>610 文句言うだけで回答出来ねぇw ワロス
615 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 17:29:46 ] >>610 インターフェースと多重継承ごっちゃにすんなよ。 区別がついてない時点でおまえもその職場の奴らと同類だ。
616 名前:604 mailto:sage [2009/04/04(土) 18:08:22 ] >>611 教えていただいた方法で無事リソースを得る ことができました。 ありがとうございました。
617 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 07:50:59 ] 小賢しい暴言書きちらすような奴は >>610 結局手前が一番何もわかっていない糞馬鹿だということの典型モデルですな 要素に対するシステム特有の扱いへの質問にすぎんものに >多態性(polymorphism)というOOPの概念を知ってるか? もう痛さ百乗
618 名前:デフォルトの名無しさん [2009/04/06(月) 12:30:35 ] >>610 最後2行はネタであると願っております。
619 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 12:48:51 ] >>610 は間違いなのか? 結局何が答えなのか・・・
620 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 13:06:06 ] >>610 の最後に行は間違いなくネタ
621 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 13:10:23 ] >>610 はOOP概念に拘ってるようですが、 プログラミングの基本は抽象化です。別にOOPに限った話ではありません。 インタフェースは使い方はそれほど重要ではなく(簡単なので)、インタフェース という実現方法が問題解決の副次的要素です。 多重継承問題は、抽象化プログラミングと深く関わっています。 このまま解説を続けても良いですけど、WPFスレなので スレ汚しになるので控えさせてもらいます。
622 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 13:21:16 ] 構わん、続け給え。
623 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 13:28:21 ] 私の貴重な時間を奪わないでください。
624 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 01:30:02 ] ピタゴラスイッチの「ぼくのおとうさん」という歌が、何気にインターフェースの概念をよく表しているよな。 お店にはいるとお客さん、歩いていると通行人。でもインスタンス(おとうさん)は同じ。
625 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 04:04:10 ] >>610 の人気に嫉妬w いまごろ泣いているんだろうなぁ
626 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 08:56:07 ] >>607 うちの会社でやらないか?
627 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 12:06:13 ] ねーよw
628 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 01:45:10 ] 大きいです
629 名前:デフォルトの名無しさん [2009/04/08(水) 02:51:59 ] WPFおもれーな、しかしAtom270ではデバッグ後の復帰がおもてーwww
630 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 08:20:58 ] >>629 Atomじゃなくても重いから
631 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 16:23:00 ] >>629 VSのスタートアップページ(RSSとかプロジェクトとかが表示されてるタブ)を閉じておくと なぜか復帰が早くなることがあるよ むしろ、なぜかスタートアップページを表示しておくととてつもなく時間がかかる なんでこんな無駄なページが毎回起動時に表示されるのかが分からん
632 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 16:35:25 ] >>629 どうやって楽しんでる?満足に理解できないでしょ?
633 名前:630 mailto:sage [2009/04/08(水) 17:07:09 ] >>631 トンクス、スタートアップページは閉じてみます。 >>632 そうだね、まだWPF/XAMLの国内本を3冊と、 MSDNしか読んでないしな〜。 WindowsFormの代替品としてテストしてるけど、 ユーザーコントロールを簡単に部品として作成できるの嬉しい。
634 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 17:43:21 ] >>633 俺はWPF関連の情報はネットを中心にかき集めてるわ 評価版リボンUIつけられて、アプリボタンのStyle書き換えもうまくいったけど、評価版だからやっぱり不安定だわ。 2010が待ち遠しい
635 名前:630 mailto:sage [2009/04/08(水) 19:01:21 ] >>634 おれは情弱だからWebでいい資料を探す技術がないんだよ〜。 それはさておき、VS2010とBlend3.0は気になる!
636 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 20:21:48 ] Blend3.0はどうでもいいけど、VS2010は買いだな。 VS2008はWPFの開発環境がまだまだ発展途上だもん。 2010になると強化されるらしいが・・・。 今別なこともやってて、VS2008買おうか迷ってるんだが、 来年VS2010が控えてるからなー・・・。今2008買っても損しそう。 2010買ったら数年使い倒せると信じたい。
637 名前:デフォルトの名無しさん [2009/04/08(水) 22:14:06 ] 一年前と比べるとちょっと賑やかになってきたな あと2年ぐらいたてば主流になれるのかな
638 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 01:20:59 ] 早くても3年以上はかかるだろうな
639 名前:デフォルトの名無しさん [2009/04/09(木) 01:55:23 ] WPFのサブセットのSilverlightを使ってしまうと、 もはやHTML+css+Javascriptなんてやりたくなくなるな。
640 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 02:03:10 ] やりたくならなくならないのか
641 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 09:10:40 ] >>636 つサンブスクリプション1年分
642 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 13:44:59 ] >>641 そういう買い方(レンタル)もあるのですね。 マイクロソフトのサイトを確認しても価格が見つかりません。 1年分でいいのでサブスクリプションしたいなぁ。
643 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 14:01:28 ] >>642 ttp://msdn.microsoft.com/ja-jp/subscriptions/dd197624.aspx
644 名前:デフォルトの名無しさん [2009/04/09(木) 14:07:42 ] エッセンシャルWPFは初心者向きですか?
645 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 14:23:01 ] >644 初心者って言うか、最初に通しで読んで、設計思想とか、 何でそうなってんの?って部分について「へー」と納得する為の本。 後でリファレンスマニュアルとして読み返すような部分はない。
646 名前:デフォルトの名無しさん [2009/04/09(木) 14:58:19 ] >>645 レスthxです。 Pro WPF買って読んでるんですが、ちょっと難しいなと感じています。 WPFに馴染んでおくという意味で、エッセンシャルWPFを 先に読んでおくとProも理解しやすくなりますかね?
647 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 15:52:24 ] 入門本としては黒い表紙のXAML本がおすすめかな。 APIだけでやりたいなら赤坂本があるけど、 WPFの威力が半減以下にw エッセンシャルは黒XAML本の後に読んだ方が理解が早いかな、 内容自体はかなり重複してるけどね。
648 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 15:54:42 ] 黒xamlじゃわかんねーよ WPFの本、店頭に並んでないんだから
649 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 16:03:14 ] アマゾン XAML でググれば一番上に出てくるよ。
650 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 16:07:21 ] お前、いいやつだな、惚れた
651 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 16:10:39 ] いいのかい?そんなにホイホイ惚れちまって・・・
652 名前:デフォルトの名無しさん [2009/04/09(木) 16:19:27 ] >>647 thx 本屋で黒XAMLを見てみます。
653 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 23:41:06 ] 本題なんか?みに行けば軽く吹き飛ぶぐらいなもんなんだから気になったのはどんどん買っとけ かぶったなら後輩にあげろ
654 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 03:02:22 ] >>647 の言うとおり 赤坂本はやめとけw
655 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 14:26:47 ] XAMLは@ITの連載記事でなんとかなった。
656 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 21:29:32 ] 有名どころのサイトだと、The Code Project のサンプル群が役に立つ。 あと Dr.WPF とか。本はエッセンシャル WPF が良かった。 XAML を書いてると、オーサリングソフトなしで HTML を書いてる気分になるが、 慣れれば GUI ポトペタより手書きの方が楽だね。 VS 2010 では、XAML 中の Binding などにも、インテリセンスが効くようになるそうだから、 ますます手書きが良くなるな。
657 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 00:03:31 ] winformレベルのポトペタ環境にした程度ではWPFはカバーできないってだけの気も
658 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 00:09:21 ] なんかあれだ。Blend 併用したほうがいいんじゃないか みたいな気がする。VS 持ってるなら高くないし。
659 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 00:51:25 ] ブレンドみたいなフリーソフトが出てきたら本気出す
660 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 00:56:20 ] 作ろうと思った時期があった。 インテリセンスの実装ができなくて挫折した。 (その前に入力したコードに色つけんのもね。実装してみたけどさすがにもたつきすぎで、バグりすぎで)
661 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 16:09:59 ] Win32→COM→.NETLib→WPF/XAML
662 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 16:34:51 ] Dependency Propertyが難しい。。 いきなり詳細を見るのは無謀かな。
663 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 21:56:26 ] UserControl をつくって、そのなかに Rectangle を配置しました。 enum Level { Low, High }; を作成し、Level という名前の DependencyProperty を作成しました。 で、Level に応じて Rectangle の色を変えようと思い、 <Rectangle> <Rectangle.Style> <Style TargetType="{x:Type Rectangle}"> <Style.Triggers> <Trigger Property="local:Usercontrol1.Level" Value="High"> <Setter Property="Rectangle.Stroke" Value="Red" /> </Trigger> <Trigger Property="local:Usercontrol1.Level" Value="Low"> <Setter Property="Rectangle.Stroke" Value="Blue" /> </Trigger> </Style.Triggers> </Style> </Rectangle.Style> </Rectangle> としたところ、コードビハインド内で、Level を変更しても Rectangle には 反映されませんでした。 どこが問題なんでしょうか?
664 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 22:26:07 ] >>663 DataTriggerでElementNameとかRelativeSourceとか使ってUserControl1のプロパティを参照するバインディングを使う Trigger.Propertyは基本的に自分自身のプロパティが対象だよ
665 名前:デフォルトの名無しさん [2009/04/13(月) 02:07:34 ] GridSplitterの挙動で質問です。 現在GridでRowを12、Columnを2で区切り、 それぞれ下記のように使用しております。 <Canvas Grid.Row="0" Grid.Column="0" Grid.RowSpan="12"/> <Canvas Grid.Row="12" Grid.Column="0" Grid.RowSpan="3"/> <Canvas Grid.Row="0" Grid.Column="1" Grid.RowSpan="7"/> <Canvas Grid.Row="7" Grid.Column="1"/> <Canvas Grid.Row="8" Grid.Column="1"/> 見かけはVSの配置と似たような形になります。 そこでそれぞれのペインの幅や高さを調整したい為に、 GridSplitterを使用して境界を作成しました。 <GridSplitter Margin="1" Height="5" Grid.Row="0" Grid.Column="0" Grid.RowSpan="12" VerticalAlignment="Bottom" HorizontalAlignment="Stretch"/> <GridSplitter Margin="1" Width="5" Grid.Row="0" Grid.Column="0" Grid.RowSpan="15" VerticalAlignment="Stretch" HorizontalAlignment="Right"/> このGridSplitterのうち、最初に作成した方がドラッグしても 設定が正しくないらしくまったく移動しません・・・。 よくない箇所などございましたらご指摘くださいませ。
666 名前:デフォルトの名無しさん [2009/04/13(月) 07:45:48 ] 開発ツールだとか開発フレームワークでお作法が難しいのはかまわない いずれ慣れる。しかし概念が難しいもんはいずれ廃れる。 wpf/xamlはどうも後者のような気がするんだがなあ。
667 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 13:23:24 ] MSDNってわかりやすい? プログラミングはじめたばかりなこともあってか、内容読んでてもなんか理解しづらい。 階層も複雑だし。
668 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 13:31:24 ] 他の情報サイト見に行くようにわざと読みにくくつくってある ユーザーサポートがめんどくさいから
669 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 13:35:45 ] わからんとむかついたときは、フィードバック書いてる
670 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 16:15:16 ] MSDNはリファレンスとして以外は使えん。リファレンスとして使う場合も、日本語版は 意味不明な訳語のせいで読んでもさっぱり判らないことが結構多いので、 英語版と両方当たるべし。 入門記事やTipsは、日本語に拘らなければネット上に無料でいっぱい転がってる。 まぁ、ようするに、日本で人気が出ていない技術を触るなら、英語で探せってこった。
671 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 18:35:39 ] .NETの訳はなかなかいいよ。 Win32APIの訳がクソなのは同意だが。
672 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 18:39:48 ] Win32APIは訳がクソ以前にそもそも存在してないの多数だからな…