WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/12/27(日) 10:58:30て語るスレ。.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 - June 2009 Release
ttp://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29117
Visual Studio 2010
ttp://www.microsoft.com/japan/msdn/vstudio/2010/overview/
関連スレ
Microsoft Silverlight その4
ttp://pc12.2ch.net/test/read.cgi/tech/1244812356/
過去スレ
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/
0456デフォルトの名無しさん
2010/03/28(日) 14:38:440457デフォルトの名無しさん
2010/03/28(日) 16:01:23技術的な他分野ってこんなもんだろ
0458デフォルトの名無しさん
2010/03/28(日) 16:06:43希望の機能ならライブラリにメソッドがちゃんと用意されてるよ。
遊びじゃないなら3週間給料泥棒だったね。
0459デフォルトの名無しさん
2010/03/28(日) 16:09:21width, height を Auto にして Stretch にすると
たとえば Name="canvas1"のCanvasに対して
int w = (int)(canvas1.Width);
としても w に変な値が入ってしまう。
// HeightとWidthはあくまで開発者がデザイン時に設定した値
ということは分かったのだが、
ではどうやって値を取得するのかが分からん。
canvas1.RenderSize.Width
canvas1.ActualWidth
とか調べても分からん。
windowサイズの拡縮に合わせて変化する canvas の
縦横を取得するにはどうすれば良いの?
# VC#2008, WPF3.5SP1
0460デフォルトの名無しさん
2010/03/28(日) 16:15:53「調べても分からん」?「確認したけど期待した値じゃない」じゃなくて?
0461デフォルトの名無しさん
2010/03/28(日) 16:17:370462459
2010/03/28(日) 16:20:36>「確認したけど期待した値じゃない」じゃなくて?
そうでした。すまん。
なんか 0 が返ってくる。
>>461
・・・ビンゴな気がする。
Invalidatなんたらを実行してからとか
そんなのですかね。色々試してみる。
お二方ありがとうノシ
0463デフォルトの名無しさん
2010/03/28(日) 16:35:230464459
2010/03/28(日) 16:42:19Window_Loaded() の中で呼んだら、期待した値が来ました。
本当にありがとうございました。
0465デフォルトの名無しさん
2010/03/28(日) 18:09:57いいってことよ
0466デフォルトの名無しさん
2010/03/28(日) 18:44:240467デフォルトの名無しさん
2010/03/28(日) 18:54:470468デフォルトの名無しさん
2010/03/28(日) 18:56:06普通そうです
0469デフォルトの名無しさん
2010/03/28(日) 18:57:590470デフォルトの名無しさん
2010/03/28(日) 19:02:41ここコミュ力試験に出るよ。
0471デフォルトの名無しさん
2010/03/28(日) 19:07:14でも初めてのことだとたまにエスパーして欲しいことはあるな
そういうときは答えをもらおうとせずもらえそうなところに愚痴っておくといい
たまーにヒントがもらえるから
0472デフォルトの名無しさん
2010/03/28(日) 19:26:58あと「回答すべきことを明確に伝えれる」「必要なことは書き余分なことは書かない」も重要。
「ネットはテレホーダイの時代以前から触っているので」とか
歯に詰まったクラッカーのカスほどの価値もないことを書いて
自分が調べたキーワードがどういうものかもかかない奴には当然冷たい。
0473デフォルトの名無しさん
2010/03/28(日) 20:01:39最初の一行が効いたな
0474デフォルトの名無しさん
2010/03/28(日) 20:03:03おまえはテレホマンの魂を侮辱した!
0475デフォルトの名無しさん
2010/03/28(日) 20:17:42ビギナー向けのXAML入門書読んだほうが早いような気もするが
0476デフォルトの名無しさん
2010/03/28(日) 20:34:18入門書で分かるレベルのことであっても
いつも通りの調べ方をしてしまったんだろな。
それ故にプライドも高い。
0477デフォルトの名無しさん
2010/03/28(日) 20:44:190478デフォルトの名無しさん
2010/03/28(日) 20:44:23発生するイベントってありますか?
現状では、以下の2通りの方法で何とか実現していますが
美しくありません。
1) DispathderTimer を使う
・ System.Windows.Forms を参照
・ timer で定期的に呼ばれる関数内で Cursor.Position.X, Y を取得し
予め取得しておいた、解像度の情報と X, Y を比較して判定
問題点:タイマーを設けることで常に関数が呼ばれることになる
2) 透明の Rectangle などを置いて、MouseEnter で判定
・そのままです。
問題点:問題と言うか、美しくないです。
もしあるようでしたら、ご教授願いたいです。
よろしくお願いします。
0479デフォルトの名無しさん
2010/03/28(日) 20:55:040480デフォルトの名無しさん
2010/03/28(日) 20:55:39http://www.atmarkit.co.jp/fdotnet/dotnettips/003screen/screen.html
を組み合わせてみては?
0481478
2010/03/28(日) 21:11:57美しくなくないですか。
例えば市場に出すアプリを組んでいるプロ?の方でも
こういった力技で解決するのでしょうか。
>>480
あぁーなるほど。MouseMoveですか。盲点でした。
座標比較が頻繁に行われることに違いはありませんが、
timerよりかは遥かに良い方法ですね。
以下、つぶやきです。
1)の方法でも、OSは定期的に MouseEnter しているのか
判定しているのでしょうかね。それなら1)も2)も処理量は
大差ないかもしれません。が、仮定の話なので無駄ですね。
0482デフォルトの名無しさん
2010/03/28(日) 21:19:33正しい実装じゃん
力技じゃない
0483デフォルトの名無しさん
2010/03/28(日) 21:21:400485デフォルトの名無しさん
2010/03/29(月) 21:53:38昔のVBと大して変わんないってくらい
0486デフォルトの名無しさん
2010/03/30(火) 08:02:13あれを再現は可能ですか?
0487デフォルトの名無しさん
2010/03/30(火) 09:03:01そりゃWPFはまさにああいうことをやるためのフレームワークだから
0488デフォルトの名無しさん
2010/03/30(火) 10:29:010489デフォルトの名無しさん
2010/03/30(火) 13:00:22別にFormで出来なかったわけでもないけど。
0490デフォルトの名無しさん
2010/03/30(火) 21:11:48Macの真似みたいな貧乏臭いことはやめてくれ
0491デフォルトの名無しさん
2010/03/31(水) 22:27:14何か良い本は無いでしょうか。
0492デフォルトの名無しさん
2010/03/31(水) 22:46:110493デフォルトの名無しさん
2010/03/31(水) 23:18:18他に無いでしょうか。
0494デフォルトの名無しさん
2010/03/31(水) 23:28:13だれか何かを挙げる→そんなもん読んでるに決まってるだろ→
だれか何かを挙げる→そんなもん読んでるに決まってるだろ→(ry
まぁ、挙げるだけ無駄ってことだなw
0495デフォルトの名無しさん
2010/03/31(水) 23:45:330496デフォルトの名無しさん
2010/03/31(水) 23:51:020497デフォルトの名無しさん
2010/04/01(木) 00:12:500498デフォルトの名無しさん
2010/04/01(木) 07:31:590499デフォルトの名無しさん
2010/04/01(木) 11:24:400500デフォルトの名無しさん
2010/04/01(木) 14:45:12HTMLのMarquee的な動作をするテキストブロックを作ろうと
<Canvas>
<TextBlock 〜>
</Canvas>
としておいて、
下記のように添付プロパティのCanvas.Leftをアニメーションさせています。
<Storyboard x:Key="test" RepeatBehavior="Forever">
<DoubleAnimation
From="1"
To="100"
Duration="0:0:10"
Storyboard.TargetName="textBlock1"
Storyboard.TargetProperty="(Canvas.Left)"/> <!-- ←なんで括弧が必要? -->
</Storyboard>
括弧がなぜ必要なのか教えてください。
ひょっとして拡張部分のそういう仕様ですか?
↓
仕様でした><
0501デフォルトの名無しさん
2010/04/01(木) 21:45:220502デフォルトの名無しさん
2010/04/01(木) 22:58:08Ellipse elli1, elli2
ああるとして
canvas1.Children.Add(elli1);
canvas1.Children.Add(elli2);
とした後に
elli2 だけ Clear することってどうやれば良いんですか?
0503デフォルトの名無しさん
2010/04/01(木) 23:01:240504デフォルトの名無しさん
2010/04/01(木) 23:07:15あ・・・ありがとう。
なんで見つからなかったんだろう。
0505デフォルトの名無しさん
2010/04/02(金) 04:26:05Practical WPF Graphics Programming
この本なんかはどう?
0506デフォルトの名無しさん
2010/04/02(金) 07:52:30ttp://www.free-ebooks-download.org/free-ebook/dotnet/Framework/practical-wpf-graphics-programming.php
なんかあったがなんかいろいろばら撒く気満載泣きガス・・・
とりあえずダウンロードはできた。中身もあってるっぽいが・・・
0507デフォルトの名無しさん
2010/04/02(金) 09:09:51それとも欧米では結構昔からこういうことするとこ多かったのかな?
0508デフォルトの名無しさん
2010/04/02(金) 09:55:540509デフォルトの名無しさん
2010/04/02(金) 10:16:55実に由々しき事態だ。(棒)
0510デフォルトの名無しさん
2010/04/02(金) 10:19:12普通は可視化にOpenGLとか使うところをたまたまWPF使ってるだけな感じ
0511デフォルトの名無しさん
2010/04/04(日) 22:14:21こちらを参考にしてWPFにExcelファイルを読み込まれるまではできたのですが、
これをWPFコントロールにそのまま表示させることって出来ないのでしょうか。
セルの1つひとつの情報を取ることはできるので
Gridをひいてセルを写すことは可能なのですが、
Excelの表をそのままWPFのwindowに表示させたいのです。
それとも、セルから全部コピーしないとダメなのでしょうか?
0512デフォルトの名無しさん
2010/04/05(月) 01:03:51たぶんもうちょっと理解してから弄った方がいい(というかformsで構築したほうがいいだろ)
こういう方法はあるみたい
http://social.msdn.microsoft.com/Forums/ja-JP/wpfja/thread/b0612ddb-2390-4458-bb3d-86c904509d82
0513デフォルトの名無しさん
2010/04/05(月) 02:52:05ありがとうございます。
その質問+解答も見ていましたが
やはりその方法しかないみたいですね。
まずはWinFormで作ってみてから
WPFに応用してみます。
※Animationを使いたいので、WPFのが良いんです。
0514デフォルトの名無しさん
2010/04/06(火) 00:11:32「さーアニメってこい!」
ってゴーサイン出すだけじゃん?
FromからToまで行き終わったときに
何か処理して欲しい場合って
どうすれば良いの?
FinishedAnimationとかあれば良いのに。
0515デフォルトの名無しさん
2010/04/07(水) 13:49:440516デフォルトの名無しさん
2010/04/08(木) 00:05:35なにが変わるのかわかる資料が全然見当たんないなー
0517デフォルトの名無しさん
2010/04/09(金) 01:02:240518デフォルトの名無しさん
2010/04/09(金) 01:05:140519デフォルトの名無しさん
2010/04/10(土) 00:12:37キーボードフォーカスをそのエレメントに移動できなければfalse、ってのは分かるのですが
そもそもキーボードフォーカスを移動できる条件って何でしょうか?
0520デフォルトの名無しさん
2010/04/10(土) 06:20:250522デフォルトの名無しさん
2010/04/11(日) 21:49:49CheckBoxのIsCheckedをTrueにしてると、初期化中にチェックイベントが実行されたりするあれ?
0523デフォルトの名無しさん
2010/04/13(火) 17:17:580524デフォルトの名無しさん
2010/04/13(火) 17:33:220525デフォルトの名無しさん
2010/04/13(火) 21:48:30ざっくりした質問で悪いけど、皆さんWPFの3Dって総合的にどう評価してます?
0526デフォルトの名無しさん
2010/04/14(水) 05:48:41「wpf direct3d 制約」でググるいいよ。
正直、WPFの3Dっておまけ機能だと思ってるけど。
0527デフォルトの名無しさん
2010/04/14(水) 10:17:470528デフォルトの名無しさん
2010/04/14(水) 13:52:27XAMLなんて誰が考えたんだ?
こんなソース読む気も書く気もしねー
0529デフォルトの名無しさん
2010/04/14(水) 13:58:43ただ、凡人の限界を知らなかったらしい
0530デフォルトの名無しさん
2010/04/14(水) 14:02:340531デフォルトの名無しさん
2010/04/14(水) 15:10:290532デフォルトの名無しさん
2010/04/14(水) 15:45:31Xamlコードを出力するツールをまず自作しなきゃな。
blend?高いしイラネ
0533デフォルトの名無しさん
2010/04/14(水) 17:04:29まあなんとかいうモデリングソフトで書いてxaml出力してもいいけどね
0534デフォルトの名無しさん
2010/04/14(水) 18:41:57> 2 次元から抜け出そう
心にぐさりと来ました
0535デフォルトの名無しさん
2010/04/14(水) 19:02:310536デフォルトの名無しさん
2010/04/14(水) 20:04:03そのためのXMLだ
0537デフォルトの名無しさん
2010/04/14(水) 20:15:00わざわざ手かせ足かせを嵌めて走る意味はなかろう。
0538デフォルトの名無しさん
2010/04/14(水) 20:59:43を使っている方は少ないと思いますが、
「これが原因じゃない?」程度でも構いませんので
何か思い当たることがありましたら、お願いします。
■質問内容
以下の2つの方法で、挙動がことなります。
1) xmalで Button を配置して Click イベントを与えたもの
2) csファイルに Button b = new Button(); b.Click += new RoutedEventHandler(hoge);
として Click イベントを与えたもの
■挙動
1) Win7+タッチ対応ディスプレイにて、タッチでも Click が反応します
2) Win7+タッチ対応ディスプレイにて、タッチでは Click が反応しません
ButtonをManipulationで操作したいため、TouchUp などは使えません。
ボタンの Click イベントを 2) の方法で生成した Button に対して適用したい
のですが、どのようにしたら良いかアイデアが思いつく方、お願いいたします。
0539デフォルトの名無しさん
2010/04/14(水) 23:46:110540デフォルトの名無しさん
2010/04/15(木) 00:01:33ManipulationではなくMouseMoveで
操作しろということでしょうか?
0541デフォルトの名無しさん
2010/04/15(木) 07:51:03Direct3Dとか少ししか触ってないので見当違いなこと言ってたらすまん。
1.UIElementツリー
2.Direct3DのVertexBufferとかMesh
3.実際の出力
WPFは主に1の画面要素自体とイベントなどのハンドリング、状態通知でごにょごにょとなどとそれらを2に反映させるものだと思ってるんだが、
1自体が重いのか1から2への変換などが重いのか?
2,3とかは高速なんだろうし、現状では削りようのないところなんだろうけれど。
たとえば画面のボタンの背景色を変えた場合は内部でどんな動作になるんざんしょ。
0542デフォルトの名無しさん
2010/04/15(木) 08:03:57ちなみに1と2の間にはもう一つ層がある
Direct3DをGUI向けにラップしたネイティブコードのライブラリを使ってる
0543デフォルトの名無しさん
2010/04/15(木) 10:08:430544デフォルトの名無しさん
2010/04/15(木) 21:06:10オススメの文献とかありませんか?
0545デフォルトの名無しさん
2010/04/15(木) 21:33:450546デフォルトの名無しさん
2010/04/15(木) 21:40:070547デフォルトの名無しさん
2010/04/15(木) 21:40:59ですが、格闘ゲームに限らず、
WPFでのゲームプログラミングの情報自体が見つけられなかったので、
ほかのジャンルの情報でも充分助かります。
0548デフォルトの名無しさん
2010/04/15(木) 21:47:43ギャルゲーでビデオカード要求とかあり得ないんでギャルゲーでは主流になってもいいと思います。
0549デフォルトの名無しさん
2010/04/15(木) 21:50:220550デフォルトの名無しさん
2010/04/15(木) 21:58:28「エッセンシャル WPF」
「XAML プログラミング WPFアプリケーションの概要と開発」
このスレではこの2冊がそこそこ評判が良かった。
もし英語に抵抗が無ければ出版数が多い洋書で探した方が良いかと。
個人的には書籍じゃないけどMSDNのサンプルが一番役に立ったよ。
WPFでゲームを作ってる人は少ないだろうなあ。
DirectXかXNAを使った方が良いと思うんだけど。
0551デフォルトの名無しさん
2010/04/15(木) 22:29:22だいたい用は足りると思う
0552デフォルトの名無しさん
2010/04/16(金) 00:11:31ということをXMALではなくC#のコードから実現したいです。
ネタとしては、ここの質問のC#版です。
質問内容を理解しないでXAMLの話をする回答者が多いみたいですが。
ttp://bbs.wankuma.com/index.cgi?mode=al2&namber=38523&KLOG=66
プログラム内で動的にButtonを配置したいため、
XAMLではなくC#から生成したいのです。
画像の情報も動的に取得するので、画像もC#で生成したいです。
(実際には、画像のパスを動的に取得し、そのパスからImageを生成)
ググってもXAMLの話ばかりです。よろしくお願いします。
0553デフォルトの名無しさん
2010/04/16(金) 00:23:240554デフォルトの名無しさん
2010/04/16(金) 01:45:52そうですか
>質問内容を理解しないでXAMLの話をする回答者が多いみたいですが。
そうですか
>XAMLではなくC#から生成したいのです。
そうですか
>画像の情報も動的に取得するので、画像もC#で生成したいです。
そうですか
>ググってもXAMLの話ばかりです。よろしくお願いします。
なにをよろしくですか
0555デフォルトの名無しさん
2010/04/16(金) 01:48:3338526の回答以外のなにものでもないよ
質問内容を理解しないんじゃなくて、回答読んでも理解できない脳みそを恨め
0556デフォルトの名無しさん
2010/04/16(金) 02:02:05中身の無いレスだな
お前みたいなのは来なくて良いよ
■ このスレッドは過去ログ倉庫に格納されています