トップページtech
1001コメント279KB

【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/11/08(水) 10:43:18
あたらしいGUI FW、WPFについて語るすれ。

.NET3.0もリリースされて盛り上がってまいりますた。

WPF on MSDN
http://msdn2.microsoft.com/en-us/netframework/aa663326.aspx

.NET3.0
http://www.netfx3.com/blogs/news_and_announcements/archive/2006/11/06/.NET-Framework-3.0-has-been-released_2100_.aspx

WPF Mashup on YOUTUBE
http://www.youtube.com/watch?v=BUBOQFvh6yI

0797デフォルトの名無しさん2008/02/22(金) 17:43:39
MS的には自分でUIデザインまでやるなってことなんだろ。
コード書きの片手間にやるには複雑すぎる。
デフォルトで完成させたところで、XAML専門のXAMLerに投げられれば一番いいね。
0798デフォルトの名無しさん2008/02/22(金) 18:42:15
http://www.atmarkit.co.jp/fdotnet/basics/xaml02/xaml02_03.html

これは素晴らしい記事だな
これでXAMLとおさらばできそうだ
0799デフォルトの名無しさん2008/02/23(土) 00:29:32
すれば
0800デフォルトの名無しさん2008/02/23(土) 03:54:40
XAML を使わずに WPF アプリを作るのは
Windows Forms エディタなしで Windows Forms アプリを書くより
コード量的に辛そうなんだがw

いくら partial class で分離できるとはいえやりたくないな
0801デフォルトの名無しさん2008/02/23(土) 08:40:05
C# 3.0 なら、
new StackPanel {
 Children = new UIElementCollection {
  new Button { Content = "button 1" },
  new Label { Text = "label 1" },
 }};
みたいな書き方できて、XML と大差なかったりもする。
ただ、Binding みたいにマークアップ拡張使うものはこれだと書けない。
0802デフォルトの名無しさん2008/02/23(土) 12:37:00
いまさらな疑問だけど、
VS2008とExpression BlendはWPFで作られてるの?
0803デフォルトの名無しさん2008/02/23(土) 12:45:55
>>802
Expression BlendはWPFで作られてる。

VisualStudioは、
外側はC++ネイティブ、
プロジェクト設定の画面とかはWinForms、
WPFポトペタ製作画面はWPFという感じにキメラ。

Spy++で見てみると分かりやすい。
0804デフォルトの名無しさん2008/02/23(土) 14:01:54
>>803
サンクスです。
あれが作れると思うと勉強にハリが出る。
0805デフォルトの名無しさん2008/02/24(日) 15:13:35
MSはExpression Blendで得たノウハウを公開すべきだ
0806デフォルトの名無しさん2008/02/25(月) 13:48:53
しかし Expression Blend の
XAML ソースを公開されてもやたら辛いだろうなw
0807デフォルトの名無しさん2008/02/25(月) 16:58:55
>>781
3.5のアップデートで追加されるってさ
.NET 3.5 Client Product Roadmap - ScottGu's Blog
http://weblogs.asp.net/scottgu/archive/2008/02/19/net-3-5-client-product-roadmap.aspx
WPF Control Improvements
Later this year we are also planning to release a number of new controls for WPF.
Included in the list we are working on are DataGrid, Ribbon, and Calendar/DatePicker controls.
0808デフォルトの名無しさん2008/02/25(月) 17:01:05
ってすまん、Datagridviewの方だったか…
0809デフォルトの名無しさん2008/02/26(火) 19:39:11
kaxamlのエディタがあまりにも軽快に動いてくれるものだから
(しかもXAML補完付きで!)
WPFでもこんなにきびきび動くエディタつくれるのかーと感銘を受けていたら
WindowsFormsHostだったというオチ。

Blendのエディタはきびきび感が足りない用に思う。
3.5SP1でどれくらい改善されるやら。
0810デフォルトの名無しさん2008/02/26(火) 21:06:35
Windows Formsでキビキビ動くエディタなんて作れるのか?w
0811デフォルトの名無しさん2008/02/29(金) 20:05:32
WindowsFormsHostの中身をWindows.Formsで書かないといけないわけはないじゃあないか
0812デフォルトの名無しさん2008/03/02(日) 23:15:18
そうだね。俺も書いて気づいた。
でもたとえば、ActiveXコントロールをホストするのに
間にWinFormsのクラスが挟まるのは気持ち悪い。
0813デフォルトの名無しさん2008/03/05(水) 17:30:18
開発環境ってVista?
XPでやるとテンプレートで作った時点でVS落ちるんだけど何かミスってる?
0814デフォルトの名無しさん2008/03/05(水) 17:50:32
Windows7は全部WPFで作られるんだよね?
0815デフォルトの名無しさん2008/03/05(水) 18:06:11
意味わかんねぇ。
0816デフォルトの名無しさん2008/03/05(水) 20:42:42
Pentium DだけどGPUがオンボードだからかBlendが重すぎて使い物にならない
描画処理をGPUで処理するかCPUで処理するか選べるようにならないのかな?
0817デフォルトの名無しさん2008/03/05(水) 21:06:22
>>816
遅いのはPentium Dだからだろ
0818デフォルトの名無しさん2008/03/05(水) 22:28:57
オンボードとかお話にならない
0819デフォルトの名無しさん2008/03/06(木) 01:20:29
Wii and WPF
0820デフォルトの名無しさん2008/03/06(木) 14:48:21
>>816
Blendはどんな廃スペックPC用意しても、
入力に対するレスポンスが目に見えて遅れるので心配するな。
0821デフォルトの名無しさん2008/03/06(木) 23:26:41
MIX08 KeynoteのWPFのbitmap effectsのデモ、これ結構楽しみになってきた。
http://visitmix.com/blogs/Joshua/Day-1-Keynote/
の 02:08:20 辺りから。
0822デフォルトの名無しさん2008/03/07(金) 04:24:15
XElementかなんかを組み合わせてXAML生成しようと思うんだけど
それを動的にコンパイルするにはどうすればいい?
0823デフォルトの名無しさん2008/03/07(金) 04:31:23
XamlReaderクラス?
0824デフォルトの名無しさん2008/03/07(金) 08:32:20
でいいんじゃね。
0825デフォルトの名無しさん2008/03/07(金) 11:29:49
>>823
なるほどありがとう
0826デフォルトの名無しさん2008/03/15(土) 13:37:00
このスレの住人なら知っていますね、あの糞開発ツールのことを

・自分のプログラムのバグなのかコンパイラのバグなのかわからない
・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している
・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている

糞だけど、政治的な理由で無理やり使わされているんですよね
もういい加減、我慢するのはやめませんか?

・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。
 上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。
・あの糞開発ツール提供会社には「おたくの糞開発ツールは話にならない」と突き放しましょう。
 バグレポートなどしてはいけません。改善要求などもってのほかです。
 あの会社はあなたたちのことをテスター/モルモットとしか思っていません。
・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」
 なんて話が出たら力強く机を叩き、会議室を出ましょう。
 あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。

糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。
0827デフォルトの名無しさん2008/03/15(土) 15:55:12
Eclipseのことですねわかります
0828デフォルトの名無しさん2008/03/15(土) 23:34:28
Borland製品だと思うよ。Togetherとか最悪。
0829デフォルトの名無しさん2008/03/16(日) 22:06:18
ディスプレイの解像度を取得する方法を教えてください
0830デフォルトの名無しさん2008/03/18(火) 00:06:30
>>828
うぅむそうなのか?
大昔にセミナーで見た時にゃー画期的だと思ったもんだが

>>829
つScreenクラス
0831デフォルトの名無しさん2008/03/19(水) 18:52:23
ScreenはWinFormsのクラスですよね
WinFormsを使わずにやる方法は無いものかと
0832デフォルトの名無しさん2008/03/19(水) 23:22:20
デスクトップの解像度はWPF関係ないしP/InvokeでAPI呼び出せば?
0833デフォルトの名無しさん2008/03/20(木) 03:06:47
てかそれ以前にScreen.PrimaryScreenはスタティックなんだが
別にForm派生内でしか使えない訳じゃないよ
0834デフォルトの名無しさん2008/03/20(木) 18:09:09
>>833
ほとんど使わないSystem.Windows.Forms.dllを参照するのが嫌だって事じゃね?
0835デフォルトの名無しさん2008/03/21(金) 00:15:58
そんな気にするような事じゃないとは思うがまあいいや
つーかよくよく考えたら、ディスプレイ解像度切り替えるのは自分なんだから解らん方が変じゃね?
もしWindowStyle&WindowStateでのフルスクリーンの話なら
つActualWidth&ActualHeight

但し、俺んとこで実験してみたら何故か多めの数字が出た
検証めどいから誰か頼んだ
0836デフォルトの名無しさん2008/03/25(火) 20:48:00
自動生成されるhoge.g.i.csのgとiって何の略なの?
0837デフォルトの名無しさん2008/04/03(木) 12:54:38
>>836
generated / internal と予想
0838デフォルトの名無しさん2008/04/07(月) 14:32:43
結局WPFでまともなアプリ開発してるやつおるん?
XCEEDのなんたらGridみてもどうみても、もさもさなんだが。
テキストのリストビューが、DataTemplateを加えるだけで素敵なレイアウトのリストになってあら不思議なのはいいんだが、実際の使い勝手とそれを開発する工数の本質とあまり関係なくはないけどないような・・・
0839デフォルトの名無しさん2008/04/07(月) 16:14:26
基本コントロールもサンプルも少ないから使う気にならん
0840デフォルトの名無しさん2008/04/07(月) 17:55:52
これってゲームとかに向いてるの?
RPGとかノベルとかまったり目の
0841デフォルトの名無しさん2008/04/07(月) 17:55:57
そもそもデスクトップアプリを開発する需要が激減してるんだから、
WPFだろうが何だろうが新たに覚えようという人も殆どおらんだろう。
みーんなWebに行っちまった。
0842デフォルトの名無しさん2008/04/07(月) 19:28:20
そのためのXBAPです
まあ煩雑杉オワタなのは変わらんけど
0843デフォルトの名無しさん2008/04/07(月) 19:50:02
結局Webアプリでどうしても出来ないローレベルアクセスが必要なものを
「仕方なく」ローカルマシンで動かすだけで、あとは全部Webに乗せる時代だからな。

「仕方なく」ローカルPCにインストールするWebアプリはAIRで。
WebアプリをリッチにするほうはFlash、3歩遅れてSilverlightで。
もうフルセットWPF&XBAPなんか出る幕は無いだろうね。
0844デフォルトの名無しさん2008/04/07(月) 20:26:12
Webとか餓鬼のおもちゃだろ
0845デフォルトの名無しさん2008/04/07(月) 20:36:31
今普段使ってるアプリ、
ブラウザー、開発環境、ファイラーなどなど、わざわざWebアプリとして動く意味がわからん。
データがあっち側にあるのはいいかも知れんけど。
0846デフォルトの名無しさん2008/04/07(月) 20:50:49
ExpressionのExpress Edition作って無料配布すれば統一的に各アプリをユーザー側でスキン作成できていいと思うんだけども。
WinampとかJaneとか。XAMLPadとかじゃめんどくさいだけだし。
0847デフォルトの名無しさん2008/04/07(月) 20:58:44
ButtonのContentにDateTimeを入れるような場合、Buttonに表示されるDateTimeの書式指定を変えたいような場合はどうしたらいいんざんしょ・・・
0848デフォルトの名無しさん2008/04/07(月) 21:46:00
IValueConverterかな
0849デフォルトの名無しさん2008/04/07(月) 23:51:50
FormのClientRectangleみたいに
ウィンドウの中身をピッタリ例えば640*480にするにはどうすればいいの?
0850デフォルトの名無しさん2008/04/08(火) 05:09:28
AIR対抗のSilverlight for Desktopが出る可能性があるから、
そっち待ったほうがいいかなーって思っちゃうんだよな。
SLのほうが軽いし他のOSでも動くし……。
AIRはコード書きにくいから期待してる。
0851デフォルトの名無しさん2008/04/08(火) 07:47:56
SilverLightで住むやつはそっちのほうがいいかもね。
2.0だとWPFとどれだけ違うんざんしょ。
0852デフォルトの名無しさん2008/04/08(火) 08:42:25
>>849
自分で微調整
0853デフォルトの名無しさん2008/04/08(火) 20:03:53
ウィンドウハンドル取得してAdjustWindowRectは可能だろうか?
0854デフォルトの名無しさん2008/04/08(火) 20:16:24
サイズがなんピクセルとか考えなくて済むのがWPFでふぁ
0855デフォルトの名無しさん2008/04/09(水) 01:50:45
それはない
0856デフォルトの名無しさん2008/04/09(水) 02:18:22
>>853
試して報告してくれ。

ハンドルはWindowInteropHelperで取得できるから。
0857デフォルトの名無しさん2008/04/10(木) 10:28:09
>>854
まあそういう面もあるが、解像度はともかく比率くらいは固定したいところだ。
0858デフォルトの名無しさん2008/04/10(木) 17:52:36
自動サイズでキャンバス貼り付ければ
サイズの取得はできるかと。指定はどうだろねー?
0859デフォルトの名無しさん2008/04/10(木) 19:41:05
おまいらPowerStockうごかすとどのぐらいCPUくう?
Core2Duoマシーンで常時5-60%逝ってるんだが(;´Д`)
0860デフォルトの名無しさん2008/04/10(木) 22:09:28
Aeroは散々たたかれているが、3Dデスクトップ自体だめなのか、ほかのMacのQuartzとかLinuxとかどうなの?
0861デフォルトの名無しさん2008/04/10(木) 22:12:42
マーケティング部門にとっては嬉しい新機能
エンドユーザにとっては正直どうでもいい
エンジニアにとっては災厄の根源
0862デフォルトの名無しさん2008/04/10(木) 22:23:57
>>861
UIのベクター化は普通にエンドユーザーにも恩恵あるだろ
0863デフォルトの名無しさん2008/04/10(木) 22:31:19
* VistaのSuperFetchとAeroは安易に切ると遅くなる
http://pc11.2ch.net/test/read.cgi/win/1206549751/
0864デフォルトの名無しさん2008/04/10(木) 22:33:40
Aero別に悪くないけどな。もう一年使ってるわ。
使用感が違うしスペックの足りないマシンならもっさりかもしれないけど、慣れると平気。
今から改めてMacOSXとかGNOMEに慣れるのと大差ないだろ。
0865デフォルトの名無しさん2008/04/10(木) 23:12:15
MS自身がAeroの見た目しか宣伝しないからどうしようもないだろ。
0866デフォルトの名無しさん2008/04/10(木) 23:22:19
一般人にはGUIって言葉すら通じないからしょうがない。
0867デフォルトの名無しさん2008/04/10(木) 23:23:16
半透明効果云々でI/O負荷掛かり杉でイマイチだけど
UI処理をGPUにお任せするって方向性は正しいと思うよ
Aeroで見た目効果にコダワったのが敗因
0868デフォルトの名無しさん2008/04/10(木) 23:26:48
アルファブレンディングって32bppのうち詰め物分の8bit使ってるだけでふぁ
0869デフォルトの名無しさん2008/04/10(木) 23:40:45
Aero GlassのアニメーションがMacみたいに派手でないから、
ティアリングしないのがいいんだとか言っても一般人には
さっぱり伝わらないんだよね。
こけおどしであっても、今より派手なアニメ効果をイントール時
デフォルトON、「パワーユーザー」さん向けにオフにできるように
しといたらここまではネガキャンされなかったかも。
0870デフォルトの名無しさん2008/04/10(木) 23:48:09
Deep Color対応のPC用ディスプレイは普及するんじゃろか
0871デフォルトの名無しさん2008/04/10(木) 23:54:05
>>869
それはそれで2chとかの自称中級ユーザーとかには叩かれそうだなw
0872デフォルトの名無しさん2008/04/10(木) 23:58:53
まずはGDIとWinGの辺りから説かないとなw
0873デフォルトの名無しさん2008/04/11(金) 00:01:28
ティアリングって描画のvsync同期と関係しているのであって、
描画の派手さには関係ないような気がするんだけど。
0874デフォルトの名無しさん2008/04/11(金) 00:13:31
従来に比べたらメモリも食うから、派手で目立つメリットがないと受け入れにくいでしょ。
945Gに合わせなければもっと派手にできたんじゃない?
0875デフォルトの名無しさん2008/04/11(金) 00:27:32
どっちかっつと全ウィンドウを馬鹿正直にバッファに持つってー思想が間違いだったんでね?
なんぼマシンパワー余ってるつーたってメモリにゃ限りがある訳で
0876デフォルトの名無しさん2008/04/11(金) 00:31:38
共有コンテキストだと結局誰かが弄るたびに描き換えでは
0877デフォルトの名無しさん2008/04/11(金) 00:39:42
描画終わったあとなら、ウィンドウ1枚でバッファはせいぜい2〜4Mだろ。
ウィンドウ動かすたびにGDIで再描画かけるより、中身が同じなら移動分はDirectXで合成し直す方がいいって判断したんでしょ。
0878デフォルトの名無しさん2008/04/11(金) 03:13:04
デスクトップのこと忘れてねえかそれ
それにビデオカードなら独立して256Mとか使えるけど統合型だと結局メモリ圧迫する
0879デフォルトの名無しさん2008/04/11(金) 09:29:47
結局トレードオフだろ
メモリは多めに食うけど、Aeroオンだと確かにCPU負荷はオフのときに小さい
0880デフォルトの名無しさん2008/04/11(金) 09:30:11
オフのときに比べて、ねorz
0881デフォルトの名無しさん2008/04/11(金) 10:36:26
OSXではその辺どうなってるんだろうね。
http://arstechnica.com/images/tiger/quartz-10.0-4.png
これの中段図を見ると仕様はAeroとまったく同じに見えるが。
(ちなみに下段図のすべてGPUに任せるやつは結局ボツになったらしい)
0882デフォルトの名無しさん2008/04/11(金) 10:49:23
WPFって別にAeroと関係なくね?
XPでも動くんだし。
0883デフォルトの名無しさん2008/04/11(金) 15:28:23
WPFがXP上でも動くのは、ApacheがCygwin上でも動くみたいなもんだぞ。
0884デフォルトの名無しさん2008/04/11(金) 17:48:28
>>883
マーケティング的にはそんなイメージがあるけど、
WPFはXPでも、Vistaでもほとんど変わらないぞ。

見た目が違うのはWPFに限ったことじゃないし、
動作速度だってXPの方が速いくらいだ。
0885デフォルトの名無しさん2008/04/12(土) 08:43:29
>881の一番下みたいにいきなりGPUに飛ばせれば負荷が軽くなるんだけど
これが本当の意味のGPUを使ったアクセレーションなんだけどな
0886デフォルトの名無しさん2008/04/12(土) 08:47:01
>881
どうやらEnableできるらしい
http://journal.mycom.co.jp/column/osx/139/index.html
0887デフォルトの名無しさん2008/04/12(土) 13:28:45
できるのに、最新のLeopardでも無効にしてるってことは、致命的な問題があるんだろ。
あまり詳しくないけど
GPUのShaderってCPUに比べたらかなり低レベルなもんらしいし、
もっと賢くなるまで無理なんじゃないか。
0888デフォルトの名無しさん2008/04/12(土) 13:55:18
Direct3D 10.1の仮想化&マルチスレッド対応に期待だな。
10.1がオンボードに載ってそれにWPFが対応するまで1年以上かかりそうだが。
0889デフォルトの名無しさん2008/04/12(土) 17:44:07
AeroにしたところでいままでのアプリはGDIで描いてるわけだしな。
0890デフォルトの名無しさん2008/04/12(土) 17:56:45
アプリもGPU描画に移行させたいならネイティブから使えるAPI用意すりゃいいのにな
今のところWPFしかないってのが
0891デフォルトの名無しさん2008/04/12(土) 17:59:13
c#ネイティブだろ。
0892デフォルトの名無しさん2008/04/12(土) 18:05:18
>>884
ただしたまに差が現われることもあるね。

修正済みだけど下記の件。

「Windows XP または Windows Server 2003 で、
 レイヤード ウィンドウが有効になっている WPF ベースのアプリケーションのパフォーマンスが低下する」
ttp://support.microsoft.com/default.aspx/kb/937106/
ttp://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1810617&SiteID=1&pageid=0

歴史的経緯
ttp://blogs.msdn.com/seema/archive/2006/09/18/761314.aspx
ttp://blogs.msdn.com/seema/archive/2006/10/25/layered-windows-sw-is-sometimes-faster-than-hw.aspx
ttp://blogs.msdn.com/nickkramer/archive/2006/09/20/763037.aspx
0893デフォルトの名無しさん2008/04/12(土) 18:51:32
>>891
.NETのWindowFormsはwin32のラッパー
0894デフォルトの名無しさん2008/04/12(土) 20:03:40
WPFはC#ネイティブとも言えるな
0895デフォルトの名無しさん2008/04/13(日) 15:44:13
ウィンドウから
窓枠とかメニューを抜いた部分を指定のサイズにする命令はありますか?
0896デフォルトの名無しさん2008/04/13(日) 21:16:33
"窓枠とかメニューを抜いた部分" にコントロールを一つ置いてサイズを指定し、
他の部分はサイズを自動計算させればいい。
0897デフォルトの名無しさん2008/04/16(水) 13:11:35
まだ始めて間もないのですが、ちょっと教えてくださいまし。言語はC#です。
適当なCanvasを作って、このCanvasの上辺等に線を描きたいのですが、Canvasの大きさの変更に追従してほしいのですが
単純に Line クラスを作り、Line.X1 , X2 プロパティーの Canvas の幅を設定すると、大きさが変更されても追従してくれません。
使うクラスは Line である必要性はないのですが、こういった時はどうするのが一番てっとりばやいでしょうか?
■ このスレッドは過去ログ倉庫に格納されています