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/
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ライクな外観を作りにくい