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

WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part7

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2010/08/22(日) 21:11:53
一向に普及しないユーザーインターフェースシステム
Windows Presentation Frameworkについて語るスレ。
パワフルで柔軟すぎるのが敗因か? 正直ついていけないよね…。

Visual Studio 2010
ttp://www.microsoft.com/japan/msdn/vstudio/
Microsoft .NET Framework 4 (Web インストーラー)
http://www.microsoft.com/downloads/details.aspx?familyid=9CFB2D51-5FF4-4491-B0E5-B386F32C0992&displaylang=ja
Microsoft .NET Framework 4 (スタンドアロンインストーラー)
http://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, .NET4.0)GUIプログラミング Part6
http://hibari.2ch.net/test/read.cgi/tech/1274423236/
WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5
http://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のチェックは外しておきましょう。
http://ideone.com/
0203デフォルトの名無しさん2010/10/26(火) 07:37:36
もちろんIEでも試しました
動かないのは
<a href="javascript:void(0);" onclick="hogehoge();">fugafuga</a>
こういう感じのコードです。
0204デフォルトの名無しさん2010/10/26(火) 07:38:59
ナビゲートしてないとか

0205デフォルトの名無しさん2010/10/26(火) 08:51:23
ナビゲートしてないというのはどういうことでしょうか?
0206デフォルトの名無しさん2010/10/26(火) 09:03:57
>>205
動かす予定のjsとかってどういうメソッド使って渡してるの?
0207デフォルトの名無しさん2010/10/26(火) 09:18:07
javascriptはよくわからないのですが
同じページにあるformをsubmitしてPOSTしてるようです
0208デフォルトの名無しさん2010/10/26(火) 14:18:57
将来的な c++ + winapi 辺りへの移植を考えたら.net止まりにせざるをえない
0209デフォルトの名無しさん2010/10/27(水) 11:03:57
ttp://blog.evernote.com/jp/?p=1150

Evernote 4は今までのEvernote 3.5とは全く違います。Evernote 3.5
もたくさんの良い機能を持っていましたが、どうしてもそのままでは直
せない問題がありました。ぼやけたフォント、起動時間の長さ、起動時のメ
モ リー使用量、特定のグラフィックカードとの相性の悪さ等の問題は3.5
が使っているWindows .netとWPFのためになかなか改善する事ができ
ませんでした。皆様がよりEvernoteを便利に使って頂けるような新機能を
追加する前に、改善作業ばかりに追われていました。

なので、もっと早く動く、信頼できるC++で最初から作り直す決心をし
ました。使って頂くと分かると思いますが、すばらしい出来映えになりました。こ
の新しいバージョンがこれから新しい機能などを追加していく基盤になります。
0210デフォルトの名無しさん2010/10/27(水) 14:44:30
C++でサクサク作れる人はすごいね。
0211デフォルトの名無しさん2010/10/27(水) 14:49:51
BASIC、アセンブラ、C、C++、JAVA、C#とかの系譜をこなしてきたなら簡単に出来るべ?
Java以前はリンカのためのヘッダがたまにうざったいとおもうがな。
0212デフォルトの名無しさん2010/10/27(水) 14:56:04
突っ込む場所が違うんじゃないかw
要はWPF使えない宣言されたってわけだ
0213デフォルトの名無しさん2010/10/27(水) 15:31:21
あのフォント問題を長期間放置しておいたのは罪深い
0214デフォルトの名無しさん2010/10/27(水) 16:16:32
さっさとSilverlightに吸収統合されてほしい
0215デフォルトの名無しさん2010/10/27(水) 20:46:35
この流れは止まらないだろうなー
WPF\(^o^)/
0216デフォルトの名無しさん2010/10/27(水) 20:51:46
原文は、「私たちが知ってて、信頼を置いていたC++」みたいな感じなのよね。
要は、Evernote 開発者が C++ な人なんで、慣れない WPF で書いて失敗した感じ。

それがなんか日本語特有の主語抜きに翻訳されちゃってて、
全面的に C++ が信頼置けるみたいな文章になっちゃってる。
0217デフォルトの名無しさん2010/10/27(水) 21:55:14
WPFがC++で.NETに関わらない形で使えるようにしてくれれば面白い。
0218デフォルトの名無しさん2010/10/27(水) 21:57:40
WPFの他にDirectXを使ったGUIフレームワークってないの?
0219デフォルトの名無しさん2010/10/27(水) 22:17:03
>>217
つSilverlight+ActiveX
WPF自体マネージコードで書かれてるので.NETに関わらないWPFというのはありえない
0220デフォルトの名無しさん2010/10/27(水) 22:36:30
ActiveX使うSilverlightって意味なくないか
0221デフォルトの名無しさん2010/10/27(水) 22:38:41
SilverlightはActiveXコントロール。
だからウィンドウに貼ってCOMでホスティングしてやればGUIフロントエンドとして使える。
0222デフォルトの名無しさん2010/10/27(水) 22:44:27
エバーノートのスレ見てきたらみんな早いとか喜んでてワロタ
WPF捨ててお客様満足度アップだなw
0223デフォルトの名無しさん2010/10/27(水) 22:56:53
まあ、XP で WPF の起動がもっさりなのも事実だし、
Evernote 的に、.NET 使うのがモチベーション上がらなかったんだろうなぁってのもあるだろうけど。

ユーザビリティ的に劣化してる部分もあって、twitterとかではそれをたたかれてたりもするが。
結局、信者はいい1点だけ見て喜び、アンチは悪い1点だけ見てけなす。
0224デフォルトの名無しさん2010/10/27(水) 23:09:01
WPF活かすようなナイスなGUIにしてなかったんだったらそもそもWPF使わなくてよかったんだろうし、
使う必要がったなら、自前か代わりの何かを持ってこないとならない。

まぁWPFが微妙にうんこなのは同意。
0225デフォルトの名無しさん2010/10/28(木) 20:00:12
Windows環境でWPF以外のGUI開発の選択肢ってどういったものがあるの?
Formはイマサラ感あるし、QtとかWTLとか?
0226デフォルトの名無しさん2010/10/28(木) 20:31:41
javax.swing
0227デフォルトの名無しさん2010/10/28(木) 21:16:36
もっとない
0228デフォルトの名無しさん2010/10/28(木) 21:43:54
.NET FrameworkはC#で書かれているとかそういうの要らんからネイティブで実装してほしかったな

△△は△△で〜みたいなのって誰得
0229デフォルトの名無しさん2010/10/28(木) 22:00:11
WPFが遅いのは別にC#で書かれてるせいじゃないだろ
バインディングとかゴテゴテの仕組みや描画のせいだから何で書いても一緒
SilverlightのGUIはほとんどネイティブだけどそんなに速くないっしょ
0230デフォルトの名無しさん2010/10/28(木) 22:10:53
描画?軽量だよ。
AtomのPCで動かしてもそこそこいけるしね。
0231デフォルトの名無しさん2010/10/28(木) 22:21:56
Silverlightはシンプルなレイアウトで描画面積が小さいと軽いけど
複雑になってくるとWPFとは比べ物にならないくらい重いよ
Silverlightはシンプルな使い方しかしないことが前提だから軽い
0232デフォルトの名無しさん2010/10/28(木) 23:30:28
WPFとかまだまだβ版じゃまいか。
WinForms+J2EE(WebOTX)が事実上トレンド。
0233デフォルトの名無しさん2010/10/28(木) 23:53:33
>J2EE
いや、それは無いだろう…
0234デフォルトの名無しさん2010/10/29(金) 00:17:40
J2EE使うならWin選択する理由がねえ
0235デフォルトの名無しさん2010/10/29(金) 01:43:16
>>230
WPF は CPU じゃなくて GPU 依存だしね。
あと、Vista か 7 なら軽い。

>>231
Silverlight は GPU の活用度合が低い感じが。
クロスプラットフォームだからある程度仕方がなく。

>>232
いつもの、「MS 製品は3世代目から」ジンクスに従えば、ようやく正式版。
0236デフォルトの名無しさん2010/10/29(金) 01:55:24
>>234
社会じゃ仕方なくWin縛りの案件ばかりなんだよ、僕。
0237デフォルトの名無しさん2010/10/29(金) 18:50:10
>>209
これのGUIって自作なのかな
0238デフォルトの名無しさん2010/10/29(金) 18:54:45
社外品だろ
早くなったのは起動だけ
他は、、まぁわかるよな
0239sage2010/10/29(金) 19:00:59
ビジネス用途での"Windows XP"シェアは全体の75%だからな、
さらに2014年まで使えるから、
あと2,3年はビジネス用途に絡むソフトにはWPFは鬼門かもしれんね
0240デフォルトの名無しさん2010/10/29(金) 19:11:55
EvernoteのおかげでWPFの普及がさらに遅れそうだな
0241デフォルトの名無しさん2010/10/29(金) 20:26:37
正直WPF使ってΣ( ゚Д゚) スッ、スゲー!!ってもんをみたことがない・・・
ほかのFWでもあまり見たことないがw
0242デフォルトの名無しさん2010/10/30(土) 07:23:20
cocoa売ってもらえばいいんだよなw
まあそれはなさそうだからwpf使うけど
0243デフォルトの名無しさん2010/10/30(土) 10:09:16
>>241
スゲー!と思わせてもどうせ2分で慣れる。
重要なのはWhat the fuckの少ない、驚き最小化の原則に乗った動作。
すなわちUIの良し悪しはフレームワークに依らない。

WPFを使うと微妙な挙動が多くてその実現に無駄に手間がかかるがなw
0244デフォルトの名無しさん2010/10/30(土) 10:16:58
>242
いや別にcocoaはいーやw

>243
いやLonghornのデモの時とかなんか色々すごいUIデモしてたような気がしたんだが…
まぁそれが使いやすいかどうかは別物だけど.
0245デフォルトの名無しさん2010/10/30(土) 10:26:36
単にすごければいいだけであれば、
ほとんどXAMLだけでアニメーションゴリゴリで動くものを作ることもできるさ。
限度を越えるとウザいだけだがなw
0246デフォルトの名無しさん2010/10/30(土) 11:56:12
Windows Media Center みたいな奴か。
0247デフォルトの名無しさん2010/10/31(日) 18:53:52
ひょっとしてWPFのWebBrowserってウンコ?
0248デフォルトの名無しさん2010/10/31(日) 18:59:51
ウンコもクソもIEコントロールホストしてラップしてるだけだもん
WPFのWebBrowserと呼ぶほどのものでもない
0249デフォルトの名無しさん2010/10/31(日) 22:17:37
>>247
WebBrowserだけでなくどれもがウンコだろが
0250デフォルトの名無しさん2010/10/31(日) 22:48:37
WebBrowserはWPFですらないのでTransformなども受け付けなくて残念だったんだよなぁ。
0251デフォルトの名無しさん2010/10/31(日) 22:56:36
NewWindowイベとStatusTextがホスィ
0252デフォルトの名無しさん2010/10/31(日) 23:23:45
SilverlightだとエフェクトかけたりできるのはもちろんWebBrowserBrushとかあるんだよな
0253デフォルトの名無しさん2010/11/01(月) 03:36:43
一方 firefox は Direct2D を選択した…!?
0254デフォルトの名無しさん2010/11/01(月) 09:01:54
WPFで開発するプログラムって具体的にどんなものが多いの?
0255デフォルトの名無しさん2010/11/01(月) 09:29:04
VC#2010Expr使ってて、WPFのプロパティウィンドウで値を変更しようとしたら、いつも勝手に日本語入力になるんだけど…
0256デフォルトの名無しさん2010/11/01(月) 12:58:36
【MS】Silverlight終了のお知らせ。今後はHTML5に注力。
ttp://hato.2ch.net/test/read.cgi/news/1288568171/
0257デフォルトの名無しさん2010/11/01(月) 13:07:16
WPFたん・・・orz
0258デフォルトの名無しさん2010/11/01(月) 13:33:46
ARPANET大勝利
0259デフォルトの名無しさん2010/11/01(月) 15:25:38
>>254
Visual Studio 2010 みたいなものです。
0260デフォルトの名無しさん2010/11/01(月) 16:47:18
WPFはまだ終わらんさ。Windowsアプリ開発の標準として揺ぎ無い地位を得るはずだ!はずだっ!
0261デフォルトの名無しさん2010/11/01(月) 17:16:42
wp7はsilverlightなんだし別に死亡じゃなくね?
0262デフォルトの名無しさん2010/11/01(月) 21:59:54
Windows Phone 自体が死んでいる
0263デフォルトの名無しさん2010/11/01(月) 22:03:56
WPF、Silverlightともに糸冬了
http://www.publickey1.jp/blog/10/html5silverlightwindows_phone_7.html
0264デフォルトの名無しさん2010/11/01(月) 22:06:32
3.5で作ったサンプルクラスのお手軽ソフトが4でビルドできない。

そして私はWPFを考えるのをやめた。
0265デフォルトの名無しさん2010/11/01(月) 22:08:34
次世代GUIまだ〜? (・∀・)
0266デフォルトの名無しさん2010/11/01(月) 22:27:17
Visual Studio 2012ではWPFのテンプレートは非標準。代わりにHTML5がメインとなりスマートクライアント時代も終息かと。
0267デフォルトの名無しさん2010/11/01(月) 22:30:45
ウソニュースだしな。
0268デフォルトの名無しさん2010/11/01(月) 23:00:06
>>264
それ4じゃなくて4 Client Profileとかじゃね?
0269デフォルトの名無しさん2010/11/01(月) 23:28:02
4 ⊃ 4 CP
0270デフォルトの名無しさん2010/11/01(月) 23:47:49
WinForm開発中止で、WPFを捨てたら…どこに行くんだよw
0271デフォルトの名無しさん2010/11/02(火) 00:11:57
WinFormsの方はそのまま4CPに移行成功した
WinForms安定だな
サクサク起動するようになったし侮れないな
0272デフォルトの名無しさん2010/11/02(火) 08:40:09
すると MDX2.0 returns がやってくるのか…
0273デフォルトの名無しさん2010/11/02(火) 15:45:51
>>264
どんだけ変な書き方してるんだよ
0274デフォルトの名無しさん2010/11/02(火) 15:58:45
どうせ非推奨APIを使用してて、コンパイルスイッチでエラーになる設定なんだろw
0275デフォルトの名無しさん2010/11/02(火) 20:18:17
// ResourceDictionary.xaml を作って、
<Style TargetType="Button" x:Key="abc">〜</Style>

// App全体に適用でおっけー、と App.xaml で
<Application.Resource>
 <ResourceDictionary Source="ResourceDictionary.xaml" />
</Application.Resource>

// しかし、UserControl.xaml 等からは見えてないわけで
<Button Style="{StaticResource abc}">〜</Button>

これが 「リソース "abc" を解決できません」 警告。
更に、このUserControlを使っているWindow.xamlでは
「"〜"のインスタンスを作成できません」エラー。
(デザイナを開かなければ起動できるし意図通り反映もされてる…)


今は各xaml全部に <ResourceDictionary Source="ResourceDictionary.xaml" /> と書いてますが
「App全体に適用でおっけー」を上手くやる方法はありますか。
0276デフォルトの名無しさん2010/11/02(火) 21:10:11
VSが古くない?
0277デフォルトの名無しさん2010/11/02(火) 21:36:53
>>275
同じことをしてみたけど、うちでは警告でなかったし、デザイナにも反映されたよ。

.NET Framework 4 Client Profile
Visual Studio 2010 Version 10.0.30319.1 RTMRel
+ Hotfix for Microsoft Visual Studio 2010 Professional - 日本語 (KB982218)
0278デフォルトの名無しさん2010/11/02(火) 21:54:05
ナンダッテー
VS2010Expressです。
ちょっと新しく作って最初から試してみます。
0279デフォルトの名無しさん2010/11/02(火) 22:14:57
わかった。
Srcフォルダを作って、そこにxamlとcsを全部入れてたんだけど、それだとダメみたい。
普通にプロジェクトフォルダ内なら大丈夫でした。
詳しいことはわかりませんが、参照の基準の場所?みたいのがあるんでしょうか。

試していただいてありがとうございました。
0280デフォルトの名無しさん2010/11/02(火) 22:20:45
ResourceDirextory.xamlがプロジェクトに追加されてないんじゃ
0281デフォルトの名無しさん2010/11/02(火) 22:30:40
いやー、ソリューションエクスプローラーから
右クリック 追加 新しいフォルダー、ドラッグでどぼどぼ移動、
ってやったので、プロジェクトは大丈夫だとおもいまっす。
(プロジェクトから除外してみたら例外ですた)
0282デフォルトの名無しさん2010/11/02(火) 23:18:51
WPFのTextBoxコントロールって右クリックしたときになんか変なメニューでるね。
なんで今までと同じにしないのか理解できない。
IME使わない国には分からないのかな。
0283デフォルトの名無しさん2010/11/03(水) 00:09:46
OS依存のコンテキストメニューを、自前実装のWPFがわざわざエミュレートするようなことはしない。他のコントロールもそうだろ。
0284デフォルトの名無しさん2010/11/03(水) 00:12:39
Windows以外で誰が使うんだよ
夢見すぎだ
現実に戻ってこい
0285デフォルトの名無しさん2010/11/03(水) 00:45:22
とりあえず、APIつーかネイティブな場合、どのようにしてコンテキストメニューが表示されているか知れば答えがわかるよ。
それを知っていれば、君はおかしな事を言っていた事に気づくはず。
0286デフォルトの名無しさん2010/11/03(水) 01:01:33
技術面でこうだから出来ないというのは三流の言うこと。
ユーザーの実態に合わせないからWPFはこうなった。
どうやら未来もなさそうだ。
0287デフォルトの名無しさん2010/11/03(水) 01:13:21
やっべ、WPF作った人三流らしいぜ
0288デフォルトの名無しさん2010/11/03(水) 01:54:24
>>286
自分こそが三流だと思えないとこが三流の三流たる所以
0289デフォルトの名無しさん2010/11/03(水) 02:12:26
TextBox のデフォルトコンテキストメニューに何で「すべて選択」が無いんだろ?
Ctrl+A で「すべて選択」は出来るから、キーバインドはされている。
なんか理由があるのかな?
0290デフォルトの名無しさん2010/11/03(水) 02:22:58
>>289
一流の仕事なんだから間違いない。
三流は黙っとけ。
0291デフォルトの名無しさん2010/11/03(水) 02:31:02
>>286
自分でどうにかしたらいいじゃないか。
技術的に無理か?
0292デフォルトの名無しさん2010/11/03(水) 02:37:43
Linuxがなぜ一般家庭まで普及しなかったのかを感がる時期に来ているね。
0293デフォルトの名無しさん2010/11/03(水) 02:40:11
一般家庭レベルならしょうがないな
0294デフォルトの名無しさん2010/11/03(水) 02:55:58
WPFなんだからApplicationあたりのリソースに
TextBoxのスタイルのContextMenuに満足のいくContextMenuを設定しておけよ。
もともとTextBoxのメニューなんてあんまり統一されてなかったと思うよ。
0295デフォルトの名無しさん2010/11/03(水) 08:31:05
TreeViewのイベントが複数回発生するのは仕様ですか?
0296デフォルトの名無しさん2010/11/03(水) 09:13:31
仕様です
0297デフォルトの名無しさん2010/11/03(水) 13:00:29
一億総三流時代
0298デフォルトの名無しさん2010/11/03(水) 19:05:34
このスレにあったような。
あった >>23-28
0299デフォルトの名無しさん2010/11/04(木) 21:37:50
MainWindowから Showするのに時間のかかるSubWindowを
非同期で表示するにはどうしたらよいのか、お教えください。


private void button1_Click(object sender, RoutedEventArgs e)

  Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(ShowSub));
}

private void ShowSub()
{
  SubWindow sub = new SubWindow();
  Thread.Sleep(3000);

  sub.Show();
}

こんなコードで実行すると、実行完了まで、MainWindowの操作ができなくなってしまっています。
Dispatcherの使い方が間違っているんだろう…というくらいまでは分かるのですが
それ以上わからず手じまいになってしまっています。
0300デフォルトの名無しさん2010/11/04(木) 21:48:50
無理
SubWindowのロード処理が重いなら、とりあえず表示だけ済ませて
重いロード処理は非同期にするべき
0301デフォルトの名無しさん2010/11/04(木) 21:50:08
>>299
DispatcherにInvokeを送る=UIスレッドで実行する=時間のかかる処理はフリーズしてしまう
のです。
DispatcherPriorityを設定したからって違うスレッドで実行されるわけではないです。
フリーズしないようにするためには別のスレッドで実行するといい。
例えばThreadPool.QueueUserWorkItemとか。
でも、別のスレッドからだとUIスレッドのコントロールに触ると例外が出てしまう。
そこで使うのがDispatcher.BeginInvokeで、UIスレッドにメソッドを送りつけるわけです。
0302デフォルトの名無しさん2010/11/04(木) 21:52:12
あきらめてSplash Windowをだしてごまかすとか。
WPFは簡単に出来たはず。
0303デフォルトの名無しさん2010/11/04(木) 22:07:53
>>300-302

即答ありがとうございました。

ThreadPool.QueueUserWorkItemでは STAスレッドではないということで
InvalidOperationExceptionが発生するということは
ググったり、自身で実行してみて理解していました。

自身に配置したコントロール(たとえばListBoxやTextBox)に対して
Dispatcher.BeginInvokeで非同期実行することはできていたので
Windowではなぜできないのか、悩んでおりました。

無理、という事が判明したのなら
アドバイス通り、スプラッシュやらプログレスの表示で回避するのが良策のようですね。
■ このスレッドは過去ログ倉庫に格納されています