1 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 15:27:16 ] 一向に普及しないユーザーインターフェースシステム Windows Presentation Frameworkについて語るスレ。 .NET4.0もリリースされたけど別に盛り上がってはいないよね…。 Visual Studio 2010 ttp://www.microsoft.com/japan/msdn/vstudio/ Microsoft .NET Framework 4 (Web インストーラー) www.microsoft.com/downloads/details.aspx?familyid=9CFB2D51-5FF4-4491-B0E5-B386F32C0992&displaylang=ja Microsoft .NET Framework 4 (スタンドアロンインストーラー) www.microsoft.com/downloads/details.aspx?familyid=0A391ABD-25C1-4FC0-919F-B21F31AB88B7&displaylang=ja 関連スレ Microsoft Silverlight その6 ttp://pc12.2ch.net/test/read.cgi/tech/1271580489/ 過去スレ WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5 pc12.2ch.net/test/read.cgi/tech/1261879110/ WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3 ttp://pc12.2ch.net/test/read.cgi/tech/1245384489/ WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3 ttp://pc12.2ch.net/test/read.cgi/tech/1231506876/ WPF(XAML,XBAP,.NET3.5)GUIプログラミング ttp://pc11.2ch.net/test/read.cgi/tech/1211453941/ 【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】 ttp://pc11.2ch.net/test/read.cgi/tech/1162950198/ コードを貼る場合は以下のサイトの利用をお勧め。 run codeのチェックは外しておきましょう。 ideone.com/
116 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 08:45:03 ] 4.0って2系と何がちがうのん? 英語が苦手なぼくちんに教えて下さい><
117 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 09:23:06 ] >>116 ・MEFの統合 ・MVVMサポートの拡張 ・WCF RIA Services、WCF Data Servicesなんかの取り込み ・design-timeサポート MVVMパターンは今でもできるけど、リボン・ポップアップとかのサポートも提供していくっぽい
118 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 09:30:42 ] MVVMがわかりやすく説明してあるサイトかわかりやすいサンプルコード、教えてください
119 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 09:35:23 ] >>117 ありがとん! MEF統合はありがたいのー。
120 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 13:01:08 ] design-timeがサポートされたら地味に便利 リボンとかポップアップとかダイアログはフレームワークレベルで対応してくれたらほんと使いやすくなるなぁ
121 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 15:14:00 ] チミたちMVVMはどこで勉強したの?Web漁ってもいまいち掴みどころがわからんちん
122 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 15:24:54 ] つかMVVMをチートシート並に纏めて欲しいんだよ 1200字ぐらいで MSDNとか数十キロバイトの文章でだらだら説明してナメてんのか
123 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 15:31:13 ] そんなことより必要な情報になかなか辿り着けないのがな。 Formsなんか既に情報が蓄積されてるし、前時代のAPIの知識も流用可能だから 大雑把な検索文句でも目的地には着くんだが。 WPFだと「まずどれを使うんだよ?」の答えに辿り着かない。 ドアに取っ手がない。
124 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 16:09:33 ] それは壁や
125 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 16:11:19 ] 「DataGridのデザインとバインド何処に書くんだよ?」 「何処にでも」 ・・・ちょっと前まで、マジこんな問答だったよな。 一休さんでも敬遠するっつーの。
126 名前:デフォルトの名無しさん [2010/06/03(木) 16:13:32 ] まあxamlにも書けるし、C#側にも書けるしで悩むよね xamlに書いた場合はほぼ性的になるだろうし C#に書くと動的だよね
127 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 16:33:55 ] イヤーン
128 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 16:55:48 ] とりあえずエッセンシャルWPF読んであとは適当に海外のブログぐぐればなんとかなる
129 名前:デフォルトの名無しさん [2010/06/03(木) 17:25:36 ] システム全体の音量を調節したいです。 あわよくば、自分(アプリ)の音量だけを調節したいです。 調べてみたのですが、WPFで音量のコントロールって この方法しかないのでしょうか? ttp://www.geekpedia.com/tutorial176_Get-and-set-the-wave-sound-volume.html 上はC#の話ですが、WPFだと DllImport なんてしなくても できませんかね?という相談です。 マイクの音量調節なら System.Windows.Input.MediaCommands クラスで できるみたいなのですが、出力系のものを見つけることが出来ませんでした。
130 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 21:04:17 ] WPFを何だと思ってるんだ システムの音量なんかWPFとは全く関係の無いこと
131 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 22:24:00 ] >>130 そういう台詞は、WPFが何なのかを語りながら吐くものだ。
132 名前:デフォルトの名無しさん mailto:sage [2010/06/03(木) 23:59:12 ] C#とWPFを並列に語ってる時点で相手したくなくなるよね
133 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 00:14:10 ] >>125 敬遠球をランニングホーマーにするんだね
134 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 00:16:03 ] プレゼンテーション用のファウンデーションなんだから、サウンドだって何とかしてくれたっていいじゃない。 >>129 winmm は Vista 以降に対応してなかったキガス
135 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 00:27:19 ] Vista以降はMixerAPIかな
136 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 00:27:35 ] >>132 並列ならいいんじゃね?
137 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 14:56:23 ] >>136 あっ すみません直列でした
138 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 15:06:00 ] 面白くない
139 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 19:26:07 ] ListBoxとかListViewに、画像ファイルをエクスプローラのサムネイル表示みたいに表示させるのってどうやればいいの?
140 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 22:46:00 ] データテンプレートを使う
141 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 22:49:00 ] >>139 ViewBaseから継承してGridViewのように使えばいいと思うよ。
142 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 23:02:15 ] Styleも必要な気が
143 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 23:09:26 ] >>139 ItemsPanelとItemTemplateのコンボでいけるよ。
144 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 23:19:59 ] >>143 kwsk
145 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 23:23:38 ] 例えばこんなん <Window.Resources> <asm:ViewModel x:Key="viewModel"/> <DataTemplate DataType="{x:Type asm:ImageItem}" x:Key="listBoxDataTemplete"> <Image Width="128" Height="128" Source="{Binding Path=FullName}"/> </DataTemplate> <ItemsPanelTemplate x:Key="listBoxPanelTemplete"> <StackPanel Orientation="Horizontal"></StackPanel> </ItemsPanelTemplate> </Window.Resources> class ImageItem { public string FullName { get; set; } } どっかXAML整形表示できるところないのかしら
146 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 23:25:33 ] 使う時 <Grid DataContext="{StaticResource viewModel}"> <ListBox ItemsPanel="{StaticResource listBoxPanelTemplete}" ItemTemplate="{StaticResource listBoxDataTemplete}" ItemsSource="{Binding Path=Items}"/> </Grid> テスト用のViewModelは次のを使ってます public class ViewModel { public ImageItem[] Items { get; set; } public ViewModel() { this.Items = new ImageItem[10]; for (int i = 0; i < 10; i++) { this.Items[i] = new ImageItem(); this.Items[i].FullName = @"C:\Users\%USERNAME%\Desktop\test.jpg"; } } }
147 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 23:28:01 ] レスありがとう。 まだ荒削りだけどこんな感じでいけた。 StyleとかDataTemplateはおもしろいだけに、深みにハマりそうで怖い。 スニペット <Style x:Key="ThumbnailStyle" TargetType="{x:Type ListBox}"> <Setter Property="Padding" Value="5"/> <Setter Property="Margin" Value="5"/> <Setter Property="MinHeight" Value="70"/> <Setter Property="ItemTemplate"> <Setter.Value> <DataTemplate> <Image Source="{Binding FilePath}" Margin="5" Width="96" Height="72" /> </DataTemplate> </Setter.Value> </Setter> <Setter Property="ItemsPanel"> <Setter.Value> <ItemsPanelTemplate> <UniformGrid Columns="{Binding Yoko}"/> </ItemsPanelTemplate> </Setter.Value> </Setter> </Style>
148 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 23:29:05 ] コード書いてたらさらにレス来てた。 >>145 参考にさせてもらいます。
149 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 23:30:18 ] Prism和訳のヘルプがあったと思ったんだけどみつかりゃない…
150 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 23:34:37 ] >>149 これのこと? www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=6dd3d0c1-d5b4-453b-b827-98e162e1bd8d 内容は古くなってるから英語だけどv2.2のほうがいいとは思うけど。
151 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 23:41:26 ] >>150 サンクス! たしかにちょっと古いな… でももうPrismのサンプルみるの疲れた('A`)
152 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 18:16:49 ] ちょっとしたツールをWPFで作ってみたら糞重くて泣きそうになった。 これに適したアプリケーションってかなり限られてるね
153 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 18:24:49 ] マシンが非力か作り方が悪いんだろ 最初WPFでライフゲーム作ってみたときDrawingContextで毎フレーム描画してて糞重くて泣きそうになった
154 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 18:41:53 ] ちょっとしたツールに適した機動性っちゅうもんがあるねん
155 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 18:44:19 ] ちょっとした、ってのがどのくらいの物か解らんけど 何を作ろうとしたの?
156 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 19:39:03 ] ちょっとしたものならC#以外の選択肢もあるだばさ
157 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 22:44:24 ] WPF は最初、その複雑さに挫折し、それを乗り越えた次はパフォーマンスに挫折する。
158 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:02:53 ] Direct2Dベースの描画になってくんねーかなー
159 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:12:24 ] パフォーマンスに問題を覚えるほど複雑なUI作ってない ただウィンドウが開くのが異様に重いのだけは難点
160 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:22:53 ] 複雑なUIよりもデータ量を多めにつっこんだ時のパフォーマンスの劣化が痛いと思う。
161 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:48:34 ] うちは重たいと思った事ないけどなぁ。 仮想マシンの上で動いてるからビデオカードは最低レベルだしIOもホストの1/2しか出ないけど起動がちょい遅いだけで快適。
162 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 00:43:05 ] 重いって言ってるのは世代的にVista以前のマシンじゃないの
163 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 00:45:36 ] 入力データの検証を行いたい場合はどのタイミングでおこなうべきでしょうか? ●UI側のイベントを利用して行う ●BindingのConverterで行う ●BindingのValidationRuleで行う ●BindingのUpdate系イベントで行う ●モデル側のクラスが値を代入された時に行う バインディングを利用した場合は上記のような場所で、 値の検証が行えると思います(他にもございましたら指摘お願いします)。 またWPFを学ぶ上で、MVCのようななんらかしらの モデルなどはございますでしょうか? よろしくお願いいたします。
164 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 01:09:39 ] TextBlockのレイアウト計算が遅すぎる 大量のテキストが表示されるようなアプリケーションを作るときは TextBlockを使わずに、独自のコントロールを作らないとやってらんないよ
165 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 01:43:59 ] DirectXだよ
166 名前:デフォルトの名無しさん [2010/06/07(月) 07:55:43 ] たしかに大量にTextBlockを生成するよりLabelの方が軽いわ Labelより独自コントロールの方が軽いのかな
167 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 12:57:47 ] WPFアプリ内でDirectInputを使おうと思ったんですがうまくいきません。 参照設定にMicrosoft.DirectX、Microsoft.DirectInputを追加し、 Windowクラスに private Microsoft.DirectX.DirectInput.Device didev; を追加するまでは大丈夫なんですが、InitializeComponent();の 呼び出しのあとに、 didev = new Microsoft.DirectX.DirectInput.Device( Microsoft.DirectX.DirectInput.SystemGuid.Keyboard); と書くと、 System.Windows.Markup.XamlParseException はハンドルされませんでした。 Message="アセンブリ 'TrackX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' で定義された 'Window1' のインスタンスを 作成できません。 呼び出しのターゲットが例外をスローしました。 マークアップ ファイル 'Window1.xaml' 行 1 位置 9 にエラーがあります。" Source="PresentationFramework" LineNumber=1 LinePosition=9 と表示されて異常終了します。 トレースしてみるとそもそもInitializeComponent()呼び出しまでもたどり着いていないようです。 詳しい方どうか解決方法を教えていただけないでしょうか?
168 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 13:05:34 ] > マークアップ ファイル 'Window1.xaml' 行 1 位置 9 にエラーがあります。" こう言われてんだからまず確認してくれよ
169 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 13:21:22 ] >>168 脊髄反射ありがとうございます。 そこに問題が無いことは確信を持っております。
170 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 13:22:57 ] >>169 その確信を捨てるんだ
171 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 13:26:26 ] ちょっと試してみたよ。 >>167 は64bit環境じゃない? MDX使うなら、x86にしないとダメだよ。 構成マネージャから新規作成でx86作ってみそ
172 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 13:27:51 ] >>170 おまえはエラーを出したことがない天才プログラマーのようだな
173 名前:171 mailto:sage [2010/06/07(月) 13:28:17 ] あ、書き忘れたけど、AnyCPUからx86ね 2010からはデフォルトがx86になったけど2008以前だと AnyCPUだからね
174 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 13:31:26 ] >>170-171 レスありがとうございます。 確かに64bit環境です。エスパー感謝いたします。 ただいま構成マネージャ捜索中です。 もしかしてVisual C# 2008 Express Editionでは無いのでしょうか?
175 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 13:33:30 ] EEもあるけど、設定変えないと出てこなかった気がする オプションのツールのとこ。
176 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 13:38:25 ] えーと、メニューからツールのオプション選んで 左下の全ての設定を表示にチェック入れて 一番上のプロジェクトおよびソリューションの全般選んで ビルド構成の詳細を表示、にチェック入れる。 ツールバーに出てこなかったらツールバーも編集いるかも
177 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 13:39:00 ] >>175 何から何まで恐縮です。 ツール - ユーザー設定の中に構成マネージャを見つけたので、 めにゅーへ追加しました。 しかし、グレーになっており選択できないようです。 まだ頑張って調べ中ですが、取り急ぎ中間報告いたします。
178 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 13:43:19 ] >>176 見逃していました。その通りにしますと、グレーにもならず、 ビルドメニューに構成マネージャが新たに追加されました。 実行も問題なく出来ました。 数カ月の謎が一気に解けました。皆様本当にありがとうございました。
179 名前:163 mailto:sage [2010/06/07(月) 14:08:59 ] たーすけーてくーださーいorz
180 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 14:13:13 ] うるせーな適当に答えるぞ ・値の検証 ValidationRuleでやれ そのためにあるんだろーが ・モデル MVVM
181 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 22:13:15 ] >>166 Labelの方が軽い、というのはなんか変だね。 TextBlockはFrameworkElementから直接継承していてずっと軽い。 LabelはContentControlであって、Stringを放り込んだ場合、自動的に内部にTextBlockを作る。 メモリリソース、実行効率から言ってLabelが軽いはずはないんだけど。 一体どうなってんのかね?
182 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 22:20:30 ] レイアウト関連のプロパティのデフォルト値がTextBlockとContentControlで違うとかじゃね
183 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 01:05:40 ] やっぱり遅さの元凶はDependencyPropertyとリフレクションなんかなあ。 ただでさえマネージドコードは遅いのに。
184 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 06:58:44 ] だろね。
185 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 11:07:39 ] そんなことがボトルネックになるようなアホなつくりにはしないだろ やってることがもともと非常に複雑だから仕方ない 仕様にハードの性能が追いついてないんだよ
186 名前:163 mailto:sage [2010/06/08(火) 11:24:31 ] >>180 どもです、やっぱりValidationRuleでやったほうがよいのですね。 もでるについてはMVVMでググって見ます。 ありがとうございました。
187 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 12:38:17 ] >>185 ハードを蔑ろにした糞仕様ってこと?
188 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 12:40:39 ] まあDirectXとかは先に仕様ができてからハードがついてくるしなあ
189 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 18:24:12 ] グラフィックレンダリングに関しては、今後のハードウェアの性能が上がれば描画も早くなろうが・・。 ただ、バインディングやらレイアウト処理やらのマネージドコードで書かれた内部メカニズムに関してはCPUのコア性能があがらんことには どうしようもない。WPFのViewレイヤーを担当する部分は(基本的には)分散できずにシングルスレッドで走らすしかないから CPUのコア数があがってもどれほどの向上が見込めるのやら・・・。
190 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 18:28:22 ] 今の実装がシングルスレッドだからって、将来にわたりマルチスレッドで走らないなんて事はないだろ。
191 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 18:41:39 ] いや、WPF開発チームは当初マルチスレッドも許容するようなGUIライブラリに組むことを考えて設計したけど あまりに複雑になりすぎたので断念した、という経緯がある。
192 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 19:12:01 ] またそのうちチャレンジするだろ。
193 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 20:10:43 ] COMとの連携なんかでSTAThreadにせざるを得なかったとか書いてあった希ガス
194 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 21:44:19 ] yet another doomed libraryてことにならんことを祈る。
195 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:57:33 ] さわってておもしろいけど、おもしろいでおわっちゃう
196 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 23:40:28 ] FlowDocumentって作成したスレッドからしか触れないんだな。 別のスレッドのオブジェクトを操作するには、BeginInvoke使えとか言ってるけど、 ビューアーコントロールはそんなもん使ってくれないし。 データーを裏でロードしたり、構築したりしたい事って結構あると思うんだけどな。 ググったら、MemoryStream使って渡す例があったけど、 実際にやってみたら遅くて本末転倒だった。
197 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 23:52:53 ] CPUコア数の増加に進んだ Intel が悪い。 本当なら今頃 16GHz のCPUが出ている筈なのに。
198 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 23:57:39 ] どこのCPUメーカーもそうなんじゃない?結局技術的に頭打ちになってるんじゃなかろうか・・・。
199 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 00:11:52 ] ネタにマジレスされても困るが、並列プログラミングの難易度の問題から コア数増えてもクロック数あがらないとあまり効果でないってのは分かりきったことで このままコア数増え続けていっても有効活用できないだろうし、CPU以外の 部分に足ひっぱられるだろうしで、何かしらの打開策はいるんじゃなかろーか。
200 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 01:43:08 ] WPFもCOMコンポーネントを捨てればマルチスレッド許容できたが 現実問題として捨てられないから妥協した、みたいな書き方だったよね マルチコアに進んだからシングルコアの性能が上がらないんじゃなくて 逆じゃないっけ。 シングルコア性能向上の限界が見えたからマルチコアに進んでるんじゃないの
201 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 07:46:11 ] そのうちCPUは太陽表面並の温度になるってギャグがあったなあ
202 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 11:31:16 ] 単位面積あたりの発熱量が原子炉を越えたじゃなかったかな?
203 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 12:03:25 ] Prismでアプリケーション設定やユーザー設定を、モジュール間でやりとりするのってどんな方法がありますか? Unityコンテナに登録して、各モジュールでインスタンスを取り出すとかかなって考えてますが、いいやり方ってありますか?
204 名前:デフォルトの名無しさん [2010/06/09(水) 23:38:58 ] メインのウィンドウから、別の Window を ShowDialog() で呼び出し、 モーダルとして表示しています。 当然、そのWindowの×ボタンをクリックすればWindowは消せるのですが、 Windowの外の領域をクリックすることでもそのWindowを消したいです。 WPF用デバッグツール snoop なども使ってみましたが、 領域の外をクリックしたことを取得する方法は分かりませんでした。 可能でしたら、手段をお教えください。
205 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 23:47:00 ] フォーカスがなくなったよイベントでCloseじゃだめかのう。
206 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 23:48:11 ] >>204 カーソルをキャプチャするんだよ
207 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 23:48:34 ] 最前面じゃなくなったよイベントがあったようななかったような
208 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 23:50:01 ] モーダルっつってんだろクソどもが!
209 名前:204 mailto:sage [2010/06/09(水) 23:56:02 ] >>205 私も同じことを考えたのですが、 モーダルの場合はフォーカスを失ったとは見なさないようです。 >>206 調べてみます。ありがとうございます。 >>207 最前面かどうかの判定では難しそうです。
210 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 00:05:38 ] モーダルの場合でそのような挙動をするダイアログボックスはあまりみたこがありませんが・・・ モードレスへの変更を検討すべきではないかと思います。
211 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 00:14:37 ] 非アクティブになったら消えるウィンドウがモードレスかモーダルかなんて 利用者から見て違いあるかな?
212 名前:204 mailto:sage [2010/06/10(木) 00:15:59 ] >>210 アドバイスありがとうございます。 現在、以下のようなストーリーを考えているのですが、 モードレスでも記述かのうでしょうか? ・メインウィンドウから他のWindowを表示 ・メインウィンドウは Window が閉じられるまで操作停止 ・Windowには OK と Cancel があり、DialogResult でいずれかを受け取る ・OK or Cancel により、メインウィンドウにてその後の動作を変える よろしくお願いします。
213 名前:204 mailto:sage [2010/06/10(木) 00:17:25 ] すみません、追記です。 Window の外をクリックした場合も、(例えば)Cancel であると見なしたいです。
214 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 01:31:53 ] ユーザーエクスペリエンスの破壊を目的とするわけか
215 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 01:38:32 ] WPFで簡単なもぐら叩きを作っているのだが、 1分間Gridがクリックされなかったらメッセージボックスを 表示することってできる
216 名前:デフォルトの名無しさん [2010/06/10(木) 01:53:52 ] >>215 スタートしたあと1分間のカウントアップでもカウントダウンでもはじめて クリックがあればカウントターをリセットすればいいだけちゃうの?