WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5at TECH
WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5 - 暇つぶし2ch400:デフォルトの名無しさん
10/03/23 13:36:30
ViewModel→Viewの操作でどうしてもバインドで書けないところは
var service = (IWorkspaceService)this.Services.GetService(typeof(IWorkspaceService));
service.OpenWorkspace(HogeWorkspaceViewModel);
みたいにしたらだいたいなんとかなるとおもう

401:デフォルトの名無しさん
10/03/23 14:42:36
Eventにコマンドをバインドしたければ
AttachedCommandBehaviorが使えるよ。
URLリンク(marlongrech.wordpress.com)

402:デフォルトの名無しさん
10/03/23 16:22:41
WPF3.5でテキストがGDIに比べてぼやけた状態で描画されてしまう問題に対応しようとしています。

私なりに調べた結果、WPFの描画の際に論理座標で色を配置する仕様が原因であること、図形と画像については
RenderOptionsのパラメータで解決させることができる。
ですがテキストに関しては解決させる方法が見つからないでいます。
WPF4.0から対応するといった内容のページも見つけましたが、なんとか解決させたいと思っています。
どなたか解決方法を教授願えませんでしょうか。



403:397
10/03/23 17:04:58
>>399
まぁ >>122 ということなのです。
WPF触りたてなのでまだまだMVVMの華麗なる疎結合に夢と希望をもっていますのでw

>>400
IWorkspaceService ってインターフェースはMSDNもグーグルさんも知らないとおっしゃってるのですが・・・

>>401
おお!すばらしいです。
ぱっとみ問題ありそうなのはEventArgsが利用できなさそうなくらいですかな。
大変参考になります。

こんな↓ページを見つけまして
URLリンク(blogs.microsoft.co.il)

でも上のはRoutedEventにしか対応してないから普通のEventHandler対応版を追加するのに
リフレクション使ってイベント名からイベント追加してというコードを作ったのですが
同じコードがあるじゃないか・・・orz



404:デフォルトの名無しさん
10/03/23 17:29:16
>>402
WinFormsHost
敗北宣言に等しいけど

405:デフォルトの名無しさん
10/03/23 17:38:10
カスタムスタイルでレイアウトの入れ子が増えるとおかしくなる。

406:デフォルトの名無しさん
10/03/23 17:48:50
知らん
XAMLくらい出せるだろ

407:デフォルトの名無しさん
10/03/23 22:35:36
あと、.NET 3.5のWPFでぼけたように見える原因の1つに埋込ビットマップをまったく使わないせいというのもある。
だからどうしたらいいと言えるわけではないけれど。

408:デフォルトの名無しさん
10/03/23 22:51:45
VS2010RC, WPF4.0
を使っているのだが、
Win32におけるWM_GESTUREみたいなもので
Gestureイベントってあるのかな?

zoomとかrotateとか簡単に取得できると
良いのだが。

409:デフォルトの名無しさん
10/03/23 22:59:34
WPF マルチタッチ
でググる

410:デフォルトの名無しさん
10/03/23 23:34:37
>>409
それで解答が得られたのであれば
本気で教えて欲しい。
どうせ「WPF マルチタッチ」でググったことないんだろ?

411:410
10/03/23 23:38:39
>>409
正直スマンかった。
最近、海外のサイトばかり回っていたのだが
日本のサイトでもWPF4.0について書かれているサイトが
少しずつ増えているんだな。

412:デフォルトの名無しさん
10/03/24 21:26:14
これXPには対応していない部分とかあるの?
XP用に開発するのは無謀?

413:デフォルトの名無しさん
10/03/24 22:33:26
XPだとなんか重いし、見た目もいまいちだし。
俺はもうXPはサポート外でやろうと思ってるくらいだ。

414:デフォルトの名無しさん
10/03/24 23:08:34
WPF初めて触って面白そうと思ったんですが(まだハローワールドしかやってないんですが)そんなにはやってないんですか
XPだと表示が微妙なんでしょうか?

415:デフォルトの名無しさん
10/03/24 23:09:18
Silverlight使えば?
Silverlight4ならブラウザ外実行の普通のデスクトップアプリケーションとして
CDなどで直接配布できるよ

416:デフォルトの名無しさん
10/03/24 23:17:52
>>414
微妙っていうか重いってのが一番のネックかと。
今のところ、WPF でやってみました!!なんてのが売りになるぐらい流行ってないと思う。
少なくとも国内では。

417:デフォルトの名無しさん
10/03/24 23:28:38
WindowsFormで作られたC#アプリを
簡単にWPFのGUIに移行できる?
簡単に言うとform1だけwindows1にするだけで
作り変えられるのか?ってとこが疑問なんだけど
このGUIで非同期とか実現できるのかなー

418:デフォルトの名無しさん
10/03/24 23:31:12
新しい概念が登場しすぎで全体像把握すんのが大変
昔の素朴なイベントキューアーキテクチャって一目で理解できたもんな
それってある意味ではすごい

419:デフォルトの名無しさん
10/03/24 23:32:32
>>417
ならない

細かいところで変わってるから

420:デフォルトの名無しさん
10/03/24 23:33:31
>>417
> form1だけwindows1にするだけで作り変えられるのか?
一応WinFormとの相互運用性は確保されてるが、
Windowに直接System.Windows.Forms.Controlは乗せられないから多少手間が必要
しかしそれ以前にそもそもWPF使う意味皆無だろそんなもん

> このGUIで非同期とか実現できるのかなー
意味分からん

421:デフォルトの名無しさん
10/03/24 23:38:29
>>416
重いんですか、残念
こういうの待ってたんだけどなぁ
Silverlightってwikipedia見る限りWPFと同じなのかな??は調べてやってみまする

422:デフォルトの名無しさん
10/03/24 23:39:54
XPだと重いってどういうことよ?
プラットフォームに依存しないんじゃないの?

423:デフォルトの名無しさん
10/03/24 23:40:55
同じPC/AT互換プラットフォームなら全て同じ性能出せと言いたいのか

424:デフォルトの名無しさん
10/03/24 23:41:04
>>422
GUI周りの構造の問題じゃないの?

試してないけどもしかするとvistaのAero切ったらだめってのと同じかもね

425:デフォルトの名無しさん
10/03/24 23:42:41
まあSilverlightなら軽いし確実に同じ外観と操作性を実現できるもんなあ

426:デフォルトの名無しさん
10/03/24 23:43:42
vista以降ってOSのGUI周りがゲームと変わらないといっても過言じゃないくらい
GPUと融合果たしてるけど、xpまでは2Dが基本なのでWPFだといろいろ
無駄がありそうってイメージ

427:デフォルトの名無しさん
10/03/24 23:59:15
細かい違いはあるけど Silverlight 覚えるのも WPF 覚えるのも大差ないような気はするよね。


428:デフォルトの名無しさん
10/03/25 04:20:54
Expression Blend 3をダウンロードしてみたんだが
UIがめっちゃオサレですね
でも使い方が全然わからん
ほんとにデザイナさんこんなの使えるの???

429:デフォルトの名無しさん
10/03/25 06:40:20
flashでas3やってるデザイナなら使えると思う

430:デフォルトの名無しさん
10/03/25 10:53:57
体を使う技はデザイナでも訓練しなければ云々

431:デフォルトの名無しさん
10/03/25 13:04:21
>>426
OSはあんまり関係ないよ
WPFは基本的にウィンドウ内で完結してるのでほんとにゲームと全く変わらない

432:デフォルトの名無しさん
10/03/25 17:46:11
描画システムが違うって点でOS関係あるんじゃないの?

433:デフォルトの名無しさん
10/03/25 17:59:00
XPがWDDM1.1に対応してないという点では関係ある
ウインドウの中身をdirectxで書いてるという点では関係ない

434:デフォルトの名無しさん
10/03/25 22:30:39
XPだとGPU支援が得られず、CPU負荷が大きい。
なのでOSは思いっきり関係ある。

435:デフォルトの名無しさん
10/03/25 22:33:57
それ迷信
単なるゲームだと何度言ったら

436:デフォルトの名無しさん
10/03/25 22:42:50
XPでGPUアクセラレーションが効かないっていう噂の発端は
XPでは透明ウィンドウがソフトウェア処理されていたこと
.NET3.5ではXPでも透明ウィンドウにGPUが効くようになった

437:デフォルトの名無しさん
10/03/25 22:49:27
なるほど。
3.5以降ターゲットで作ればVista以降と比べて遅いってことはなくなるのか。

438:デフォルトの名無しさん
10/03/26 00:13:16
3.5のせいでウィンドウフックするタイプのソフトは全部使えなくなったわ

439:デフォルトの名無しさん
10/03/27 01:22:15
WPF3.5 SP1 です。

イラレで描いた絵をXAML形式で吐いて
WPFに配置することはできますが、
以下のことは可能でしょうか?

 ・座標 (a, b) を設定する
 ・ボタンを押す
 ・指定した座標に、イラレで描いた絵を配置する

たとえば、ある canvas に対する相対位置 (a, b) に
XAML形式のものを配置するということを、C#のコードで
実現することは出来るのでしょうか?

440:デフォルトの名無しさん
10/03/27 08:06:13
できるとしか答えられない

441:デフォルトの名無しさん
10/03/27 08:23:34
>>440
*.cs からイラレxamlって生成できるの?
どうやんの?

442:デフォルトの名無しさん
10/03/27 08:27:29
どうやるかは分からないが
労力を無視すれば
どんなことであれ不可能ではないだろう

443:デフォルトの名無しさん
10/03/27 09:08:38
*.cs で、はしらんけどイラストレーターには Xaml 出力のプラグインがあったよ?

URLリンク(www.mikeswanson.com)

444:デフォルトの名無しさん
10/03/27 09:24:27
>>439
XamlReaderでXAMLを読み込んでXAMLのルート要素の型(IllustratorならたぶんCanvas)にキャスト
Canvas.SetLeftとCanvas.SetTopで位置を設定
配置されてるCanvasのChildrenに追加


445:デフォルトの名無しさん
10/03/27 15:17:30
あるいはC#で静的にXAMLファイルを書きかえる

446:デフォルトの名無しさん
10/03/27 19:26:24
>>442
~でできますかという言い方をすれば俺ならこうやってできるぜ
という人が必ず現れるので労力は無視できる。

447:デフォルトの名無しさん
10/03/27 19:37:45
>>446
それが2ちゃんの正しい使い方

448:デフォルトの名無しさん
10/03/27 19:39:35
「◯◯って××も出来ないんだね→ばーかばーか、△△で出来るっつーの」メソッドと、
「◯◯ってどうやるんでしょう?→△△で出来ますよ(嘘自演)→アホ、□□だ情弱」メソッドもあるでよ。



449:デフォルトの名無しさん
10/03/27 19:44:39
もはやそのメソッドも使い古されて「△△で」「□□だ」は書かれない傾向が

450:439
10/03/27 22:09:58
>>443
ありがとうございます。
そのプラグインで生成したxamlを *.cs.xaml に記述するのではなく
*.cs の中から生成したいのです。

>>444
ありがとうございます。
今、外出中なので帰宅したらやってみます。
また、いただいた情報から更に調べてみます。

>>445
ありがとうございます。
検索の手がかりになるキーワードだけでも
教えていただけないでしょうか。

451:デフォルトの名無しさん
10/03/28 02:42:38
WPF覚える前に検索方法覚えたほうがいいんじゃね

検索キーワード聞かなきゃ検索できないとか冗談にもならないレベルだよ

452:デフォルトの名無しさん
10/03/28 09:35:00
いやいや何言ってんだ・・・キーワード知らなきゃ検索出来んだろ普通。


453:デフォルトの名無しさん
10/03/28 10:41:34
>>439
大漁でしたね

454:デフォルトの名無しさん
10/03/28 12:24:39
google入門とか読めよ。

簡単に言うと、自分が思いつくいちばん近いキーワードで検索してページを読んで
もっと近そうなキーワードを見つけていくんだよ。誰でもできるだろ? やれ。

455:439
10/03/28 14:13:30
ネットはテレホーダイの時代以前から触っているので
それなりに検索術はあると思っていますが
皆さんの反応を見る限り、そうではなかったようです。

>>454氏の書き込んでいることはもはや当然のことで、
かれこれ3週間MSDNやらcode projectやらブログやらを
探っていますが、解に到達できていません。
その上で質問に来ています。

が、経験上、この流れになったが最後、
これ以上の情報をこのスレで得ることは困難なため
大人しく身を引きます。ありがとうございました。


>>453
遊びではありません。

456:デフォルトの名無しさん
10/03/28 14:38:44
傲慢過ぎワラタ こんな捨て台詞数年ぶりに見たわ

457:デフォルトの名無しさん
10/03/28 16:01:23
そうか?俺も他スレで同じ経験すること多いぞ
技術的な他分野ってこんなもんだろ

458:デフォルトの名無しさん
10/03/28 16:06:43
無駄にプライド高いのに教えを乞うからだよ。

希望の機能ならライブラリにメソッドがちゃんと用意されてるよ。
遊びじゃないなら3週間給料泥棒だったね。

459:デフォルトの名無しさん
10/03/28 16:09:21
今質問すると、ググレカスで一蹴されそうだが
width, 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

460:デフォルトの名無しさん
10/03/28 16:15:53
ActualWidth/ActualHeightでいいはずだが?
「調べても分からん」?「確認したけど期待した値じゃない」じゃなくて?

461:デフォルトの名無しさん
10/03/28 16:17:37
計算される前に呼んでるんだろ

462:459
10/03/28 16:20:36
>>460
>「確認したけど期待した値じゃない」じゃなくて?
そうでした。すまん。
なんか 0 が返ってくる。

>>461
・・・ビンゴな気がする。
Invalidatなんたらを実行してからとか
そんなのですかね。色々試してみる。

お二方ありがとうノシ

463:デフォルトの名無しさん
10/03/28 16:35:23
ggrks

464:459
10/03/28 16:42:19
何を血迷ったか、WinMain() の中で呼んでいたよ orz
Window_Loaded() の中で呼んだら、期待した値が来ました。
本当にありがとうございました。

465:デフォルトの名無しさん
10/03/28 18:09:57
>>464
いいってことよ

466:デフォルトの名無しさん
10/03/28 18:44:24
おまえら質問のしかたで反応が違いすぎ

467:デフォルトの名無しさん
10/03/28 18:54:47
いや普通そうだろ

468:デフォルトの名無しさん
10/03/28 18:56:06
>>466
普通そうです

469:デフォルトの名無しさん
10/03/28 18:57:59
私は女子中学生だけどそれが普通だと思います。

470:デフォルトの名無しさん
10/03/28 19:02:41
「自分のしたいことが明確にわかっている」のが質問の最低条件だから。
ここコミュ力試験に出るよ。

471:デフォルトの名無しさん
10/03/28 19:07:14
エスパーじゃないからな

でも初めてのことだとたまにエスパーして欲しいことはあるな

そういうときは答えをもらおうとせずもらえそうなところに愚痴っておくといい

たまーにヒントがもらえるから

472:デフォルトの名無しさん
10/03/28 19:26:58
>>470
あと「回答すべきことを明確に伝えれる」「必要なことは書き余分なことは書かない」も重要。

「ネットはテレホーダイの時代以前から触っているので」とか
歯に詰まったクラッカーのカスほどの価値もないことを書いて
自分が調べたキーワードがどういうものかもかかない奴には当然冷たい。

473:デフォルトの名無しさん
10/03/28 20:01:39
>>459
最初の一行が効いたな

474:デフォルトの名無しさん
10/03/28 20:03:03
>>472
おまえはテレホマンの魂を侮辱した!

475:デフォルトの名無しさん
10/03/28 20:17:42
しかしネットで難解なドキュメントやマニアックなブログ見るよりも
ビギナー向けのXAML入門書読んだほうが早いような気もするが

476:デフォルトの名無しさん
10/03/28 20:34:18
普段、難解なことを扱っているんだろ。
入門書で分かるレベルのことであっても
いつも通りの調べ方をしてしまったんだろな。
それ故にプライドも高い。

477:デフォルトの名無しさん
10/03/28 20:44:19
スレチ

478:デフォルトの名無しさん
10/03/28 20:44:23
WPFで、マウスポインタがディスプレイの端を触った時に
発生するイベントってありますか?

現状では、以下の2通りの方法で何とか実現していますが
美しくありません。

1) DispathderTimer を使う
 ・ System.Windows.Forms を参照
 ・ timer で定期的に呼ばれる関数内で Cursor.Position.X, Y を取得し
  予め取得しておいた、解像度の情報と X, Y を比較して判定
問題点:タイマーを設けることで常に関数が呼ばれることになる

2) 透明の Rectangle などを置いて、MouseEnter で判定
 ・そのままです。
問題点:問題と言うか、美しくないです。

もしあるようでしたら、ご教授願いたいです。
よろしくお願いします。

479:デフォルトの名無しさん
10/03/28 20:55:04
2)は美しくなくない

480:デフォルトの名無しさん
10/03/28 20:55:39
MouseMoveイベントと
URLリンク(www.atmarkit.co.jp)
を組み合わせてみては?

481:478
10/03/28 21:11:57
>>479
美しくなくないですか。
例えば市場に出すアプリを組んでいるプロ?の方でも
こういった力技で解決するのでしょうか。

>>480
あぁーなるほど。MouseMoveですか。盲点でした。
座標比較が頻繁に行われることに違いはありませんが、
timerよりかは遥かに良い方法ですね。


以下、つぶやきです。
1)の方法でも、OSは定期的に MouseEnter しているのか
判定しているのでしょうかね。それなら1)も2)も処理量は
大差ないかもしれません。が、仮定の話なので無駄ですね。

482:デフォルトの名無しさん
10/03/28 21:19:33
マウスポインタがある領域に入ったってイベントが欲しいわけでしょ
正しい実装じゃん
力技じゃない

483:デフォルトの名無しさん
10/03/28 21:21:40
タイマで処理するにしてもそれぐらいカスみたいなコスト

484:478
10/03/28 21:21:56
>>482
なるほど、考えを改めます。
ありがとうございました。

485:デフォルトの名無しさん
10/03/29 21:53:38
Blendでコードビハインドべったりで書いていくと簡単だったりするんだよなwpf
昔のVBと大して変わんないってくらい

486:デフォルトの名無しさん
10/03/30 08:02:13
macで使われてるGUIのボタンってなんっていいましたっけ・・・
あれを再現は可能ですか?

487:デフォルトの名無しさん
10/03/30 09:03:01
Dockか?
そりゃWPFはまさにああいうことをやるためのフレームワークだから

488:デフォルトの名無しさん
10/03/30 10:29:01
aquaのことじゃないの

489:デフォルトの名無しさん
10/03/30 13:00:22
ボタンの見栄えを自由にするなんてのはお手のもんでしょうな。
別にFormで出来なかったわけでもないけど。

490:デフォルトの名無しさん
10/03/30 21:11:48
WPF Themesにいろいろ綺麗なテーマがあるよ
Macの真似みたいな貧乏臭いことはやめてくれ

491:デフォルトの名無しさん
10/03/31 22:27:14
WPFで3Dグラフィックの仕事をやることになったんだが、皆目見当がつきません。
何か良い本は無いでしょうか。

492:デフォルトの名無しさん
10/03/31 22:46:11
まずは、Essential WPF。後は英語でググレ。

493:デフォルトの名無しさん
10/03/31 23:18:18
そんなもん読んでるに決まってるだろ。
他に無いでしょうか。

494:デフォルトの名無しさん
10/03/31 23:28:13
だれか何かを挙げる→そんなもん読んでるに決まってるだろ→
だれか何かを挙げる→そんなもん読んでるに決まってるだろ→
だれか何かを挙げる→そんなもん読んでるに決まってるだろ→(ry

まぁ、挙げるだけ無駄ってことだなw

495:デフォルトの名無しさん
10/03/31 23:45:33
返答してる人が同一人物である保証すらないしな。

496:デフォルトの名無しさん
10/03/31 23:51:02
idほしいお・・・

497:デフォルトの名無しさん
10/04/01 00:12:50
3D PROGRAMMING FOR WINDOWS

498:デフォルトの名無しさん
10/04/01 07:31:59
WPF 3Dプログラミング―誰でも簡単に3Dゲームやツールが作れる最新技術!

499:デフォルトの名無しさん
10/04/01 11:24:40
WPFによる3Dプログラミングの極意 (民明書房)

500:デフォルトの名無しさん
10/04/01 14:45:12
質問かいてたら答えが見つかったけどもったいないのカキコ

HTMLの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>

括弧がなぜ必要なのか教えてください。
ひょっとして拡張部分のそういう仕様ですか?

仕様でした><

501:デフォルトの名無しさん
10/04/01 21:45:22
GJ

502:デフォルトの名無しさん
10/04/01 22:58:08
Canvas canvas1
Ellipse elli1, elli2

ああるとして

canvas1.Children.Add(elli1);
canvas1.Children.Add(elli2);

とした後に

elli2 だけ Clear することってどうやれば良いんですか?

503:デフォルトの名無しさん
10/04/01 23:01:24
Remove

504:デフォルトの名無しさん
10/04/01 23:07:15
>>503
あ・・・ありがとう。
なんで見つからなかったんだろう。

505:デフォルトの名無しさん
10/04/02 04:26:05
>>491
Practical WPF Graphics Programming
この本なんかはどう?


506:デフォルトの名無しさん
10/04/02 07:52:30
>505
URLリンク(www.free-ebooks-download.org)

なんかあったがなんかいろいろばら撒く気満載泣きガス・・・
とりあえずダウンロードはできた。中身もあってるっぽいが・・・

507:デフォルトの名無しさん
10/04/02 09:09:51
最近Freeに影響されたかバラ撒くとこ増えたねえ。
それとも欧米では結構昔からこういうことするとこ多かったのかな?

508:デフォルトの名無しさん
10/04/02 09:55:54
ローマ字変数名しか使えない俺には無用

509:デフォルトの名無しさん
10/04/02 10:16:55
少なくともWPFに関する本はほぼすべてネットで拾えてしまうからなあ。
実に由々しき事態だ。(棒)

510:デフォルトの名無しさん
10/04/02 10:19:12
ちょっと目を通してみたけどWPFの本というよりグラフィックスの基礎の本だなあ
普通は可視化にOpenGLとか使うところをたまたまWPF使ってるだけな感じ

511:デフォルトの名無しさん
10/04/04 22:14:21
URLリンク(www.atmarkit.co.jp)
こちらを参考にしてWPFにExcelファイルを読み込まれるまではできたのですが、
これをWPFコントロールにそのまま表示させることって出来ないのでしょうか。

セルの1つひとつの情報を取ることはできるので
Gridをひいてセルを写すことは可能なのですが、
Excelの表をそのままWPFのwindowに表示させたいのです。

それとも、セルから全部コピーしないとダメなのでしょうか?

512:デフォルトの名無しさん
10/04/05 01:03:51
>WPFにExcelファイルを読み込まれる
たぶんもうちょっと理解してから弄った方がいい(というかformsで構築したほうがいいだろ)
こういう方法はあるみたい
URLリンク(social.msdn.microsoft.com)

513:デフォルトの名無しさん
10/04/05 02:52:05
>>512
ありがとうございます。
その質問+解答も見ていましたが
やはりその方法しかないみたいですね。
まずはWinFormで作ってみてから
WPFに応用してみます。

※Animationを使いたいので、WPFのが良いんです。

514:デフォルトの名無しさん
10/04/06 00:11:32
BeginAnimationって、
「さーアニメってこい!」
ってゴーサイン出すだけじゃん?

FromからToまで行き終わったときに
何か処理して欲しい場合って
どうすれば良いの?

FinishedAnimationとかあれば良いのに。

515:デフォルトの名無しさん
10/04/07 13:49:44
completedイベントなかったっけ

516:デフォルトの名無しさん
10/04/08 00:05:35
もうexpression4が出るのか・・・まあ出るわな
なにが変わるのかわかる資料が全然見当たんないなー

517:デフォルトの名無しさん
10/04/09 01:02:24
まだ出ないんじゃない?

518:デフォルトの名無しさん
10/04/09 01:05:14
無料あぷでは確定です

519:デフォルトの名無しさん
10/04/10 00:12:37
Focus()して成功する条件って何でしょう?
キーボードフォーカスをそのエレメントに移動できなければfalse、ってのは分かるのですが
そもそもキーボードフォーカスを移動できる条件って何でしょうか?

520:デフォルトの名無しさん
10/04/10 06:20:25
ウインドウの初期化が終わる前にコントロール関連のメソッドを呼ぶなと

521:514
10/04/11 15:59:49
>>515
おそくなりましたが
ありがとうございました。

522:デフォルトの名無しさん
10/04/11 21:49:49
>>520
CheckBoxのIsCheckedをTrueにしてると、初期化中にチェックイベントが実行されたりするあれ?

523:デフォルトの名無しさん
10/04/13 17:17:58
Expression BlendとかWPFで作られたソフトが起動しなくなった

524:デフォルトの名無しさん
10/04/13 17:33:22
環境壊れてるんじゃないか

525:デフォルトの名無しさん
10/04/13 21:48:30
趣味でWPFで3Dモデリングツールを作ろうとしてるんだけど、OpenGLとかDirectXでやった方が幸せかな?
ざっくりした質問で悪いけど、皆さんWPFの3Dって総合的にどう評価してます?

526:デフォルトの名無しさん
10/04/14 05:48:41
>>525
「wpf direct3d 制約」でググるいいよ。
正直、WPFの3Dっておまけ機能だと思ってるけど。

527:デフォルトの名無しさん
10/04/14 10:17:47
UIはWPFで3DビューはD3DImage+MDX/SlimDXくらいが現実的なんじゃね

528:デフォルトの名無しさん
10/04/14 13:52:27
URLリンク(msdn.microsoft.com)
XAMLなんて誰が考えたんだ?
こんなソース読む気も書く気もしねー

529:デフォルトの名無しさん
10/04/14 13:58:43
めちゃめちゃ頭のいい人
ただ、凡人の限界を知らなかったらしい

530:デフォルトの名無しさん
10/04/14 14:02:34
100円の和菓子1つを10万円の箱に入れてるようなもんだな

531:デフォルトの名無しさん
10/04/14 15:10:29
ツールの使用を前提にしてるよなぁ~

532:デフォルトの名無しさん
10/04/14 15:45:31
ワロタ
Xamlコードを出力するツールをまず自作しなきゃな。
blend?高いしイラネ

533:デフォルトの名無しさん
10/04/14 17:04:29
コードで計算してジオメトリ作ってxamlで書き出すんだよ?
まあなんとかいうモデリングソフトで書いてxaml出力してもいいけどね

534:デフォルトの名無しさん
10/04/14 18:41:57
>>528
> 2 次元から抜け出そう

心にぐさりと来ました

535:デフォルトの名無しさん
10/04/14 19:02:31
まだ入り込めてもいないのに

536:デフォルトの名無しさん
10/04/14 20:04:03
まあ普通はツールで出力するだろ
そのためのXMLだ

537:デフォルトの名無しさん
10/04/14 20:15:00
WPFの3Dって、モデリングツール(DirectX)で画像処理ー>XAMLフォーマットで出力という使い方を想定してんじゃねえの?
わざわざ手かせ足かせを嵌めて走る意味はなかろう。

538:デフォルトの名無しさん
10/04/14 20:59:43
Visual Studio 2010 + WPF4.0
を使っている方は少ないと思いますが、
「これが原因じゃない?」程度でも構いませんので
何か思い当たることがありましたら、お願いします。

■質問内容
以下の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 に対して適用したい
のですが、どのようにしたら良いかアイデアが思いつく方、お願いいたします。

539:デフォルトの名無しさん
10/04/14 23:46:11
MouseMoveとか他のイベント捕まえてみたら?

540:デフォルトの名無しさん
10/04/15 00:01:33
MouseMoveですか?
ManipulationではなくMouseMoveで
操作しろということでしょうか?

541:デフォルトの名無しさん
10/04/15 07:51:03
WPFってなんでこんなもっさりしてんの?

Direct3Dとか少ししか触ってないので見当違いなこと言ってたらすまん。

1.UIElementツリー
2.Direct3DのVertexBufferとかMesh
3.実際の出力

WPFは主に1の画面要素自体とイベントなどのハンドリング、状態通知でごにょごにょとなどとそれらを2に反映させるものだと思ってるんだが、
1自体が重いのか1から2への変換などが重いのか?
2,3とかは高速なんだろうし、現状では削りようのないところなんだろうけれど。

たとえば画面のボタンの背景色を変えた場合は内部でどんな動作になるんざんしょ。

542:デフォルトの名無しさん
10/04/15 08:03:57
普通に1だろ
ちなみに1と2の間にはもう一つ層がある
Direct3DをGUI向けにラップしたネイティブコードのライブラリを使ってる

543:デフォルトの名無しさん
10/04/15 10:08:43
もっさりっていうならまずスペック更科よ

544:デフォルトの名無しさん
10/04/15 21:06:10
ゲーム作成にWPFを使いたいんですが、文献が少なくて困ってます。
オススメの文献とかありませんか?

545:デフォルトの名無しさん
10/04/15 21:33:45
ゲームってジャンルくらい書きなよ

546:デフォルトの名無しさん
10/04/15 21:40:07
WPFの文献だと日本語のはエッセンシャルWPFぐらいしかないんだっけかね?


547:デフォルトの名無しさん
10/04/15 21:40:59
失礼しました。2Dで、ベクター画像を用いた格闘ゲームです。
ですが、格闘ゲームに限らず、
WPFでのゲームプログラミングの情報自体が見つけられなかったので、
ほかのジャンルの情報でも充分助かります。

548:デフォルトの名無しさん
10/04/15 21:47:43
ギャルゲーくらいですよこれ。
ギャルゲーでビデオカード要求とかあり得ないんでギャルゲーでは主流になってもいいと思います。

549:デフォルトの名無しさん
10/04/15 21:50:22
WPFは基本的にビデオカード要求だけど

550:デフォルトの名無しさん
10/04/15 21:58:28
>>547
「エッセンシャル WPF」
「XAML プログラミング WPFアプリケーションの概要と開発」
このスレではこの2冊がそこそこ評判が良かった。
もし英語に抵抗が無ければ出版数が多い洋書で探した方が良いかと。
個人的には書籍じゃないけどMSDNのサンプルが一番役に立ったよ。

WPFでゲームを作ってる人は少ないだろうなあ。
DirectXかXNAを使った方が良いと思うんだけど。

551:デフォルトの名無しさん
10/04/15 22:29:22
google booksでwpf検索してみたら
だいたい用は足りると思う

552:デフォルトの名無しさん
10/04/16 00:11:31
ボタンの中に画像を置く
ということをXMALではなくC#のコードから実現したいです。

ネタとしては、ここの質問のC#版です。
質問内容を理解しないでXAMLの話をする回答者が多いみたいですが。
URLリンク(bbs.wankuma.com)

プログラム内で動的にButtonを配置したいため、
XAMLではなくC#から生成したいのです。
画像の情報も動的に取得するので、画像もC#で生成したいです。
(実際には、画像のパスを動的に取得し、そのパスからImageを生成)

ググってもXAMLの話ばかりです。よろしくお願いします。

553:デフォルトの名無しさん
10/04/16 00:23:24
Imageを持ったButtonのUserControlをXAMLで書いておいて、コード内で生成

554:デフォルトの名無しさん
10/04/16 01:45:52
>ということをXMALではなくC#のコードから実現したいです。
そうですか
>質問内容を理解しないでXAMLの話をする回答者が多いみたいですが。
そうですか
>XAMLではなくC#から生成したいのです。
そうですか
>画像の情報も動的に取得するので、画像もC#で生成したいです。
そうですか
>ググってもXAMLの話ばかりです。よろしくお願いします。
なにをよろしくですか

555:デフォルトの名無しさん
10/04/16 01:48:33
ちなみに
38526の回答以外のなにものでもないよ
質問内容を理解しないんじゃなくて、回答読んでも理解できない脳みそを恨め

556:デフォルトの名無しさん
10/04/16 02:02:05
>>554
中身の無いレスだな
お前みたいなのは来なくて良いよ

557:デフォルトの名無しさん
10/04/16 02:11:34
>>556
これがどれだけ程度の低い質問かわかんないってことは本人だろうな・・・

558:552
10/04/16 02:19:45
>>553
ありがとうございます。
UserControlなるものを使ったことが無いので
早速調べてみます。

>>554-555
38526がコードの話をしていることは分かっています。
>XAMLの話をする回答者が多いみたいですが。
と書いているのは、それを示しています。
38526の回等と>>553氏のレスが同値だと分かるレスを
していただき、ありがとうございます。

>>556
555のレスから得たことがありますので大丈夫です。

>>557
552は私です。
UserControlの話など、もっと汎用的な調べ方をすれば
沢山情報が得られるのかもしれませんが、具体的な事例が
あまりないというのは、それだけ壊滅的なほどに初歩的ということなのですね。


もっと勉強します。ありがとうございました。

559:デフォルトの名無しさん
10/04/16 02:20:54
>>557
は?程度の低さは関係ないだろ
どれだけ馬鹿なんだよ

560:デフォルトの名無しさん
10/04/16 02:21:32
>>558
違うよ
ButtonオブジェクトのContentプロパティにImageオブジェクト突っ込めばいいだけ

561:デフォルトの名無しさん
10/04/16 02:22:47
>>559
はいはい
お前が気の済むように回答してやれよ

562:デフォルトの名無しさん
10/04/16 02:29:42
>>561
>はいはい
え?マジで分かってないの?
こりゃ重症だな。関わらないでおくよ。

>お前が気の済むように回答してやれよ
うわーまいったねこりゃ。
既に解答が出ているのに更に回答しろと?

別の機会に謹んで回答させていただきますw

563:デフォルトの名無しさん
10/04/16 02:32:36
>>562
中身の無いレスだな
以下略

564:558
10/04/16 02:55:46
>>560
お恥ずかしいです。ありがとうございます。

質問をする前にスレを見返していましたが、
人を馬鹿にするレスしかしない人が多い中、
あきれずに回答していただきありがとうございました。

565:デフォルトの名無しさん
10/04/16 06:49:02
横着せずにWPF入門書を最初から読んでいけばコントロールの追加方法なんて最初にかいてある。
なんで未知の言語なのにチュートリアルすっとばそうとするかな。

別にすっとばしてもいいけどひとりで悩んでくれよ。ひとのせいにすんな。

566:デフォルトの名無しさん
10/04/16 07:26:49
これだからIDの無い板は。

567:デフォルトの名無しさん
10/04/16 07:51:10
>>565
おおむね同意だが

>ひとのせいにすんな。
これってどこを見て感じたことなんだ?
なぜこう感じたのか、俺には全く分からんのだが。


568:デフォルトの名無しさん
10/04/16 11:50:17
blend4のベータ出たな
URLリンク(www.microsoft.com)
めぼしい機能追加はピクセルシェーダくらいじゃないのかな
あとはギャラリーで公開してくれれば済むような追加しかないような

569:デフォルトの名無しさん
10/04/16 11:59:39
ああでも3->4のアップグレードは全員無料なのか

570:デフォルトの名無しさん
10/04/16 12:02:40
スレ伸びてるから WinSDK 7.1 でも出たのかと思ったら・・・

>>552
>質問内容を理解しないでXAMLの話をする回答者が多いみたいですが。

XAML ←→ C#コード なんか、ボタンやイメージどうこう以前に WPF の基礎だから。
自分の無知を棚上げに「理解しないで」などと回答者をアホ扱いするから荒れる訳。
「M女史の遺したもの」を一回は読んでおくといいよ。

public Window1()
{
  InitializeComponent();
  this.Content = new Button { Content = new Image { Source = new BitmapImage(new Uri("c:\\image\\test.bmp", UriKind.Absolute)) } };
}


571:デフォルトの名無しさん
10/04/16 14:07:51
「.netなんて池沼にもできる障碍者用言語だろ余裕だよ。入門書?そんなもん小学生にでも読ませとけ」
→「はー?なんでうごかねーんだよこの欠陥言語。おいくずどもどうなってるか説明しろ!」

ようするにこういう思考だろ。
「なんでおれがこんな低レベル言語にてこずらなきゃならないんだよ」みたいな
雰囲気ぷんぷんさせながら質問するとか鼻で笑うわ

572:デフォルトの名無しさん
10/04/16 22:21:44
> ボタンの中に画像を置く
> ということをXMALではなくC#のコードから実現したいです。

キチ○イwww

573:デフォルトの名無しさん
10/04/17 00:01:45
>>570
へーこんな書き方できるんだ
はじめて知った。

>>571
お前みたいに"決め付ける"人って
大抵・・・

574:デフォルトの名無しさん
10/04/18 09:50:13
WPFで「コードから動的にボタンを配置したい」ということ自体めったに無いよね
WinFormsでそうやってたようなことはアイテムテンプレート使えばだいたいXAMLだけで完結する

575:デフォルトの名無しさん
10/04/18 13:18:15
アイテムテンプレートでできるけどある条件の時はこっちとかするのも含めてコードで書いちゃった方が好きかなー


576:デフォルトの名無しさん
10/04/18 14:52:46
XAMLって「データ言語」っていうんだっけ。
プロパティの指定はXAMLコードから判るが、メンバの設定は何度読んでも混乱する。

577:デフォルトの名無しさん
10/04/19 22:05:41
Rectangleを20個ほど一気にAnimationさせると
Core2 E7400 + GeForce9400GT でも若干ガクガクするんだけど
WPFってそんなもんなの?
それとも、うまい書き方があるの?

RectangleはXAMLで配置して、AnimationはC#内で書いてるんだけど。

578:デフォルトの名無しさん
10/04/19 22:18:56
描画だけでよければDrawingVisual使ってみたら
間違ってもDrawingContextは使わないように

579:577
10/04/19 23:12:18
>>578
ありがとう、調べてみた。
これってアニメーションできないように思うんだけど
そんなことないの?
イベントとかは使わないから描画だけといえばそうなんだけど。

20個(できればそれ以上)のRectangle、長い長方形をぐるぐる回したいんだよね。
風車がたくさん立っているイメージ。

580:デフォルトの名無しさん
10/04/20 00:46:03
オブジェクトの重なりが多いほど重くなる

581:デフォルトの名無しさん
10/04/20 00:47:39
CPUでピクセルの合成してるんだっけ?
そういうのはGPUが得意なんだがな・・・

582:デフォルトの名無しさん
10/04/20 00:49:14
WPFのウインドウ内部は全部directxで書いてるって何回書いたらわかるんだよ
けちらずエッセンシャル買え

583:デフォルトの名無しさん
10/04/20 01:35:21
>>579
その程度のアニメーションなら普通にStoryboardじゃいかんの?

584:デフォルトの名無しさん
10/04/20 12:27:39
描画じゃなくてレイアウトとか入力とか高次の部分で引っかかってるんだろ
RenderTransform使ってみるとか

585:デフォルトの名無しさん
10/04/21 11:11:04
みんなRelayCommandとDelegateCommandのどちらを使ってる?

586:デフォルトの名無しさん
10/04/21 12:11:56
使うも何も両方ともただのサンプルでしょ
必要に応じて自分で作るんだよ

587:デフォルトの名無しさん
10/04/21 12:19:10
他人に説明するとき、アレと一緒で済むから楽じゃん。

588:デフォルトの名無しさん
10/04/21 15:06:02
URLリンク(www.codeproject.com)
面白い比較の記事を見つけた。
こういうのを探していたんだ。
終わりの方の比較のところね。

589:デフォルトの名無しさん
10/04/21 21:53:09
というか RelayCommand でも DelegateCommand でもどっちでもいいけど
標準で用意しときゃいいのにとはおもったわ。

590:デフォルトの名無しさん
10/04/21 22:00:52
だってMとVMはWPFと関係ないじゃん

591:デフォルトの名無しさん
10/04/21 22:26:42
依存プロパティではCLRラッパーが使えて、添付プロパティでは
使えないのはどうして?
MSDNでは「WPF の添付プロパティには、get および set のアクセスを容易にするための
標準的な CLR "ラッパー" メソッドはありません。
これは、添付プロパティが設定されたインスタンスの CLR 名前空間に、
その添付プロパティが属しているとは限らないからです。」
って書いてあったけど。つまり・・・どういうことだってばよ

592:デフォルトの名無しさん
10/04/21 22:33:09
自分自身のプロパティじゃなくて他のオブジェクトに設定するプロパティだから
プロパティ構文じゃ書けないよってこと

593:デフォルトの名無しさん
10/04/21 22:33:59
たとえばCanvasのLeft添付プロパティはCavnasクラスに定義されたプロパティだけど
そのプロパティの値を実際に持つのはCanvasの中に追加する他のクラスのインスタンスだろ
CLRプロパティではプロパティが定義されてるクラスとその値を持つインスタンスのクラスは必ず一致するけど
添付プロパティでは一致しないからCLRプロパティでは表現できない

594:デフォルトの名無しさん
10/04/21 22:39:53
でも、アクセスする構文ってCanvas.Leftみたいに[クラス名].[プロパティ名]でしょ。
ラッパーを静的にする必要はあるけど、コードからでも普通に使えそうだけどなあ。

595:デフォルトの名無しさん
10/04/21 22:42:44
だからCanvas.SetLeftメソッドがあるだろ

596:デフォルトの名無しさん
10/04/21 22:44:03
「どのオブジェクトの」Canvas.Leftなのよ?
ということになって結局Canvas.GetLeft(obj)で十全だろ、分かりやすいし

597:デフォルトの名無しさん
10/04/21 22:48:49
設定を行うインスタンスを知る必要がある(引数として送る)からラッパーでは出来ないってことか
なっとく

598:デフォルトの名無しさん
10/04/21 23:04:20
Obj.Canvas.Left とかならまだわかる

599:デフォルトの名無しさん
10/04/21 23:06:01
Obj[Canvas.Left]だな

600:デフォルトの名無しさん
10/04/21 23:15:27
DependencyObjectにthis[DependencyProperty]を定義すると
obj[Canvas.LeftProperty]にせざるを得ないからなぁ objectでしか扱えないし
それ以上は言語の方に手を入れなきゃなんなくなる

いや、dynamicでなんとかなる・・・か? しないで良いけど

601:デフォルトの名無しさん
10/04/21 23:20:15
WPF は結局ユーザーの要求するパフォーマンスに達しなかったね。

602:デフォルトの名無しさん
10/04/21 23:50:23
自分が使いこなせないからってひとも同じだと思う人って…

603:デフォルトの名無しさん
10/04/22 02:50:17
BlendとかXamlPadみたいにリアルタイムでXamlの内容を表示するのってどうやるの?

604:デフォルトの名無しさん
10/04/22 06:57:38
>>603
これがおのぞみのかな?

XamlPadを作ってみた。
URLリンク(pro.art55.jp)

605:デフォルトの名無しさん
10/04/22 07:42:46
>604
それリアルタイムでの編集内容反映は入ってないよね?


606:デフォルトの名無しさん
10/04/22 21:28:40
>>604
おー、意外にシンプルでびっくり。さんくす
>>605
更新タイミングは工夫次第でいけそう。

607:デフォルトの名無しさん
10/04/22 23:02:07
テキスト変更イベントのたんびにパースするとかね。


608:デフォルトの名無しさん
10/04/22 23:26:42
あるWindow window1 があって、
window1の中のある領域に X を配置して、
その X の中を右方向にアニメーションさせた場合、
X の右端がXの左端にくっついたように
ずっと X がループされてスライドするアニメーションって
どうやったらできますか?

ここで X とは、CanvasでもPageでも何でもよいので、
ボタンとかラジオボタンとかが配置できる領域のことです。

説明が難しいのですが、例えば window1 に電車を描き、
電車の窓から X (外の景色) を眺めているとし、外の景色が
ずっとスライドしていく感じです。

このとき、X に動的に「電柱」の絵を置いたら、ループ絵として
次に現れる X にも「電柱」が存在するように見せたいです。


609:デフォルトの名無しさん
10/04/22 23:36:59
はじっこにきたら座標もどせばいいだけじゃないの?

610:デフォルトの名無しさん
10/04/22 23:40:12
一番手抜きだと1枚の画像を座標変えて常に2回表示すればいいだけだろ

611:デフォルトの名無しさん
10/04/23 00:01:30
>>609
ありがとうございます。ですが、それだと絵が切れてしまいます。
窓の大きさが X と同じで、動かす絵が X の場合、
X を右にスライドさせると、Xの左側が空白になります。
X1 X2 と Xを並べて、X2がXの領域からはずれたら X1 の左に
配置するようにすれば実現できますが、そうすると X1 と X2 が
同じものになりません。X1に電柱が追加されたらX2にも追加、となると
処理が重たくなりますので・・・。

>>610
ありがとうございます。
そちらの方法で、チカチカさせない方法があるのでしょうか??

612:デフォルトの名無しさん
10/04/23 00:08:20
>>611
まあ>>610の方法はゲームの一般的なループの作り方なだけで
そのまんまはだめかもしれないけどねw
なるべく再利用した方がいいかと思って>>610として書いたけど
ちらついたりするならとりあえずは1つのファイルを内部で2つ同じものを作って
とかはだめ?

613:デフォルトの名無しさん
10/04/23 00:11:20
それでもうまくいかないならとりあえずは読み込む画像その物を
同じ物を2枚並べた横長で作っておいて座標で調整するか

614:デフォルトの名無しさん
10/04/23 00:13:10
expressionの4にMVVMのプロジェクトテンプレートが入るみたいね
これが標準のフレームワークってことになんのかしら

615:デフォルトの名無しさん
10/04/23 00:14:55
>>612-613
やはり冗長な部分を作って
必要な部分だけ見せるのが手っ取り早いみたいですね。
なるべくなら再利用したいのですが、ひとまず↑でやってみます。

では、失礼します。

616:デフォルトの名無しさん
10/04/23 00:25:33
>>615
画像をTile指定で表示してやれば自動的に繰り返しになる。
あとはViewportを動かしてやればいい。
URLリンク(www7a.biglobe.ne.jp)


617:デフォルトの名無しさん
10/04/23 00:31:51
IEはソース表示が出来ないようなのでXAMLのソースも張っとく。
URLリンク(codepad.org)


618:デフォルトの名無しさん
10/04/23 00:43:03
>>616-617
おぉ、このようなものもあるのですね。
寝る前に見て良かったです。

ざざっと調べてみたのですが、こちらの方法では
画像を複製表示することはできるようですが、
Buttonなどが配置されたPage(を配置したFrameなど)を
複製表示させることはできないみたいですね。

(調べ方が甘かったらすみません)

教えていただいた TileMode で絵を複製して、
Buttonなどは自分で複数配置する方法も検討してみます。

619:618
10/04/23 00:55:24
度々書き込み失礼します。

TileMode から色々と調べてみましたが、
Canvas Neme="canvas1"
にボタンなどを配置し、

<Rectangle ... >
 <Rectangle.Fill>
  <VirualBrush Visual={Binling element=canvas1}" />
 </Rectangle.Fill>
</Rectangle>

とすると、一応 Button なども複製されますね。
しかし(当然ですが)複製された絵の Button は操作できませんね。
残念です。

620:デフォルトの名無しさん
10/04/23 01:19:32
スライドしてる状態でボタンなどを操作する必要も無いだろうから、
動いてないときは普通に表示して、
スライド中だけVirtualBrushに入れ替えればいいんじゃない。

621:デフォルトの名無しさん
10/04/23 01:36:50
スライドといってもゆっくりのものでして
移動中でもクリックに反応して欲しいんです。

622:デフォルトの名無しさん
10/04/23 02:09:47
その手のは一枚絵としてスクロールさせるというよりも同サイズでスライスした要素みたいに考えて
クリッピングと組み合わせて実現するのが常套じゃないのかな

623:デフォルトの名無しさん
10/04/23 04:11:30
プログラムなんてプリミティブなアイデアの集合体なんだから
自分ですこしは考えなよ

624:デフォルトの名無しさん
10/04/23 06:47:11
>>623
そういうことは2ch言ってもしかたないと思うんだぜ

625:デフォルトの名無しさん
10/04/23 07:47:11
>>623
>>619では「考えている」認定されないのか。
2chって厳しいインターネットなんだなw

626:デフォルトの名無しさん
10/04/23 14:20:14
二度手間でもエレガントじゃなくても冗長でも、数学的な問題じゃない限り
自分の望むことをコードにすることはできるだろう、諦める=考えてない、ってことさ

627:デフォルトの名無しさん
10/04/23 18:38:39
richtextboxで行間を指定する方法はない?
LineHightやMarginを試してみても変わらなかった

628:デフォルトの名無しさん
10/04/23 18:39:55
nyuryuが言っていたが、WPFでもすべての部分にDirectXを使っているわけではないらしい。

629:デフォルトの名無しさん
10/04/23 18:49:52
>>627
WPFじゃなくてWinFormのでいいんだよな?
LineHeightってどのクラスのプロパティ?
行間ってのは段落間じゃない行間のことでOK?

まあEM_SETPARAFORMATとPARAFORMAT2使うことになると思う

>>628
にゅりゅ ってエロい響きだな

630:デフォルトの名無しさん
10/04/23 19:13:55
>627
WPFでフォントコントロールったら、
FormattedText クラスじゃないんか?

URLリンク(msdn.microsoft.com)

631:629
10/04/23 19:16:34
あ、ここWPFスレだった
C#スレと勘違いしてた、ごめん

632:デフォルトの名無しさん
10/04/23 19:22:45
FlowDocument全体の行間ならFlowDocument.LineHeightで問題ないと思うけど

633:デフォルトの名無しさん
10/04/23 22:08:51
>>627
WPFの方

634:デフォルトの名無しさん
10/04/24 12:07:11
すまん。
自己解決した。
トークンごとに読み取ってそのトークンをパラグラフを追加するときに\r\nを無視しないのが原因だったらしい。
xamlを調べて初めて原因が分かった
間違い
<flowdocument>
 <paragarh>aaaa<run>(見えないが\r)</run><run>(見えないが\n)</run></paragrah>
</flowdoument>
正しくは
<flowdocument>
 <paragarh><run>aaaa</run></paragrah>
</flowdoument>


635:デフォルトの名無しさん
10/04/24 14:56:26
Paragraph p = richtextbox.CaretPostion.Paragraph;
TextRange range = new TextRange(p.ContentStart, p.ContentEnd);
this.para = new Paragraph();
this.para.Margin = new Thickness(0);
this.Spilitter.Parse(range.Text);
this.doc.Blocks.InsertBefore(p, this.para);
this.doc.Blocks.Remove(p);
パラグラフの置き換えを行うとキャレットがパラグラフの一番最後に移動してしまう。これを防ぐ方法はない?あらかじめCaretPostionを覚えておいて、置き換えた後で戻してもダメだった。


636:デフォルトの名無しさん
10/04/24 16:15:42
>>635
var curP = richTextBox.CaretPosition.Paragraph;
var offset = curP.ContentStart.GetOffsetToPosition(richTextBox.CaretPosition);
var newP = new Paragraph();
newP.Inlines.Add("New Paragraph");
richTextBox.Document.Blocks.InsertBefore(curP, newP);
richTextBox.Document.Blocks.Remove(curP);
richTextBox.CaretPosition = newP.ContentStart.GetPositionAtOffset(offset) ?? newP.ContentEnd;
これじゃダメなん?

637:デフォルトの名無しさん
10/04/24 21:42:03
>>636
それだとだめだ。
aaa
(aaaの先頭でzを入力)
zaaa
(連続で入力すると、zazaaになってしまう)

なんでWPFってこんなに面倒なの?
文字単位で選択することもできないし、キャレットを文字単位で動かすことすらできない。
開発者は馬鹿なの?

638:デフォルトの名無しさん
10/04/24 22:10:32
>>637
何がしたいのか分からないんだけど。
文字単位で選択するなら:
richTextBox.Selection.Select(richTextBox.CaretPosition, richTextBox.CaretPosition.GetPositionAtOffset(10));
キャレットを次の文字に移動するなら:
richTextBox.CaretPosition = richTextBox.CaretPosition.GetNextInsertionPosition(LogicalDirection.Forward);

TextPointer クラスと RichTextBox クラスについて、もうちょっと調べたら?

639:デフォルトの名無しさん
10/04/24 22:33:53
>>638
目がシパシパしたwww

640:デフォルトの名無しさん
10/04/25 02:37:57
>>638
パラグラフが
aaa
となっているときに
bbb
aaa
とすると、aaaを削除するとキャレットがaaaの先頭にあるにもかかわらず、bbbの後ろに移動してしまうのをどうにかして防ぎたい。
TextPointerについても調べたんだが、画面に表示されている文字単位で位置を取得するメソッドはなぜかなかった。

641:デフォルトの名無しさん
10/04/25 09:54:47
>>640
>aaaを削除すると

>>635
this.doc.Blocks.Remove(p);に当たるのかな
言ってることがあんまよくわからないけど、空のパラグラフを置いといてその先頭にキャレット置くというのがやりたいんじゃないの?
ソースはそうなってないだろ

642:デフォルトの名無しさん
10/04/25 10:24:40
>>641
>言ってることがあんまよくわからないけど、空のパラグラフを置いといてその先頭にキャレット置くというのがやりたいんじゃないの?
それじゃなくて、パラグラフを置き換えてもキャレットの位置をそのまま保つということがやりたい

643:デフォルトの名無しさん
10/04/25 23:47:54
ScrollViewerのマウスホイールによるスクロールを無効化する方法はありますか?

644:デフォルトの名無しさん
10/04/26 00:03:42
PreviewMouseWheelでHandledしちゃうとか

645:デフォルトの名無しさん
10/04/26 00:52:19
>>644
e.Handle = trueでうまくいきました
ありがとうございます

646:デフォルトの名無しさん
10/04/26 03:26:57
こんな感じでボタンを並べるにはどうすればいいんでしょうか?
URLリンク(uproda.2ch-library.com)

平行四辺形とかでしたらなんとかなるんですが・・・

647:デフォルトの名無しさん
10/04/26 04:25:39
表示部分にしかあたり判定がないんだから同じpanelに全部かさねて表示だけかえればいいじゃない
そんな形なら標準ボタンを使うわけでもないんでしょ

648:デフォルトの名無しさん
10/04/26 06:27:53
URLリンク(ufcpp.net)
傾斜とかもできるので上辺もしくは下辺を短くするとか
できるかなあと思ったんですが無理ですかね?

649:デフォルトの名無しさん
10/04/26 07:04:59
Expression Blend で簡単に星形のボタンとか作れるみたいだね。

650:デフォルトの名無しさん
10/04/26 07:09:59
ジオメトリの作り方がわからないから四角の変形で作りたいっていうなら
アフィン変換使いなよ自分で計算してな

651:デフォルトの名無しさん
10/04/26 08:48:31
Blend使えればベストだけどボタンぐらいならXAMLだけでなんとかなる。
ContorolTemplateを書けばいいだけでサンプルも結構転がってるから。
あとエッセンシャルWPF読んどけ

652:デフォルトの名無しさん
10/04/26 09:41:08
>>648
それは線形変換で表現できないから無理
高校数学C参照

653:デフォルトの名無しさん
10/04/26 13:08:53
文字単位で選択するメソッドがないので作ってみた。だが、どうも、遅いような気がする。これより早い方法があったら教えてほしい。
TextPointer getPostionAtCharacters(int offset)
{
for (int i = offset; this.Document.ContentStart.GetPositionAtOffset(i) != this.Document.ContentEnd; i++)
{
TextRange range = new TextRange(this.Document.ContentStart, this.Document.ContentStart.GetPositionAtOffset(i));
if (range.Text.Length == offset)
return range.End;
}
return null;
}


654:デフォルトの名無しさん
10/04/26 15:05:53
>>649>>650>>651
ありがとうございます。

しかしここまでGUIをいろいろ変えやすいとなるとデザインセンスないと
きついですね・・・

655:デフォルトの名無しさん
10/04/26 18:47:52
宇宙仮面のHP
エラーでまくり

656:デフォルトの名無しさん
10/04/26 19:03:56
RadioButtonをC#からCheckする方法ありますか?

657:デフォルトの名無しさん
10/04/26 19:07:39
あるよ

658:デフォルトの名無しさん
10/04/26 20:20:09
>>656
XAML側でコントロールに名前(Name="hoge")とかやれば
C#側から従来のWinFormのようにいじり放題

659:デフォルトの名無しさん
10/04/26 20:38:00
でも実際にはバインディングオブジェクトのプロパティの方を操作するよね

660:デフォルトの名無しさん
10/04/26 20:41:36
WPFは要素にName付けたら負け

661:デフォルトの名無しさん
10/04/26 20:46:27
それなんてみすりーど。

662:656
10/04/26 21:22:55
>>657-661
>>658さんの方法以外はどのように書けばいいんでしょうか?

663:デフォルトの名無しさん
10/04/26 21:38:08
気にせず名前付けたらいい

664:デフォルトの名無しさん
10/04/27 00:08:38
>>660
コードビハインド使ったら負け

665:デフォルトの名無しさん
10/04/27 00:53:01
真の勝者はXAMLを使わない

666:デフォルトの名無しさん
10/04/27 00:54:50
blend+コードビハインド
都会派はこれ


667:デフォルトの名無しさん
10/04/27 00:55:03
ソフトなんか他人に作らせるよね真の勝者なら。

668:デフォルトの名無しさん
10/04/27 00:57:01
こだわりのソフト作成なら至福だろ
作らされてるなら敗者

669:デフォルトの名無しさん
10/04/27 01:27:42
WPFの場合

プログラマーはバインド関連をマスター
デザイナーはXAML関連をマスター

そんなところですかね?

670:デフォルトの名無しさん
10/04/27 02:18:51
BeginAnimationのタイミングが異なっても、
アニメの動きのタイミングを同期させる方法ってありますか。

671:デフォルトの名無しさん
10/04/27 04:59:26
あるよ

672:デフォルトの名無しさん
10/04/27 08:28:30
INotifyPropertyChangedから依存プロパティへのバインドが機能したりしなかったりする
わけがわからない

673:デフォルトの名無しさん
10/04/27 09:00:47
>>669
正解じゃない。

プログラマーはバインド関連とXAML関連をマスター 。

674:デフォルトの名無しさん
10/04/27 22:14:00
XAML自体はマスターするには.NETプログラミングに習熟してないといけないからデザイナには酷
デザイナーはExpression BlendとXAMLの基礎事項をマスター

675:デフォルトの名無しさん
10/04/28 00:05:19
だな。MSはデザイナがXAMLを触らなくても大丈夫なようにツールを揃えた方が良いだろね。

676:デフォルトの名無しさん
10/04/28 00:08:47
WPFのバインディングは勉強すればするほど魅力的なんだよな
C#のコントロールにも一応項目あったけどここまで使えたっけ?

677:デフォルトの名無しさん
10/04/28 00:15:35
デザイナが実際には動かさないスタイルを自由奔放に作成して
上司は「デザイナの作った物がそのまま動く!素晴らしい!」と言い出して
結局はプログラマが地獄を見る。そういう代物だろ?

678:デフォルトの名無しさん
10/04/28 00:17:38
うーん
まあ前ほどは地獄をみないんじゃないかな
バインディングが強力なのでいい感じだよ

679:デフォルトの名無しさん
10/04/28 00:17:43
そこは誤解がないようにちゃんと主張しろよ

680:デフォルトの名無しさん
10/04/28 00:18:51
.NET 4.0 では NumericUpDown コントロールはサポートされますか?

681:デフォルトの名無しさん
10/04/28 00:19:17
デザイナーが作る範囲は所詮はwebページで言えばhtmlに毛の生えたことしかしてないからなあ

682:デフォルトの名無しさん
10/04/28 01:14:12
.NET4な。CLRは4.0。

683:デフォルトの名無しさん
10/04/28 01:48:52
blend上で動くなら何も心配しなくていいんじゃないの何かあるの?

684:デフォルトの名無しさん
10/04/28 02:07:24
URLリンク(www.atmarkit.co.jp)
上のサイトの中央付近から始まる「コレクション・オブジェクトへのバインド」のところを
動かそうとしたのですが下記のようなエラーとなり動きません。

>エラー 1 値 ' {Binding}' をプロパティ 'ItemsSource' に割り当てることができません。
>型 'IEnumerable' のプロパティ 'ItemsSource' は文字列として指定できません。

どのように対処すればよいのでしょうか?

685:デフォルトの名無しさん
10/04/28 02:14:01
>>682
.NET 4 と .NET 4.0 の違いを詳しく教えてください。
区別すべきなのでしょうか?

686:デフォルトの名無しさん
10/04/28 02:15:10
.NET 4.0 とかくことは意味があると思いますが、
.NET 4 と指摘していることについて詳しく教えてください

687:デフォルトの名無しさん
10/04/28 02:19:37
>>684
素直にXAMLで書けよ

688:684
10/04/28 02:28:18
自己解決しました。
ListBoxを使っているほかのサンプルと見比べたところ

<Grid x:Name="MainPanel" Loaded="MainPanel_Loaded">
<ListBox ItemsSource=" {Binding}"
DisplayMemberPath="Bmi"/>
</Grid>



<ListBox ItemsSource=" {Binding}"
{Binding}の前の半角スペースが原因で文字列として認識されていたようです。


>>687
質問に対する答えになってないと思いますが・・・

689:デフォルトの名無しさん
10/04/28 02:37:07
VS2005 / .NET2.0 しか許されない環境で、
MVVMを模倣して手動でモデリングしたクラスプログラミングをすることは効率化になりますか?

690:デフォルトの名無しさん
10/04/28 02:37:15
ガベージイン、ガベージアウト

691:デフォルトの名無しさん
10/04/28 02:43:57
>>685-686
「.NET Framework 4」が正式名称。
.NET 4.0と言っても問題なく通じるので実用上の問題はない。わざわざ指摘する程の事でもないだろ>>682

692:689
10/04/28 03:17:09
>>74が気になるなぁ。リフレクション調べてみるか…


693:デフォルトの名無しさん
10/04/28 03:21:53
>>692
目指す目標としてXAMLなどがあるんだし、それと同じ仕組みにすれば
MVVMも可能じゃないかな?

まあ自前であれこれするより本当はWPFにするべきなんだが

ところでなんでそんな古い環境にこだわらないといけないんだろうw

694:デフォルトの名無しさん
10/04/28 05:26:27
VとVMの疎結合さえ保てればとりあえずMVVMって言えるのかな?
・Viewを定義する「なにか」を設計する
 (WPFではXAML)
・「なにか」からViewを生成するライブラリを実装する
 (WPFではSystem.Presentationとかかな?)
・「なにか」と実行時バインドする方法も実装する
 (依存プロパティみたいな仕組み。ここでリフレクションががっつり登場)

マンドクセ・・・
XAMLの仕様はそのまま使って.net 2.0 WinFormsでもViewが構築できるライブラリ作れば
それなりに需要は・・・ないか

695:デフォルトの名無しさん
10/04/28 05:34:57
一番重要なのはMとVVMと間のデカップリングだと思うよ。

696:デフォルトの名無しさん
10/04/28 05:37:58
そういえば依存関係を切り離せるコンテナってあったよね?
あれは使えないの?

697:デフォルトの名無しさん
10/04/28 06:30:25
ざっくりいうとVMはVからのMに対するブリッジって認識だがよろし?

>693
ぶっちゃけマシン性能にもよるんだろうが未だにWPF遅くね?
頻繁な更新が必要なデイトレアプリみたいなもんとか向いてなさそうなんだが。

>694
そげんな感じのもん作ったお。未だに2000とかにも配慮しなきゃいけなくてな( ^ω^)・・・

698:デフォルトの名無しさん
10/04/28 06:42:25
DIコンテナは未だによくわからん・・・

699:デフォルトの名無しさん
10/04/28 07:39:00
>>693-697
thx.
2005なのは、そういう環境でWindowsXpとWindowsCEの開発レッスンを受けてますw
自分が2000使ってるのでその点も嬉しいかなw

700:デフォルトの名無しさん
10/04/28 10:36:39
>>696
CAL(Prism)なんかはUnityのDIコンテナ使ってるよ。

.NET4で追加されたMEFもかな、仕組みはDIコンテナっぽいが。

701:デフォルトの名無しさん
10/04/28 10:46:10
ブラウザアプリでエクセルを操作するプログラムが入っててエクセルオブジェクトバージョンが違ってる人がアドレス開いてアプリ操作したらどうなるの?

702:デフォルトの名無しさん
10/04/28 10:52:10
WPFが描画にGPUとCPUどっちを使ってるかどうすればわかるんですか?
自分のグラボがWPFに対応出来てるかしりたいんです

703:デフォルトの名無しさん
10/04/28 12:52:20
>>702
WPF のパフォーマンス プロファイリング ツール
URLリンク(msdn.microsoft.com)(VS.90).aspx

704:デフォルトの名無しさん
10/04/28 13:55:32
依存関係の向きがV→VM→Mとなってればいいだけのことで
VのコードビハインドでVとVMを手で結びつければバインディングはいらないよ
コマンドはVMのメソッドを呼び出せばいいだけ

705:デフォルトの名無しさん
10/04/28 14:11:36
MVVMの目的はVMを単体テストすることだよ
それが必要ないんだったらコードビハインドをVMとみなして
XAMLで自身のプロパティにバインドするだけでいい
それが本来WPFで想定されていたバインディングの使い方

706:デフォルトの名無しさん
10/04/28 14:12:00
C++ と XAML の組み合わせで使えないのはなんで?

707:デフォルトの名無しさん
10/04/28 14:22:27
WPFはマネージコード専用だから
C++/CLIで使えないのは単にMSにやる気がないから
WPFはアンマネージドな世界との相互運用がしづらいしものすごく高レベルなので
わざわざC++/CLIから使うというのはちょっと考えられない

708:デフォルトの名無しさん
10/04/28 14:27:11
>>703
WindowsSDKツールのV6.0A V6.1の両方ともWpfPerf アプリケーションが入ってません
どのSDKですか?

709:デフォルトの名無しさん
10/04/28 14:30:10
ブラウザアプリでファイルにアクセスできないと何も出来なくないですか
同一サーバー上のファイルにアクセスするにはどうすればいいんですか


710:デフォルトの名無しさん
10/04/28 15:39:52
>>709
下手に許すとローカルのファイルをいじり放題。その気になればスパイウェアも仕込み放題ということになってしまうから、それはできないことになってる

711:デフォルトの名無しさん
10/04/28 16:12:42
>635で質問したものだが、こういう風にすることでとりあえず解決した
URLリンク(ideone.com)


712:デフォルトの名無しさん
10/04/28 19:15:20
>>708
V6.0 か V7.0。
以前は単体でもダウンロードできたけど、今は出来ないみたい。
(URLリンク(windowsclient.net) の previous version of WpfPerf)。
SDK を入れるなら Win32 Development Tools だけ入れればいい。

713:デフォルトの名無しさん
10/04/28 20:57:54
XAML:<ListBox ItemsSource="Binding ."/>
結果:
B
i
n
d
i
n
g

.

あぁそうか…stringもIEnumerableだったな…  ってこんなんアリなのかw

714:デフォルトの名無しさん
10/04/28 23:35:19
ちょっとワロタw

715:デフォルトの名無しさん
10/04/29 11:29:33
>>712
できたありがとう
ハードウェアレンダー 1 になってた
サンプルサイト見てるとカクカクだから絶対CPUレンダーだと思ったのに・・・

716:デフォルトの名無しさん
10/04/29 17:32:32
Shazzam(WPF/Silverlight用のシェーダエディタ)良いね
シンプルだけどWPFやSilverlightのシェーダ書くのには十分
C#側のコードを自動生成してくれる
WPFの見本みたいなかっこいいインターフェイス

717:デフォルトの名無しさん
10/04/29 19:15:45
WPF入門者用のサイトいくつか教えてくれ

718:デフォルトの名無しさん
10/04/29 19:20:07
ゲームパッド使えるの?

719:デフォルトの名無しさん
10/04/29 19:25:12
>>718
XNA+WPFでいけ
URLリンク(sorceryforce.com)

720:デフォルトの名無しさん
10/04/29 19:28:45
>>717
ここだなあ
URLリンク(www.atmarkit.co.jp)

WinFormで動的にコントロール追加したりオーナードローとかやったことある人なら
それほど違和感なくやれると思うがこれからって人は2010のマウスでデザインできる
ってを利用した方がいいかもね~

721:デフォルトの名無しさん
10/04/29 22:40:11
XNAだとXBOX用コントローラしか使えない
DirectXは参照できたからそっちで攻めるしかないんじゃない

722:デフォルトの名無しさん
10/04/29 22:50:42
>>721
PS2パッドも使えるわ
適当なこと言うな

723:デフォルトの名無しさん
10/04/29 22:54:59
>>723
使えねえよ

724:723
10/04/29 22:57:13
>>722
つ、使えないと思います

725:デフォルトの名無しさん
10/04/29 22:58:27
訂正来てよかったぜ
どう突っ込んでいいか悩んだぜ

726:デフォルトの名無しさん
10/04/29 22:58:49
いやいや現に使ってるしw
なにいってんの?

727:デフォルトの名無しさん
10/04/29 23:01:09
もしかしたら古いコンバーター使っているんじゃないのか?
1年前に買った奴だと普通に使えたわ

728:デフォルトの名無しさん
10/04/29 23:40:58
>>726
そういうのもう良いから。

しかし DirectInput に未対応なのはなんでなんだろね。


729:デフォルトの名無しさん
10/04/29 23:45:29
XNA+DirectXならXBOXコン以外使える
WPF+XNAならXBOXコンしか使えない

730:デフォルトの名無しさん
10/04/29 23:48:59
>>720
全部読んでサンクス

読んで思ったのが
stackpanelに複数配置されたコンテンツを
そっくり別のコンテンツに取り替えるようなのって
xamlじゃ無理?
画像を表示してた場所をすべてボタンに変えるとか
そういうのはやっぱりC#でやるのかね

決まった雛形だら自由に作れるような感じだけど
GUIの表示をごっそり変えるのはどうするのかな

次はバインド読んでみるか

731:デフォルトの名無しさん
10/04/29 23:50:28
ListBox.ScrollIntoView を使うと、指定したアイテムを画面内に持ってくることができますが、
一番端に表示されます。

これを一番端ではなく、もうちょっと内側(2、3個要素が見えるような位置)にしたいんですが、
どうすればよいでしょうか?

732:デフォルトの名無しさん
10/04/29 23:50:34
>>729
ああ、そういうことか

733:デフォルトの名無しさん
10/04/29 23:53:22
>>731
そういうかゆいところに手が届かないこと多すぎるよな
それの対処にやたら時間かかって先に進めないのが
すごくイラつくわ
コアの部分に全然時間かけれない

734:デフォルトの名無しさん
10/04/30 00:05:49
2,3個上の要素を指定すればいいのでは・・・

735:デフォルトの名無しさん
10/04/30 00:11:44
やってみたら例外がでた!→範囲内に丸めろよ…

やっと初心者がWPFをやる時代が到来胸が熱くなるな

736:デフォルトの名無しさん
10/04/30 00:46:35
WPF みたいな一部でしか使えないものは危険。

737:デフォルトの名無しさん
10/04/30 00:53:21
意味わからん

738:デフォルトの名無しさん
10/04/30 02:00:54
>>718
>>729
このスレならどうせWindows専用ってことだろうから
joyGetPosをP/InvokeすればXBOXコントローラ以外も使える。
Windows 95から存在するAPIなので安心。
URLリンク(msdn.microsoft.com)


739:デフォルトの名無しさん
10/04/30 10:12:31
WPF勉強しているんだけど
初心者にはあえてこちらの方がお勧めのような気がする
GUI部分とロジック部分を自然に分離して記述するから
ソースも見やすくなりそう

740:デフォルトの名無しさん
10/04/30 13:01:04
実際に初心者に使わせたら大半をコードビハインドに記述、
ViewModelでViewを生成し、
ViewがViewModelのコントローラという素敵構造にしたんだが…

741:デフォルトの名無しさん
10/04/30 13:18:34
>>720
これずーっと読んでいって
第 3回 “見た目”を決めるリソースとスタイル
で詰まった
むずぅ

742:デフォルトの名無しさん
10/04/30 13:24:51
>>741
そう?
WinFormでもImageListなんてあるけどあれの汎用版みたいなもんでしょ

743:デフォルトの名無しさん
10/04/30 13:26:15
おっと途中になった
スタイルはCSSと似てるし

744:デフォルトの名無しさん
10/04/30 17:50:21
みんなExpression Blen使ってるの?

745:デフォルトの名無しさん
10/04/30 21:31:35
>>744
これからWPF試してみたいのでExpression Blend 4が早くでないかなと思ってる。
VS10が出たし、もうすぐだと思ってたんだがアナウンスがないな…

746:デフォルトの名無しさん
10/04/30 22:57:26
ブレンド無しで WPF ってwww

747:デフォルトの名無しさん
10/05/01 02:07:09
Blendなんて飾りですよ
ControlTemplate生成にしかわからんのです

748:デフォルトの名無しさん
10/05/01 05:48:20
別にボタンを星型にしたいとか思わないしなあ

749:デフォルトの名無しさん
10/05/01 08:02:08
ボタンを星形にするだけがテンプレートじゃないだろ
WPFの胆はDataTemplateやItemTemplate
VSだけだと手書きしないといけない

750:デフォルトの名無しさん
10/05/01 09:16:53
Blendなきゃだめなのか
WPF一気にやる気なくなったわ

751:デフォルトの名無しさん
10/05/01 10:52:30
やる気も金もない人間は必要とされていないようだ。

752:デフォルトの名無しさん
10/05/01 10:52:45
2010を使い.NET4でWPFを始めてみました
ググりながら試行錯誤してコマンドとコンテキストメニューを繋ごうとしています
キー操作だと正常に動作し、PlayPause_Executeが呼ばれるのですが、
コンテキストメニューは見出しやキーの表示は合っていますが、グレー表示のままで選択できません
何が悪いのでしょうか?

タイマで定期的にCommandManager.InvalidateRequerySuggested();してみても変わらないようですし
キーを押したときにはCheckCanExecuteCommandが呼ばれますが、それ以外では呼ばれないようです

public class Commands
{
public static RoutedUICommand PlayPause = new RoutedUICommand("再生/一時停止", "PlayPause", typeof(Commands),
new InputGestureCollection { new KeyGesture(Key.Space) });
}

XAMLで(はしょっています)
<Window xmlns:local="clr-namespace:hoge">
<StatusBar.ContextMenu>
<ContextMenu>
<MenuItem Command="{x:Static local:Commands.PlayPause}" IsEnabled="True" />
</ContextMenu>
</StatusBar.ContextMenu>

C#側コンストラクタで
CommandBindings.Add(new CommandBinding(Commands.PlayPause, PlayPause_Execute, CheckCanExecuteCommand));

private void CheckCanExecuteCommand(Object sender, CanExecuteRoutedEventArgs e) {
e.CanExecute = true;
}


753:デフォルトの名無しさん
10/05/01 11:04:27
>>751
お前は一日中いろんなスレで煽るしかできない人間みたいだな

754:752
10/05/01 14:06:29
>>752
どうやらContextMenuの場合だけのようで、理由はまだよくわかりませんが
とりあえずコンストラクタの最後にFocus();を入れることで回避できることがわかりました。

755:デフォルトの名無しさん
10/05/01 14:11:55
>>753
お前は一日中いろんなスレで煽られるしかできない人間みたいだな

756:デフォルトの名無しさん
10/05/01 14:48:48
Blendなんて飾りですよ。漢は手書き。マジで、Blendは非プログラマ向けの
ツールだから、開発者はUIをちゃんと設計して手書きした方が覚えがいい。

757:デフォルトの名無しさん
10/05/01 14:51:15
うむ確かに手書きで覚えないとここまで分離した作りになると
わからなくなるぞ

JavaScript書くやつだってhtmlやCSSは知ってるだろ?

C#とXAMLの関係ってそういうもんだよ

758:デフォルトの名無しさん
10/05/01 14:59:42
非プログラマ向けとかまで言い切っちゃうのは逆にblendを過大評価しすぎ
手書きすることとUIを設計することは全然関係ないし
細かいアニメーションとかスタイル指定とかblendあったほうがいいに決まってんじゃん

759:デフォルトの名無しさん
10/05/01 15:05:52
設計して、手書きしろと薦めただけだから関係なんて求められてもねぇ。
設計してBlendで作れるんなら別にそれでいいけど、細かいアニメも
スタイルも、設計さえしてあれば、手書きできるから、敢えてBlendじゃ
無いとできないものって無いでしょ。

感覚的に作りたいという意味でBlendはプログラマ的じゃないよ。
でも、非プログラマに使わせて使えるかというと、使えないんだけど。
下手にソースを汚されても困るし、やっぱBlendは要らないなぁ。
存在が非常に中途半端。

760:デフォルトの名無しさん
10/05/01 15:09:09
ああそれだとまあ同じように感じてるのかな
現状のblendはプログラマがデザイン的な作業をすることをサポートするツールって感じる
で俺には有用
アニメ付けるのにプレイバックなしで手書きとかやってらんない

761:デフォルトの名無しさん
10/05/01 15:48:50
ホームページビルダー使えたからって
プログラミングができるわけじゃない

762:デフォルトの名無しさん
10/05/01 16:41:15
html・cssの手書きとかあんな糞つまらん作業したって別に自慢には

763:デフォルトの名無しさん
10/05/01 17:57:43
>762
cssは手書きしてた頃しか知らない。誰でもできる技術になった頃には
辞めてたから。XAMLもアホでもできるようになる前には、辞めて別の
何かを始めるよ。

元々は、つまんないとかの話じゃなくて、プログラマなら、デザイナで
操作するだけじゃなくて、ソースで中身を覚えろって話なんだけどね。

764:デフォルトの名無しさん
10/05/01 18:46:17
何こいつ気持ち悪い

765:デフォルトの名無しさん
10/05/01 18:55:34
わろた
手書きしてる俺カッケー(キリッ

766:デフォルトの名無しさん
10/05/01 18:58:13
>>763
アホでもできるようなコードしか書けないから
すぐに追い抜かれて嫌になるのですね

767:デフォルトの名無しさん
10/05/01 19:00:47
並のレベルのプログラマならblendの出力なんかいざとなればいつでも読めるんだからどうでもいい話

768:デフォルトの名無しさん
10/05/01 19:06:25
>767
あぁ、いかにもやったこと無いって感じのコメントだね。
できるけど、嫌んなるよ。

769:デフォルトの名無しさん
10/05/01 19:24:15
>>767
やればできる、っていうのとは あんまり関わりたくない・・・

770:デフォルトの名無しさん
10/05/01 19:24:57
どうだろね
まだ本質的にややこしいGUIは作ってないし
blendで弄って出てきたXAML見てなるほどとか言っちゃうことがあるレベルだからわからんけど
でもXAML一緒に表示して弄れるんだからあんま問題なくない?

771:デフォルトの名無しさん
10/05/01 19:52:49
>770
仕様的に危ない点もあるけど、デザイナが他にいるとして、見た目は
他人が作るわけだ。大概のデザイナはソースが読めないから、
ソースにコメントを入れるとか、読みやすいソースを書くというセンスも
無く、Blendが生成したソースがそのまま送られてくる。

書き直そうと思っても、こういうソースになった意図(内部的な実装仕様)
を読み解かないと、書き直せない。けど、デザイナは内部実装の仕様なんて
存在自体を知らんよ。

一人でやるなら自分の頭の中だけで解決するから、好きにすりゃいいと思う。

772:デフォルトの名無しさん
10/05/01 20:07:41
まあ俺はもともとblendがデザイナとの協働ツールとして優れてるとは全然思ってないからね

773:デフォルトの名無しさん
10/05/01 20:24:49
言い訳するな

774:デフォルトの名無しさん
10/05/01 20:50:34
言い訳ってw
>現状のblendはプログラマがデザイン的な作業をすることをサポートするツールって感じる
先にこう書いてるよ

775:デフォルトの名無しさん
10/05/01 21:36:36
ListViewで6000行10列ぐらいのDataTableバインディングしてるんだけど、スクロールが遅い
コンテナのリサイクルと仮想モードは有効にしてて、遅延スクロールは最終手段ってことで保留してて、
現状でこれなんで、デザインどころじゃないんだが
兄さん達はどうやって最適化してる?


776:デフォルトの名無しさん
10/05/01 22:05:12
>>775
表示しているところだけListViewに追加する
他はダミー

777:デフォルトの名無しさん
10/05/01 22:10:14
バインドするアイテムを制限するしかない気がする。

778:デフォルトの名無しさん
10/05/01 22:22:34
そういうの必要になったらなにを試すかなと考えたら
直結するんじゃなくてvisualBrush化して並べるとかかなと思った
スクロールは早そうじゃない?

779:デフォルトの名無しさん
10/05/01 22:42:03
>>778
visualBrushが分からんので調べたらようはハリボテか!それ頂き!

適当にブラーかけて描画省略してもよさそうだ、
兄さん達ありがとう。試行錯誤してみるよ


780:デフォルトの名無しさん
10/05/01 22:44:25
描画というより重いのはレイアウトだろ

781:デフォルトの名無しさん
10/05/02 03:19:00
ボタンをひし形にして疑似3Dゲームのように並べるにはどうすればいいだろう?
理想としてはウインドウの大きさに合わせて縮尺が変わってくれるといいのだが・・・

782:781
10/05/02 03:40:35
イメージとしてはこんなのです
URLリンク(tsushima.2ch.at)
青のラインの上をめざしてて、下の方は避けた挙動です。

783:デフォルトの名無しさん
10/05/02 04:38:03
SkewTransform弄れば擬似3Dっぽい表現は一発
ウィンドウのサイズに追従させるのはパっとはわからない

784:デフォルトの名無しさん
10/05/02 04:57:30
一人で作る小規模アプリにWPFは効率悪すぎる

785:デフォルトの名無しさん
10/05/02 05:12:47
>>783
自己レス
初期表示で傾斜つけたコンテナをウィンドウに収まるように配置しとけばリサイズには勝手に追従するなあ
uniformgridならうまく拡大してくれるような気がする

786:781
10/05/02 05:15:31
>>783>>785
朝早くありがとう
ボタン単体で傾斜つけてグリッドに埋め込んだりしてたけどどうもおさまり悪いので
ボタンを入れ込むグリッドそのものを回転しちゃえって方向で今調べてました・・・
Blend使った方が楽かなあ・・・・
こいつが出力するxamlで勉強した方が速そう・・・orz

787:デフォルトの名無しさん
10/05/02 05:30:40
UniformGridでかっちりできるね
縦横比によっては見えなくなっちゃうけど
blendはそりゃあったほうがいいでしょ
なかったらこんなのめんどくさくて試す気もしないもん

788:デフォルトの名無しさん
10/05/02 06:16:28
こういうことか

URLリンク(tsushima.2ch.at)

ひし形の場合って影は下と右どっちが普通なんだろう

789:デフォルトの名無しさん
10/05/02 06:19:16
おっとボタン上のテキストは正面向いてないといけないのかなー
それだと一手間いるな・・・

790:デフォルトの名無しさん
10/05/02 06:19:45
>>788
まさにそういうのです
まあ影はこの際いらないかなあ・・・
将来的にはスキンも考えてるので

791:デフォルトの名無しさん
10/05/02 06:30:26
>>788
あれですかね
ボタンを回転させるよりボタンを星形にするようにベクターをいじって
ひし形のボタンを作った方がいいかもしれないですね

ただそういう場合ってヒットエリアって矩形なんだろかそれとも作った形そのままなんだろうか・・・

792:デフォルトの名無しさん
10/05/02 06:56:29
ちなみに>>787で作ったのはこんなのね
URLリンク(tsushima.2ch.at)
簡単だけどかなり見劣りするな・・・


793:デフォルトの名無しさん
10/05/02 07:25:32
>>792
なるほど・・・
こちらでもBlend入れてデザインしてみましたが難しいですねw
URLリンク(tsushima.2ch.at)

ボタンそのものの形は変わるのですがあたり判定が元のままw

794:デフォルトの名無しさん
10/05/02 07:53:44
あら?傾斜(擬似3D)じゃなくて回転でいいわけ?
だったらこういうのも
URLリンク(tsushima.2ch.at)
簡単・・・プレゼンターだけをグリッドとは逆に回転させるスタイルを定義する
判定も問題なしなんだけどこれだとリサイズしたときにむちゃくちゃになっちゃうな

795:デフォルトの名無しさん
10/05/02 07:59:31
>>794
まあ本当はウインドウサイズ固定などができれば楽なんですけど
なにせウインドウズアプリなのでどうしてもウインドウサイズの変更は
できて当たり前みたいなところがあるのがつらいんですよね・・・

まあこんな状況だからウインドウズ関連で指を使ったタッチパネルUIが
普及しないんでしょうけど

細かいタッチ制度を出せるマウスもしくはスタイラスのような
ポインティングデバイス向けUIは得意なんでしょうけどね・・・

796:デフォルトの名無しさん
10/05/02 08:08:12
>>793
ちゃんとClipしていれば当たり判定は問題ないはず
フォーカスの破線は自分で描画(もしくは消す)

ついでに、>>788のXAML
URLリンク(pastebin.com)

797:デフォルトの名無しさん
10/05/02 08:37:34
>>796
ありがとうございます

うーん難しいw

798:デフォルトの名無しさん
10/05/02 10:51:49
というか、ゲーム作るならこれぐらいボタン使わないで描画しろよって話だな
中学生でもできるぞ

799:デフォルトの名無しさん
10/05/02 10:53:36
WPFの3Dはゲーム作成の為にある

800:デフォルトの名無しさん
10/05/02 10:57:55
データの視覚化とかトランジション効果とかの為だろ

801:デフォルトの名無しさん
10/05/02 10:59:10
>>798
こういうUIを採用してるアプリが思い当らなかったのでゲームを例題にしてますが
ゲームじゃないですよ

802:デフォルトの名無しさん
10/05/02 10:59:52
>例題にしてますが
>ゲームじゃないですよ
例題にしてますが
作っているのはゲームじゃないですよ

803:デフォルトの名無しさん
10/05/02 11:06:15
URLリンク(tsushima.2ch.at)
改造して影をつけてみたけど解像度あがると重い・・・

URLリンク(tsushima.2ch.at)
赤丸のあたりに別途ボタンをつけたりする方法がわからない・・orz

804:デフォルトの名無しさん
10/05/02 11:32:16
Gridはレイヤーみたいな使い方もできるぞ
がんばれ

805:デフォルトの名無しさん
10/05/02 11:42:44
道具に振り回されている感じだね
もっと頭使えよ

806:デフォルトの名無しさん
10/05/02 12:03:17
gridの使い方もわからない男の人って…

807:デフォルトの名無しさん
10/05/02 13:10:06
>>803
これが進化したらビューポイントが出来上がりそうだと思った。

808:デフォルトの名無しさん
10/05/02 17:30:25
>>804
はい

>>805
まあ休みの暇つぶしに始めたのでいろいろわからないことだらけなんですよね・・・

809:デフォルトの名無しさん
10/05/02 19:28:29
>>803
これ格闘ゲームのキャラクター選択画面みたいだな

810:デフォルトの名無しさん
10/05/02 19:52:56
こんなしょぼいもん作って喜んでるって
レベル低いな

811:デフォルトの名無しさん
10/05/02 20:04:58
俺のデザイン最強(キリ
こんなしょぼいもん作って喜んでるって
レベル低いな(キリ

どんなUI作ってるんだろう見てみたい

812:デフォルトの名無しさん
10/05/02 20:06:23
言ったもん勝ちだし。
MVPの俺が言うんだから確か。

813:デフォルトの名無しさん
10/05/02 20:11:33
そういえばWinFormのClientSizeに相当する動きってどうやればいいんだろう

814:デフォルトの名無しさん
10/05/02 20:15:45
コントロールとDataSetとの接続の仕方が判らない・・・
データベースを介さないと出来ないのか?

815:781
10/05/02 20:21:27
>>810
新しいことへの挑戦中なのでこれもラフスケッチみたいな物ですよ
今後でるであろうタッチパネル搭載端末で使いやすいUIの研究ですから
ある程度決まった画面内やりとりするってのはゲームUIから学ぶことが
多いのでこれもその一つなんですよ

WPFの勉強も兼ねてですから
まあ偉い人にはわからないでしょうねw

816:781
10/05/02 20:31:16
勝手にコメントしないでください

817:781
10/05/02 21:12:26
じゃあ、俺が変わりに。

アノデスネ・・・。

818:デフォルトの名無しさん
10/05/02 21:16:50
Fromの上にWPFのMediaElementを乗せた簡易メディアプレイヤーを
.NET4で完全WPFに書き換えたら重くなった
やってることはほとんど大差ないのに何故だ

819:デフォルトの名無しさん
10/05/02 23:36:30
>>813
Window.ContentのWidthとかHeightじゃだめ?

820:デフォルトの名無しさん
10/05/02 23:43:45
>>815
研究なら自分でやることだな
この程度のことを質問しているようじゃ
何も出来そうにないな

821:781
10/05/03 01:19:15
>>820
その人成りすましなんですって・・
ID欲しいよ・・・

822:デフォルトの名無しさん
10/05/03 01:40:50
>>819
ありがとうございます。

別件で
動的にコントロールを追加したりする場合はやはりC#側で制御するしかないんですかね?

823:デフォルトの名無しさん
10/05/03 03:13:09
動的の度合いがわからない

824:デフォルトの名無しさん
10/05/03 08:03:33
技術制約無視して条件分けとか言い出すんだから「xamlにコード埋め込め」でいいと思うよ

825:818
10/05/03 10:07:19
>>818
動画の上にテキストを表示するためにOuterGlowBitmapEffectを使ってたけど
.NET4で削除された?のでDropShadowEffectに書き換えたがこれが重いらしい
ウインドウサイズをいじって動画と重ならないようにすると少しだけ軽くなり
非表示にしたりEffectを無効にするとぐんと軽くなる

ヘルプの.NET4の相違点のページかなんかで
描画方法が変わったとか何か書いてあった気がするけどページが見つからない

826:デフォルトの名無しさん
10/05/03 10:27:06
BitmapEffectはパフォーマンスがクソだからというので
ピクセルシェーダでGPUを思いっきり使うようになったんだけど(.NET3.5~)
ハードウェアが対応してないとか

827:デフォルトの名無しさん
10/05/03 21:51:18
>>825
俺は、動画はないけど文字列をいっぱい表示してるけど縁取りでDropShadowEffectを使ってみたら重いな、OuterGlowBitmapEffectも重かったけどね
ボカシの処理を無くして縁取りの処理をもっと軽くできないものか・・・

828:デフォルトの名無しさん
10/05/04 07:05:54
>>827
ぼかしを無くして影を落とすだけでも重かったので、妥協して半透明の背景をつけることにした
BitmapEffectが重いからって話だったはずなのにこっちの方が重くなるのが納得いかない
グラボは6800XTだからShader 2.0には対応してるはずだけど3.0が必要なのかな


829:デフォルトの名無しさん
10/05/04 15:31:17
カスタムコントロールにResourceDictionaryを定義した
xamlファイルを結びつけるのはどうすればいい?
カスタムコントロールのコードからリソース内の表示用部品を利用したいのだけれど。

830:デフォルトの名無しさん
10/05/04 17:01:51
>>829
xaml の読み込み
ResourceDictionary.MergedDictionaries
or
XamlReader.Load(file)

部品の取得
FrameworkElement.FindResource(key)
or
ResourceDictionary[key]

831:デフォルトの名無しさん
10/05/04 18:34:43
>>829
これでも
ResourceDictionary rd = new ResourceDictionary();
rd.Source = new Uri("pack://application:,,,/MyApp;component/Dictionary1.xaml", UriKind.Absolute);
string myValue = rd["MyValue"] as string;

832:デフォルトの名無しさん
10/05/04 18:44:44
>>830-831
さんくす!
使うリソースは1つだけなので
this.Resources.Source = new Uri("pack://application:,,,/testcontrol/test.xaml");
でいけた。this.Content = this.FindResource("button");てな感じで使えるね。

これでようやくコントロールの表示部分に取り掛かれるわ

833:デフォルトの名無しさん
10/05/04 19:03:40
日本のメーカーPCはグラボ非搭載が主流だからWPFはきついな

834:デフォルトの名無しさん
10/05/04 19:28:07
誰一人つられないんだからね

835:デフォルトの名無しさん
10/05/05 00:38:09
現在主流のCore-iモデルの内蔵はintel HD Graphicsで
そのコンパネがWPFだったりするんだけどな

836:デフォルトの名無しさん
10/05/05 01:34:12
WPFってなんだろう

837:デフォルトの名無しさん
10/05/05 01:44:00
人生・・・かな?

838:デフォルトの名無しさん
10/05/05 03:17:03
鉄板麺!!

839:デフォルトの名無しさん
10/05/05 16:50:17
WPFはAdobeのあれをパクったような感じ

840:デフォルトの名無しさん
10/05/06 08:43:05
国連になんかあったな

841:デフォルトの名無しさん
10/05/06 23:49:46
Window の中に Grid が1つあり、
その中に同じ大きさの Viewbox を3つ配置しています。
3つのViewboxの位置は同じで、重なって配置されます。

それぞれのViewboxにはGridを配置し、その中には
・透過色を指定したPNG画像と
・Rectangleを1つずつ配置しています。
3枚の画像は同じ大きさで、UniformToFill にしています。
Rectangleは、各画像の背景色の領域中に配置するようにしています。
また、Rectangleはクリックされると Fill が変わるようにしています。

このとき、一番階層が高い Viewbox 内のRectangleしかクリックに反応してくれません。
2番目、3番目のViewbox内のRectangleも反応させるにはどうしたら良いのでしょうか?

ソースを以下にUPしましたので、よろしくお願いいたします。
URLリンク(www.dotup.org)
pass: wpf

842:デフォルトの名無しさん
10/05/07 00:02:32
現象が発生する最小のプログラムでないと誰も見ないぞ
単純に一番目にRect三つ配置すればいいんじゃねーの

843:デフォルトの名無しさん
10/05/07 00:05:50
>>841
Grid.Row, Grid.Column を分けずに、一つのセル(?)でやってるから、最後の Viewbox がイベントとっちゃって、その兄弟にはイベントが伝播しない。
素直に Canvas 使うか、Grid.Row を3つに分けなさい。

844:841
10/05/07 00:12:10
>>842
急いで書いたため、情報不十分でした。
各Viewboxは個別に移動、拡縮をしたいのです。
(それに応じでViewbox内のオブジェクトも、移動+拡縮させたいです)
ですので、一番目にRect3つ配置ではダメなのです。

>>843
ありがとうございます。
いただいた情報を元に考えて見ます。

845:デフォルトの名無しさん
10/05/07 00:36:07
>>844
Grid を入れ子にすれば、Grid で MouseUp をとるように変更すればできたけど・・・
もう少しスマートな方法ないかね。Viewbox 使わなければ Background に Transparent 設定してイベント透過させられるのだけど。

<Grid MouseUp="rectangle_MouseUp">
  <Viewbox />
  <Grid MouseUp="rectangle_MouseUp">
    <Viewbox />
    <Grid MouseUp="rectangle_MouseUp">
      <Viewbox />
    </Grid>
  </Grid>
</Grid>

-----------
private void rectangle_MouseUp(object sender, MouseButtonEventArgs e)
{
    ((((sender as Grid).Children[0] as Viewbox).Child as Grid).Children[1] as Rectangle).Fill = Brushes.Red;
}


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch