WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part13at TECH
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part13 - 暇つぶし2ch1:デフォルトの名無しさん
12/04/13 15:53:23.55
ユーザーインターフェースシステム、Windows Presentation Frameworkについて語るスレ。

Visual Studio 2010
URLリンク(www.microsoft.com)
Microsoft .NET Framework 4 (Web インストーラー)
URLリンク(www.microsoft.com)
Microsoft .NET Framework 4 (スタンドアロンインストーラー)
URLリンク(www.microsoft.com)

前スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part12
スレリンク(tech板)

関連スレ
Microsoft Silverlight その9
スレリンク(tech板)

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
URLリンク(ideone.com)

2:デフォルトの名無しさん
12/04/13 15:53:41.93
過去スレ
Part11 スレリンク(tech板)
Part10 スレリンク(tech板)
Part9 スレリンク(tech板)
Part8 スレリンク(tech板)
Part7 スレリンク(tech板)
Part6 スレリンク(tech板)
Part5 スレリンク(tech板)
Part4 スレリンク(tech板)
Part3 スレリンク(tech板)
Part2 スレリンク(tech板)
Part1 スレリンク(tech板)

3:デフォルトの名無しさん
12/04/14 01:50:26.83
URLリンク(www.microsoft.com)
なんで4.0.3のアップデータって4.0本体より大きいんだろう

4:デフォルトの名無しさん
12/04/15 14:16:29.24
WPFは死にました

5:デフォルトの名無しさん
12/04/15 14:24:27.05
4.0.3で重要な修正ある?

6:デフォルトの名無しさん
12/04/15 19:13:14.39
ガベージコレクションの変更とか。

7:デフォルトの名無しさん
12/04/17 09:57:00.87
ARM版Windows8の名前Windows RTになるみたいだがややこしいな

8:デフォルトの名無しさん
12/04/17 11:30:39.02
コントロールのTemplateって部分的に書き換えるとかできないの・・?
できないなら、デフォ設定を引っ張ってくる記述ってないのかな。トリガーとか。

9:デフォルトの名無しさん
12/04/17 14:55:11.19
デザインモードでよくわからんエラーが出続けてて格闘してたが
プロジェクトクリーンで直った
.g.cs達の影響うけすぎ

10:デフォルトの名無しさん
12/04/17 20:20:31.91
>>8
「リソースに書きだす」だかなんだかいうのがあるだろ
同じコントロールでもvsとblendで書きだす内容が違うけどな

11:デフォルトの名無しさん
12/04/17 20:38:01.84
WindowのLoadedイベントにCommandをバインドしたくても
コード上でDataContext設定したんじゃイベント発生に間に合わないのな

12:デフォルトの名無しさん
12/04/17 21:36:31.25
イベントにはICommand型はバインドできんやろ?

13:デフォルトの名無しさん
12/04/18 01:37:24.96
MVVMはもう詰まったら逃げろが正解な気がしてきたぜ。頑張っても自己満足だしな。
そのケースなら、もうデリゲートとかで渡しちゃえよ的な・・

14:デフォルトの名無しさん
12/04/18 11:17:06.75
WindowsRTのデスクトップアプリってWPF使えないのかな

15:デフォルトの名無しさん
12/04/19 08:13:19.51
どっかで誰かが言ってたみたいに、ビヘイビアもメッセージもコマンドも使わないで
常にイベントハンドラからVMのメソッド呼ぶことにしたらほとんど悩むことがなくなった
もうこれでいいわ

16:デフォルトの名無しさん
12/04/19 12:40:18.25
SliderのValueをとある自前クラスのint型プロパティにBinding(OneWayToSource)しているんだけど、
スライダを動かした際にプロパティのsetに加えてgetも呼ばれてるのは仕様・・・?
実装の都合でgetのコストがちょっと大きいので、setだけにしたいんだけど

17:デフォルトの名無しさん
12/04/19 21:20:26.82
コマンドもメッセンジャーもインフラ構築しないと面倒くさすぎるからな
色々な機能をふやすと労力をMVVMじゃなくて機能面に注ぎたくなる

18:デフォルトの名無しさん
12/04/19 21:22:16.23
書いてないことは仕様じゃないし充てにしてもいけない

19:デフォルトの名無しさん
12/04/19 21:39:30.04
趣味のプログラムでも
ユニットテストやらなきゃいけない時代なんじゃないかなぁ
ビハインドで書くとまずテストできんでしょ

まあ、MVVMで書くのも、テストしないのも、同じくらいコスト高いけど

20:デフォルトの名無しさん
12/04/20 12:43:06.27
DataGridでe.Row.Getindex()をバインドさせて行番号を自動で振ってる場合に、
コレクションの追加、削除等をすると、ObservableCollection は変更があった行しか
CollectionChangedを発生させないからか、既存行の行番号が再付番されないのですが、
普通はどのようにしていますか?

ObservableCollection を継承してCollectionChangedを公開・・?
それかコレクション側に行番号を持つにしても、付番しなおさなきゃならないですし・・

21:デフォルトの名無しさん
12/04/20 15:58:21.24
OnCollectionChangedを公開する方法で上手くいきました。

22:デフォルトの名無しさん
12/04/21 11:19:38.98
>>19
ビヘイビアで書かれた複雑なスクリプトをデバッグするよりはコードビハインドの方がマシ

23:デフォルトの名無しさん
12/04/21 17:09:56.98
つきつめるとViewModelもいらんくね?ってなるけど。
ViewModelのコレクションはまじで煩わしい。

24:デフォルトの名無しさん
12/04/21 20:26:08.10
アプリの機能が増えてくると機能単位のVM作っておいたら割と便利だた
画面単位でVM作るのは本気でいらんと思ったわ

25:デフォルトの名無しさん
12/04/21 21:05:05.91
バインドだけ使えればいい

26:デフォルトの名無しさん
12/04/21 21:23:05.88
バインドが楽なところはバインドでそうじゃないところはコードビハインドが妥当
VM作る作らないは開発規模次第
Blendがある環境ならまだしもフルスクラッチなメッセンジャーやビヘイビアで作られたやつとか触りたくないわ

27:デフォルトの名無しさん
12/04/21 21:30:26.59
できるやつはそれでいいけど、ビヘイビアとかを完全にフリーダム?wにすると
カオスになりそう。デフォアクションが足らなすぎるんだよなぁ。コンバータとかも。

つか、よく読んでなかった。使わんでいいだろって話か。多分。

28:デフォルトの名無しさん
12/04/21 23:27:32.54
いろんな状態持ってたり複雑なロジックで導出される値があったりするならVM必要だけど
エンティティのプロパティをテキストボックスで編集できて
保存ボタンで保存できればいいだけの画面にVMなんかいらんわな

29:デフォルトの名無しさん
12/04/21 23:53:10.60
大切なのは一貫性だと思うが。
机にきれいに収まっていてもどこに何があるのか分からない部屋より、
乱雑に置かれているけどどこに何があるかすぐに分かる部屋のほうが良い。

30:デフォルトの名無しさん
12/04/22 07:42:34.18
俺は事務の仕事をしているのだが、
C#とWPFを使って、業務を高速化させているw

うちの会社のシステムはWebアプリ化しているから
自分で作ったアプリで、WebBrowser上で表示させて
HTMLDOMで情報抽出、自前でデータ管理しているから
仕事が速い。

仕事が出来る奴と思われてWPF様々ですよ。
周りの奴らは、俺がそんな自作ツールを使っている事は当然気づいていない。

31:デフォルトの名無しさん
12/04/22 07:45:45.55
有名なIT会社が作ったWebアプリで、
重要な項目には必ず、id属性がふられているので、GetElementByIdで簡単に取得。
データ加工したものは、Sqliteを使って保存している。
だから情報検索も早い。
仕事しながらツールを作るのが大変だったけど、作った後は激楽になった。
デバッグ環境が会社にしか当然ないからw 同僚に隠れてVS2010起動しながら作るのが一番大変だったw

C#たん、様様。

32:デフォルトの名無しさん
12/04/22 08:22:48.80
>>29
MVVMってビュー単位で閉じてるのが基本で、
VM持ってるかどうかは外から意識することじゃなくてビューごとの実装の詳細みたいなもんだろ?
そんなに大したことじゃないと思うが

33:デフォルトの名無しさん
12/04/22 10:26:27.93
>>31
よく隠れて作ったな。

そのうち使っているのがばれて、
皆が使い出して改造を頼まれてるようになり大変になったりてな・・・。

34:デフォルトの名無しさん
12/04/22 11:19:34.02
スクレイピングはいいよな
俺はPowerShellでやってるけど

35:デフォルトの名無しさん
12/04/22 13:13:35.51
>>30
仕事が速いだけじゃなくて正当に評価されると良いのにな。

36:デフォルトの名無しさん
12/04/22 13:50:55.08
調子こいてバレてシステム部門に異動で泣きを見るな・・・
趣味レベルだと面白いんだ。責任はないし逃げれるからな。

37:デフォルトの名無しさん
12/04/24 02:44:39.44
WPFの場合は、Forms.WebBrowserを使わないとdom操作できないよな。

38:デフォルトの名無しさん
12/04/25 01:20:29.81
dynamic使う

39:デフォルトの名無しさん
12/04/25 23:36:56.24
XAML系ってXAMLで書いたら静的になっちゃうよね?
なんつーかスタイルとかモーションとか。
その辺動的にゴニョゴニョ出来る仕組みってあるの?

40:デフォルトの名無しさん
12/04/25 23:58:34.99
トリガーはどうよ

41:デフォルトの名無しさん
12/04/26 10:44:13.33
なにを意図してるかよくわからんが・・・
cssのa:hoverみたいなのなら>>40とかテンプレート弄るなりできるし、
外部にリソースディクショナリ出しちゃえばcssみたいにスタイルは外に追いやれるが。

42:デフォルトの名無しさん
12/04/27 05:29:01.78
XAMLを使わないプログラムはやらないかなあ。
GWTとかMacでIB使わない開発してるからそっちのほうが
違和感がないんだが

43:デフォルトの名無しさん
12/04/27 07:36:25.45
>>40,41
ユーザーの設定とかでトランジションや何かした時のアニメーション動作を変えたり、全体的に文字を大きくするとかを動的に変えることが出来るのかなーと。
UIの階層構造にしても出来れば動的に変えたい。
いや、XAMLまだ触ったばかりでよく知らないので、こうすれば出来る的なのがあればぜひ教えてほしい・・・

44:デフォルトの名無しさん
12/04/27 10:47:53.05
>>43
文字サイズなら、包含継承っていう仕組みで親要素から子要素にプロパティが継承される
はずだから、最上位のGridとかだけ設定してやりゃ子は全部変わるはず。
そこのfontsizeにバインドなりさせりゃ動的に変更できる。(と思う。やったことない)

階層構造を動的にか。やったことないが、
0からコントロールをコードで追加していくってのはできるよな。
現実的には、ある程度部品纏めてユーザーコントロール作るとか。

45:デフォルトの名無しさん
12/04/27 10:48:54.63
普通にコードビハインド書けばいい
アニメーションでできることならできるだけXAMLでストーリーボードとして定義して
コードから開始させる

46:デフォルトの名無しさん
12/04/27 11:41:21.80
>>44.45
前アニメーションとかは使ってなかったんだけど、UIについては自分でゴリゴリ書いて動的にコントロール追加とかしてた。
いいたいのはXAMLで書くと不必要に静的にならんかということ。
うまく混在させればいいんだろうけれど、そもそもXAMLで書いたほうが幸せになるのか、動的な構造変化も出来るような独自のDSL作っちゃったほうが、幸せになるんじゃないかとか。
そもそものINotifyPropertyChangedとかの実装が醜すぎて嫌いというのがある。
XAMLでBinding楽に書けるよレベルのは自前DSL書いて楽にできるだろうし。
まぁそうするとBlend使えなくなったりとかもあるので痛し痒しなんだが・・・(;´Д`)

47:デフォルトの名無しさん
12/04/27 13:23:40.41
>>46
URLリンク(www.forest.impress.co.jp)

48:デフォルトの名無しさん
12/04/27 13:27:20.54
WinRTにデスクトップアプリという概念はない


49:デフォルトの名無しさん
12/04/27 14:02:19.97
XAMLを使わないと簡単にコントロールをラップするクラスが作れて本当に便利だ。

50:デフォルトの名無しさん
12/04/27 14:14:46.16
依存関係プロパティの定義とか、いちいち定義がダルいのをどうにかして欲しいな。
普通のプロパティに属性付けたら勝手になる感じでいいだろと。
コールバック?シラネ!

51:デフォルトの名無しさん
12/04/27 16:05:38.56
>>50
スニペット使うといいよ。
wpfdp とか wpfdpa とか idataerrinfo とかetc。

52:デフォルトの名無しさん
12/04/27 16:07:48.34
ここは自ら好んで苦難の道を行かんとする猛者多いな。

53:デフォルトの名無しさん
12/04/27 16:34:10.61
>>47
その仕組でILいじるのはありっちゃありだが、テストとかじゃなくてプロダクトコードにそれでやるのはちと怖い(;´Д`)

54:デフォルトの名無しさん
12/04/27 17:36:26.96
WP7などでバインディングがもっさりの現況とか言われてたことがあったけど、実際のところどうなんでしょう。
たしかに無駄な処理してそうな気がしますが・・・

55:デフォルトの名無しさん
12/04/27 18:26:15.33
それってバインディングじゃなくてレイアウトの再計算の方がボトルネックになってるんじゃないか

56:デフォルトの名無しさん
12/04/27 22:09:16.98
formsみたいにcanvas1枚の上にコントロール全部のぺって貼り付けたら早いんじゃね

57:デフォルトの名無しさん
12/04/28 00:54:23.07
Livet使ってるけど、参考になるサンプルが少ない。
難しいことはわからなくても大丈夫なように作ったんだろうに、
下手な解説資料よりサンプル増やしたほうがいいってことに気付け

58:デフォルトの名無しさん
12/04/28 01:15:36.69
携帯の画面ごときにレイアウトのコストなんてほとんどかからんやろ
デスクトップとは比べ物にならないくらい単純だぞ

59:デフォルトの名無しさん
12/04/28 13:58:31.29
久しぶりにAccess触ったらSQLにコントロール名入れたりとかすげえなw
そりゃこういうのに囲い込まれた連中がMVVMとかあんまりにもギャップがありすぎるわな

60:デフォルトの名無しさん
12/04/28 17:18:45.79
VBA7.0なめるなよ

61:デフォルトの名無しさん
12/04/28 22:44:38.33
>>57
最近はフォーラムでも幾つも使用例上がってんだから
サンプルなんて探せばゴロゴロあんだろ
それでも判んないならやりたいこと言えばいい

62:デフォルトの名無しさん
12/04/29 06:17:34.08
マイクロソフトは開発言語がC++とMFCだったころは強制的にフレームワークで
プログラミングをがんじがらめにしておいて、
NETになったら、すべてユーザー任せにした。これに対応できないユーザーがほとんどだった。
WPFになっても同じ失敗を路襲している。
WindowsFormsのリソースをどのようにしたら、WPFのアプリケーションに再利用できるのかぐらい
サンプルコードで提供できないのか?
これではプログラムのロジックの継承も断絶する。

63:デフォルトの名無しさん
12/04/29 06:19:46.94
おっさんは切り捨てる方針に決まりました
現在25歳以上の人はご愁傷様

64:デフォルトの名無しさん
12/04/29 07:12:18.26
>>62
MFCもそうだけどどうせ現場では出来る(興味のある)やつが
ひな形を作ってコピペする作業が始まるよ

65:デフォルトの名無しさん
12/04/29 08:04:47.62
偉そうに記事見つけたからLivetいれてみたけど
サンプルのUIが糞すぎてワロタw
疎結合だMVVMだと偉そうに語ってても
こんな糞UIしか作れないんじゃ意味ないな

66:デフォルトの名無しさん
12/04/29 08:29:28.80
Messenger.Raise(new TransitionMessage(new MemberViewModel(new Member(_model),this), "Transition"));
なんだこれ分けわかんなさすぎるぞ
ここまでしなきゃだめなのかって

67:デフォルトの名無しさん
12/04/29 08:50:20.01
>>65

Viewの部分の見た目とかはLivetと関係ない部分だろ

>>66

Livetのソース公開してるから見たらいい

new MemberViewModel(new Member(_model),this), "Transition"

の部分は、その例で、たまたまそうなってるだけであってLivetと直接関係ない。
わざわざMessenger.Raiseの中で3回もnewが出す必要はなく
サンプルのコードが悪いとしか言えない

URLリンク(ugaya40.net)
このページのいくつかの使用例と、あとはLivetのソース追っていけば
後は動かしながら試していくと一応なんとかなる

しかしドキュメント整備するとか言ってて、結果が何もないまま1年間経っちまったなw
なんとかして欲しいわ

68:デフォルトの名無しさん
12/04/29 09:29:01.02
使えないことが露呈するからサンプル作れないんだよ

69:デフォルトの名無しさん
12/04/29 09:38:01.57
見た目関係ないないなら、Livet、強いてはMVVMパターンさえいらない
Livetだからこんなことができますって表現がほしいね
てか、WPFのアイコン化とかコードビハインドなしでできるの?

ソース見なきゃコード書けないって、そもそもそういう設計ってどうなのよ?
疎結合とか言っておきながら、ライブラリのソース見なきゃ使えないっておかしくないか?

ViewModelHelper.BindNotifyChanged
ReadOnlyNotificationDispatcherCollection<MemberViewModel> Members
DispatcherHelper.UIDispatcher

あとこれなんだよ、この長ったらしいの
わけわかんないコード自動で書くんじゃねーよ

とにかくさ、MVVMができるのかなんか知らないけど
初心者お断りって書いて欲しかったわ
アンインスコ決定

70:デフォルトの名無しさん
12/04/29 09:46:36.37
あーあとさ、Win32APIを使う場合、一体MVVM的にどこにコード書くのさ?
それもLivet使えばxamlで書けるの?無理なんだろ?

この作者のMVVMの説明みたけど、WinFormではTreeViewで子ノードにチェックできないとか
書いてたけど、それぐらいカスタムコントロール作ればできるだろ
去年の年末以降、ぴたりと開発止まっちゃったみたいだけどもう投げ出したのかね
バグも多いみたいだしさー、他人のライブラリにバグがあるのが一番致命的なんだよ

71:デフォルトの名無しさん
12/04/29 10:13:13.25
<l:DirectInteractionMessage CallbackCommand="{Binding RemoveCommand}">
あとこれだよ、削除するときの確認ダイアログにメッセージを表示する機能があるか
どうかなんてどうやってV側でわかるんだって話よね
Removeって打っても、インテリセンス働かないしさw
VMがどんなプロパティを公開しているかすらわかんねーじゃん
結局V側がVMの内部実装を見て判断することになるわけで
だったら、VMでダイアログ出したほうが早いだろって話だよ

Vから作ったとしても一緒だよな
RemoveComandつけたから、VMで実装しようと考えるわけで
結局、VとVMどちらがわもソース見なきゃ書けないわけだろ
構造的に分離されてても、作業分担できないってことじゃん
しかも個人でやっている人間からすると無駄でしか無い

72:デフォルトの名無しさん
12/04/29 10:51:44.38
MVVMでどうやってゲーム作るんだ?
VMに依存しないで書けるんだよな?
スカイリムのようなゲームをMVVM+Livetで作ったサンプルを公開してほしいね

73:デフォルトの名無しさん
12/04/29 10:56:48.68
一つのフレームワークで業務アプリからゲームまでなんでも対応できると思っている奴

74:デフォルトの名無しさん
12/04/29 11:16:14.79
俺はもうlivetとかを使わずに自作の使ってるわ

75:デフォルトの名無しさん
12/04/29 11:21:21.58
>>73
なんでも対応できるように書いてたからね
Livet最強、他では無理
みたいなことばっかり書いてたくせに
何もできないじゃないか

MVVM以前にそもそもLivetに依存しているだろとw
Livetなければできないようなパターンを学習する意味あるのかって話
いつ投げ出すのかわからないようなライブラリに依存したコードを書くほうが
VとVMが依存したコードを書くよりも恐ろしい

76:デフォルトの名無しさん
12/04/29 11:31:18.94
ものすごくゆとりだなあ
問題をはき違いえているようにしか思えない
あとlivetをつかったそこそこ大きいソフトはKrileがある

77:デフォルトの名無しさん
12/04/29 11:54:00.40
銀の弾丸探しに労力かけるアホがいたのか

78:デフォルトの名無しさん
12/04/29 12:49:47.77
ソースもサンプルもドキュメントも、少し集中してLivetの作業やれよ、っという外野の声は多数。

79:デフォルトの名無しさん
12/04/29 13:22:07.13
>>76
ゆとりでも使えるものとして作ってるんじゃねーの?
あと、そこそこ大きいとかじゃなくて、小さいサンプルをくれと言ってる
ReadOnlyNotificationDispatcherCollectionでぐぐってもろくにサンプル出てこないだろ

80:デフォルトの名無しさん
12/04/29 13:28:46.19
ライブラリを提供する側としては、使ってもらうためには単純だけど網羅的なサンプルとか必要だからなー。

81:デフォルトの名無しさん
12/04/29 14:07:18.71
メッセージにstring使ってtypoする危険犯すくらいなら
enum使うようにデザインすればいいのにね
生産性に寄与してない

82:デフォルトの名無しさん
12/04/29 15:59:23.97
MVVMでゲームか。速度出なさそうだな・・
Messengerでオブジェクト出して座標をバインドとかだろうか・・・
一般的?なBBに全部自力描画でフリップ的な仕組みだと、どうやりゃいいか想像も付かんな。

83:デフォルトの名無しさん
12/04/29 16:09:15.87
LivetじゃなくてMVVM Light ToolkitとかSimple MVVM Toolkiとかどうなの
Simple MVVM Toolkitが特にきれいにまとまってていい感じなんだが

84:デフォルトの名無しさん
12/04/29 17:01:41.78
MVVM Light Toolkitこれはだめだわ糞すぎ

85:デフォルトの名無しさん
12/04/30 06:32:04.01
外人のサンプルみたら、MVVMどころか
ViewModelクラスすらなく、イベントハンドラにベタ書きしてた

86:デフォルトの名無しさん
12/04/30 06:33:53.39
>>85
それでいいんじゃね?
慣れてくればMVVMのお作法使ったほうが自分で面倒見ないと
いけないコード量が減らせるのでこっちがいいやって感じるんだけどさ

87:デフォルトの名無しさん
12/04/30 07:16:15.95
>>85
なんのためのサンプルかによるよな。
サンプルプログラムレベルだと冗長に感じるだろうし

88:デフォルトの名無しさん
12/04/30 07:18:02.64
動的にコントロールのインスタンスを作成するとき、
そのコントロールのイベントハンドも動的に追加するだけで、
柔軟性のあるコントロールが利用できる。
カスタムコントロールなんて作るだけ骨が折れるだけで拡張性がない。
所詮プログラミングはイベントハンドラを使うしかないのだ。


89:デフォルトの名無しさん
12/04/30 08:22:17.94
>>87
ゲームプログラマだから相当な実力だと思うんだが

90:デフォルトの名無しさん
12/04/30 08:23:27.51
>>89
それだったら「ゲームでMVVMなんて使えるか!」じゃないの?

91:デフォルトの名無しさん
12/04/30 08:26:39.33
そうかもしれん
素人がメモリリークやVとVMの分離を意識するだけ無駄だな

92:デフォルトの名無しさん
12/04/30 08:26:45.55
MVVMどころか、WPF使わないわな
リアルタイム系のシューティングやアクションとかだったら

カードゲームとかのんびり系ならいいけど

93:デフォルトの名無しさん
12/04/30 11:11:05.28
荒れてんなぁ。
U氏の我こそがMVVM教の祖である的な物言いが鼻に突くのに成果物があれだから叩かれやすいんだろう。
Livetは禁止ワードにしたらどうだろうw

あと、ゲームでMVVMなら、bubbleburstがあるだろ。
URLリンク(bubbleburst.codeplex.com)


94:デフォルトの名無しさん
12/04/30 11:15:36.42
今のところオナニーコードや意味不明な文章を垂れ流してTwitterで騒いでるだけだからな

95:デフォルトの名無しさん
12/04/30 11:27:40.85
コードから伝わってくる神経質なデザインがコーディングしてていらいらする
各所での回答も冗長で的外れ、なんか統失っぽい

96:デフォルトの名無しさん
12/04/30 11:57:14.51
>>94-95
いい加減よそでやれ

97:デフォルトの名無しさん
12/05/01 22:34:04.91
みんなVMからDispatcher使いたいときどうしてる?

98:デフォルトの名無しさん
12/05/01 22:42:21.00
Vのインスタンスを渡すとか

99:デフォルトの名無しさん
12/05/02 01:22:23.37
最初にUIスレッドで初期化させてDispatcher.CurrentDispatcher

100:デフォルトの名無しさん
12/05/02 03:35:58.63
そのDispatcherは持ったまま後で使いまわしてもいい・・・よね?

101:デフォルトの名無しさん
12/05/02 03:43:06.20
VMをdispatcherobjectにするのはダメなの

102:デフォルトの名無しさん
12/05/02 07:41:58.93
LivetのDispatcherHelper.UIDispathcerとかも、
まさに99みたいにCurrentDispatcher取得しといて
それを100のように使いまわしてるだけだしね

101のはちょっと違うと思う

103:デフォルトの名無しさん
12/05/02 08:10:34.78
System.Windows.Application.Current.MainWindow.Dispatcher

を使うってのは何か問題ある?

104:デフォルトの名無しさん
12/05/02 08:24:24.74
あれこれいじるとVMの単体テストができなくなるから
VにCheckAccess入れたほうがいいんじゃないかな

105:デフォルトの名無しさん
12/05/02 08:26:58.69
>>103
MainWindowの意味が分からん

106:デフォルトの名無しさん
12/05/02 10:16:21.70
確かに意味不明だな。
System.Windows.Application.Current.Windows から画面探せばいんじゃね。

107:デフォルトの名無しさん
12/05/02 10:53:39.63
App.CurrentとApplication.Currentどっち使う?

108:デフォルトの名無しさん
12/05/02 11:48:35.84
単体テスト的にはVMにUIのDispatcherを渡すって感じだろうな。
単体テスト時には適当なDispatcherを渡すと。

109:デフォルトの名無しさん
12/05/02 12:46:52.64
マウスジェスチャの機能を付ける予定だけど
WPFだけでできる?Win32API使わないと無理なら
素直にWinFormでやるけど

110:デフォルトの名無しさん
12/05/02 13:00:55.28
mousemoveイベントは拾えて座標も取れるから
やれば出来る

111:デフォルトの名無しさん
12/05/02 21:14:27.03
>>105-106
意味分からんと言われても。

URLリンク(msdn.microsoft.com)
アプリケーションのメインウィンドウを取得または設定します。


112:デフォルトの名無しさん
12/05/03 00:41:26.57
>>111
105は極めて妥当な指摘。106はよく分からんが、乗っかってボケてみただけとか?

>>103
V以外でPresentationFramework.dllなんか参照したくないから問題
まあ、Task使う方が普通だからDispather自体いらないけどな

113:デフォルトの名無しさん
12/05/03 01:04:50.81
WPFも触りたてだけど、ちかぢかMetroにも手を出さないといけないんだが、ICommandとかMetroというかWinRTだとどうなるん?
要はWPFでやってたようなBindingとかCommandとかMetroでも同じようにあるんだろうが、元の名前空間とか変わってるよねというかいまだに.NETとWinRTの関係がわからん。
MetroアプリをC#で書くとき、言語バインディングがどうたらで.NETに大して書くようにWinRTのAPI呼び出せるよとは聞いたけれど、その時は.NETのクラスは呼び出せない?
それともSilverlightみたいにWinRT用のCoreな.NETライブラリーがあってそれだけは呼び出せる?
その時はICommandとかどこに定義されてんのよ、別の場所だったらICommandとかを使うようなViewModelのWPFとの共通化はバイナリレベルでは絶望的でソースレベルならなんとかなるかもってことかい?

114:デフォルトの名無しさん
12/05/03 01:08:01.87
どちらかにしかないコントロールを使ってなきゃXAML部分は使いまわせる、程度に考えていたほうが

115:デフォルトの名無しさん
12/05/03 01:09:37.90
とおもてたら、ちょっとググったら答えっぽいのみつかた('A`)
URLリンク(ufcpp.wordpress.com)

んーICommandとか使ってるViewModelとかはソースレベルでdef切らないと共通化はできんのかしら・・・(;´Д`)

116:デフォルトの名無しさん
12/05/03 01:12:31.31
>>114
ん、XAMLの方は言われてるように、独自コントロール使ってなければ使い回せそうです。
でもタッチとか含めて色々違うから、共通にする部品と、それを組み上げた独自のものとの組み合わせですかね。

むしろModel、ViewModel的なものをどこまで共通化出来るのかに関心が。
上のリンクにあるようにPortableLibrary使ってればかなり共通化できそうなのかしら・・・

117:デフォルトの名無しさん
12/05/03 01:22:28.36
リンクのパワポで大体疑問点解消。
やっぱり名前空間の違い、何かしらで吸収しないとダメなのね・・・

F#でpartial使えないのに(-_-;)

118:デフォルトの名無しさん
12/05/03 01:41:01.96
プログラミング初心者がWPFから始めるのは無謀ですか?
簡単だと書いていたのでLivetを入れたのですが
メモリリークとかよくわからない単語がたくさん出てきてびびってます

最初はコンソールアプリからしたほうがいいのかな?

119:デフォルトの名無しさん
12/05/03 01:53:17.15
コンソールまで戻らなくてもいいけどmvvmは止めといたほうがいいと思うよ
直感的じゃないから

120:デフォルトの名無しさん
12/05/03 02:01:43.59
デザイナにボタン配置してイベントにコード書くとかなら
別にWindowsFormと変わらんしWPFからでも問題ないと思わなくもない

121:デフォルトの名無しさん
12/05/03 02:26:17.86
しかし、ブログにはコードビハインドにコードを直接書くことや
イベントドリブン型のコードを書くとメモリリークが発生すると書いてます
メモリリークしているかどうか判断する方法すらわからない初心者なのですが
やっぱり気になります
C#はC++と比べてメモリリークが発生しづらいと聞いていたのに
WPFだと違うんでしょうか?
そんなに重大なメモリリークなんでしょうか?

122:デフォルトの名無しさん
12/05/03 02:28:40.22
u氏の解説は誘導じみた書き方をするから胸糞悪い
鵜呑みにしないほうがいい

123:デフォルトの名無しさん
12/05/03 02:32:53.08
window1からwindow2を参照して
window2からもwindow1を参照したらリークする

ふつうは別に考えなくてもいいよ。どうせプロセス落としたら解放されるもの。
だいたいそんなこと言い出すやつに限って
もっと重要なリソースリークについて何も言及してないでしょ

124:デフォルトの名無しさん
12/05/03 02:39:05.91
>>123
それって結構使いそうな感じですが、
window2にはデリゲートやイベントを作るとか
window1からwindow2を作らないで
VMから作るようにすればいいということでしょうか?

初心者がきにするようなことじゃなさそうなので、ほっとしました

125:デフォルトの名無しさん
12/05/03 02:43:08.36
window2を呼ぶときに必要な情報を全部渡してwindow1にはアクセスさせない
どうしても2窓使いたいなら死ぬ時は全部後始末する
そんなとこかな

126:デフォルトの名無しさん
12/05/03 03:37:45.90
なるほど、それならなんとかできそうだ
ありがとうございます

127:デフォルトの名無しさん
12/05/03 09:17:16.16
>>123
これってなんでガベコレ効かずリークになっちゃうん?
何処かに詳しく書いてるのとかある?

128:デフォルトの名無しさん
12/05/03 10:26:11.36
参照カウント方式だと循環参照でリークするが
.NETのGCはマークアンドスイープだからリークはしない
WPFでリークが問題になる(と例の教祖が主張しておられる)のは寿命が長いモデルのイベントをVやVMで受けるパターンだが
不用になるときにイベントハンドラを忘れずに外してやれば問題ない
ていうかそれWPF全く関係なくて普通にWinFormsでもありうること

129:デフォルトの名無しさん
12/05/03 10:40:32.71
>>128さんのmvvmライブラリがほしい

130:デフォルトの名無しさん
12/05/03 10:47:32.53
エディターコントロールを自作しようと思うんだがScrollViewer要素の内側に直接描く方法がわからない
AvalonEditだとScrollViewerの子要素にControlクラスを継承したクラスを置くような格好になってるんだが、それだとどうも気持ち悪い
URLリンク(www.codeproject.com)
かといって、OnRenderで描くとスクロールバーも破壊されてしまうので好ましくない
AvalonEditが行っている方法以外でスクロールバーなどの要素を破壊せずに直接描く方法があったら教えてほしい

131:デフォルトの名無しさん
12/05/03 10:58:57.62
訂正
×かといって、OnRenderで描くとボーダ要素で描かれた枠線に隠れてしまうので好ましくない

追記
XAMLはこういう風になってる
URLリンク(codepad.org)

132:デフォルトの名無しさん
12/05/03 11:09:16.14
>>128
それはWPFとかがウィンドウ同士の絡みではハンドルとかの関係で参照カウント的になってるってこと?
寿命の長いモデルのイベントが-ってのはマーク安堵スィープでも一緒だよね。

133:デフォルトの名無しさん
12/05/03 12:17:15.85
>>123が間違ってるだけ

134:デフォルトの名無しさん
12/05/03 12:35:25.20
間違ってないよ
君らtextboxのイベントがどうとかって絶対やるじゃん
それでリークしてるかしてないか試してみ

135:デフォルトの名無しさん
12/05/03 12:55:37.25
コードビハインドでダイアログ表示しただけでもリークすると書いてたぞ

136:デフォルトの名無しさん
12/05/03 13:03:56.15
循環参照によるリークじゃなくて、
window1から2を起動して2が閉じられた後も1が2の参照握ってたら2がリークするとかそういう話か?
2のイベントに1のイベントハンドラを登録するのは問題ない
逆の場合は片付けないとリークするがあまりそんなことはしないし
そもそもWPFもMVVMも全く関係ない話

137:デフォルトの名無しさん
12/05/03 13:15:29.91
Livetの場合、VとVM間でリークが起きるという話だったよね

138:デフォルトの名無しさん
12/05/03 13:17:56.64
それはVMからVに通知するときの話だろ
コードビハインドは直接関係ないぞ

139:デフォルトの名無しさん
12/05/03 13:20:44.73
まあなんにせよ自分で確かめりゃいいよ
10Mだか100Mだかの配列作って強制GCして
タスクマネージャーからみりゃすぐわかるさ

140:デフォルトの名無しさん
12/05/03 13:26:15.80
結局問題はVMからVへの通知だろ?(MからVMはこの際関係無いので)
VMからの通知(メッセージ)をVのコードビハインドで簡単に受信できて参照を適切に管理する仕組みさえ用意すればいいわけだな
V→VMはコマンドは使わずイベントハンドラからVMのメソッドを呼び出す
ビヘイビアは使わずイベントハンドラ
これでかなりとっつきやすくなるんじゃないか

141:デフォルトの名無しさん
12/05/03 13:31:25.65
俺はメッセージ集中管理クラス作って
自分を呼んでほしいところは自分で管理クラスに登録するように作ったよ
weakなんとか使えば勝手に落ちるはずだし
windowまたがろうが何個window出そうが単体テストだろうが大丈夫

142:デフォルトの名無しさん
12/05/03 13:35:23.59
今後WPFからイベントハンドラは消える
Livetのようにコマンドだけでやっていくようになる

143:デフォルトの名無しさん
12/05/03 13:36:35.22
>>140
イベント使うとリークする

144:デフォルトの名無しさん
12/05/03 13:36:45.74
イベントが消えたらビヘイビアはどうやって実装するんだ?
コントロールが直接ビヘイビアをサポートするなら結局仕組み的にはイベントと変わらんぞ?w

145:デフォルトの名無しさん
12/05/03 13:49:37.37
よく知らんけどBindingとかでコマンドなりイベントなりプロパティなりつなぐと結果的に相互参照になってModelが生きてるとずっと残っちゃうって感じなんじゃね。

146:デフォルトの名無しさん
12/05/03 13:51:19.70
>>130
なんで性能最悪・拡張性皆無な方法を取ろうとするのかなぁ・・・

147:デフォルトの名無しさん
12/05/03 14:03:20.93
GDI脳だな
OnRenderがOnPaintの代わりになると勘違いしてんだろ

148:デフォルトの名無しさん
12/05/03 14:14:18.18
こうして、もっさりテキストエディタは完成し、>>130

「WPFは遅すぎてつかえねぇ」
と吐くのであった。

おわり。

149:デフォルトの名無しさん
12/05/03 14:15:21.63
OnRenderはDrawingVisual置いてその中に図形登録してるのとほぼ同じだからな
毛嫌いするもんでもないがOnPaintの代わりでは決してない

150:デフォルトの名無しさん
12/05/03 14:59:26.19
お前ら詳しそうだな。ずーっとasp.netしかやってなかったしブチギレそうです!
困ったらJSゴリゴリみたいなことできないし・・・。いやそれがコードビハインドか。

151:デフォルトの名無しさん
12/05/03 15:51:28.47
実際やろうとしたらむずかしい
テキストボックスはカレットの行桁取得表示しようとするだけでひどいことになる

まあVSと同じように1文字ずつ置いていくのが妥当なんだろうけど
フルスクラッチになる支那
お仕事じゃない限り手を出さないほうが無難

152:130
12/05/03 17:23:40.62
>>146
WPF的にはそういう方法取らないのか
ということはavaloneditorみたいなやり方が一番いいということ?
自作コントロールの中にさらに自作のコントロールがあってその中にModelとViewとControllerがあるのはすごく気持ち悪いんだが…

>>151
実はWinFormのほうはできている
あとはMVCの部分を取り込んでレタリング関連のインターフェイスを実装すればおしまい


153:デフォルトの名無しさん
12/05/03 17:29:57.23
>>151
>テキストボックスはカレットの行桁取得表示しようとするだけでひどいことになる
Uniscribeは低レベルAPI使うしかないからもうそれはひどいことになるけど、
DirectWriteを使えばキャレット関連はメソッド一個呼び出すだけで終わる


154:デフォルトの名無しさん
12/05/03 18:31:22.35
2600Kの石かって、プログラミングしているけど、
ほんとCPUって劇的に早くなったな。
前のCPUだとWPF開発は重すぎてダメだったけど、2600Kだとどんなに重い処理をしても
CPU使用率5~10%で済んじゃうからな
特にRibbonのUI作るのが楽になった
結構Ribbonって重いんだよ

155:デフォルトの名無しさん
12/05/03 18:51:05.40
メモリリークなんて常駐アプリでもなけりゃ無視だわ

156:デフォルトの名無しさん
12/05/03 19:15:32.89
ユーザーが使うもの作る立場でそんなセリフが言えるなら大したもんだ(´・ω・`)

157:デフォルトの名無しさん
12/05/03 20:19:07.47
>>152
> ということはavaloneditorみたいなやり方が一番いいということ?
一番良いというか、教科書的な作りだな。AvalonEditは。
最適化に不足はあるかもしれないが、WPF的におかしな方法ではない。

158:130
12/05/03 20:26:45.74
>>157
なるほど…
それが普通の作り方なのか


159:デフォルトの名無しさん
12/05/03 20:29:01.50
VS IDEはWPFで作られているんですよね?
つまり、最低でもVSと同じぐらいのものは作れるってことですよね?
C++など使わずとも

160:デフォルトの名無しさん
12/05/03 21:33:27.63
WPFかも試練がMVVMだとは言ってない品。

161:デフォルトの名無しさん
12/05/03 21:46:58.92
>>159
極端な話をすれば、好きな時に好きな場所に好きな図形が描けて入力が拾えればGUIの下地としては十分なの
VSほどの規模になるとGUIにじゃんじゃんコストかけても全体から見ると大したことないわけよ
VSは独自に巨大なGUIフレームワークを構築してその最下層にWPFがあるような形で
そもそもあんまりWPF関係ないの

162:デフォルトの名無しさん
12/05/03 22:04:58.60
>>161
ゲーム画面みたいなもんか

163:デフォルトの名無しさん
12/05/03 22:15:02.21
>>162
それはWPF自体にも言えることだぞ
Direct3Dを使ったゲームと全く同じ

164:デフォルトの名無しさん
12/05/03 22:18:50.24
OSの仕組が変わって従来の2D表示もあれだしな

165:デフォルトの名無しさん
12/05/04 01:05:13.57
>>161
上に独自のフレームワーク乗っけてようがWPFである事は間違いないだろ。

MVVMであるのかは知らんが。

ただ何処までWPFなのかは知りたいんだが全部そうなん?


166:デフォルトの名無しさん
12/05/04 01:13:08.33
VSがMVVMなら、MVVMサンプルとしてソース公開してくれ。凄くありがたい!

167:デフォルトの名無しさん
12/05/04 01:43:31.04
ダイアログとかでMVVMに近いのはあるけど例の宗派のMVVMとはかなり違うよ
逆コンパイルすれば見れるけどカスタマイズされすぎて参考にならん

168:デフォルトの名無しさん
12/05/04 01:54:54.55
逆コンパイルって中間コードをILで見るのと違って
ソースコードに近い状態で見れる方法あるの?

169:デフォルトの名無しさん
12/05/04 02:05:18.18
>>168
ネイティブコードは無理じゃないかな?
アセンブラまでだと思う

.netの場合はいろいろ情報が入ってるので
難読化をほどこしてなければほとんどもとの状態になる

170:デフォルトの名無しさん
12/05/04 13:15:12.47
MVVMって話出るたびいつも揉めますね

171:デフォルトの名無しさん
12/05/04 13:16:40.61
別にバインドするとこだけViewModel用意しとけば事足りる話なのにね。
何か皆考えすぎてないだろうか?

172:デフォルトの名無しさん
12/05/04 13:40:08.34
データバインドは誰でもやるとは思うが、コマンドバインディングは労が多い割りに益が少ないんだよね
それと全てのイベントをバインドしようと思ったら怪しいライブラリのお世話にならないと行けないのがな

173:デフォルトの名無しさん
12/05/04 13:44:24.30
ボタン2つしかないソフトならそりゃいらないだろ

174:デフォルトの名無しさん
12/05/04 14:00:44.19
特に荒れるのは、プレゼンテーションモデル以外のモデルへ話が及んだときかな?

175:デフォルトの名無しさん
12/05/04 15:33:38.07
というか、そろそろマトモなWPFアプリが出てきてくれてもいいんじゃないかと。
やっぱ起爆剤として2ちゃんねるブラウザが一番良いかと。
JaneStyleなんて90年代のテクノロジーですよ・・・いつまで使ってんのと?

176:デフォルトの名無しさん
12/05/04 16:17:03.12
小規模なアプリなら作ったけどね

参考までに
1)mvvmまでいかなくてもコマンドパターンにしとけばテストコードは書ける
2)インストーラーはノウハウないとアプリもう一本作るくらいしんどい
3)ファイルやフォルダや色やフォントの各種ダイアログは用意しとかないとそこで詰まる

177:デフォルトの名無しさん
12/05/04 16:19:56.97
2chブラウザならコマンドパターンだろうなあ
シェルにLivet教系のMVVMを適用しても間違いなく余計に複雑になるだろう

178:デフォルトの名無しさん
12/05/04 16:48:50.17
2chブラウザほどコマンドが多くなるとメインウィンドウのVMにICommand並べるわけにもいかないから
動的にコマンドを登録してグローバルに管理するような仕組みにした方がいいか
MVVMはダイアログに使う程度だな

179:デフォルトの名無しさん
12/05/04 16:55:02.41
>>175
スマホやタブレット向けであるじゃん
そういうことだよ

180:デフォルトの名無しさん
12/05/04 16:56:09.79
<Sale>中国語版の書籍<IT|3D|NN|理系|上古漢語などなど>(格安) 280円より
http◎lang-8○com/194279/journals/1457398/

181:デフォルトの名無しさん
12/05/04 17:02:26.07
2chへのアクセス方法がすでに時代遅れだしなあ
datを差分取得()

182:デフォルトの名無しさん
12/05/04 17:06:30.63
新しいプラットフォームならともかく、デスクトップ向けで今から作るならまずは
膨大な機能を持つ既存のブラウザに追い付かないといけないわけで、全くやる気がしないな
WPFと関係ないところでの車輪の再発明にアホみたいに時間がかかる

183:デフォルトの名無しさん
12/05/04 17:19:54.46
2chブラウザって簡単そうに見えるけど、実際作ると大変なんだよなw
iPhoneレベルのものなら何とかなるけど、デスクトップアプリだと難儀で大変。
だから、Jane以来、まともなソフトが出てこない。

184:デフォルトの名無しさん
12/05/04 17:33:37.12
だいたいJaneは個人じゃないしな。
燃料がもらえるとこと機能(シェア?)争いしても不毛すぎるw

185:デフォルトの名無しさん
12/05/04 17:39:53.32
2ch の API がうんこちんちんなのが悪い

186:デフォルトの名無しさん
12/05/04 19:51:32.00
スレ表示にブラウザコンポーネント使ってるやつが山ほどあるけど
WPFで作れと言ってる人は、そういうのは2chブラウザとして認めないのだろうかという疑問。

187:デフォルトの名無しさん
12/05/04 19:52:25.13
プレゼンテーションモデルとバインディングによるUIの構築、っていう点については疑問の余地もあまり無いと思うんだけどなあ。

Triggerとか部品が足りないとか、単純じゃない個別ケースでのビューモデルの構造をどうすべきかとか、
WPFと関係ない部分をどう設計してビューモデルと連携させるのかとか、そういう事で考えることはあっても。

188:デフォルトの名無しさん
12/05/04 20:02:05.60
>>186
スレタイ

189:デフォルトの名無しさん
12/05/04 20:04:38.70
webbrawser使ってるのは認めても
複数レス選択できないlistboxは絶対認めないのは火を見るより明らかだな

190:デフォルトの名無しさん
12/05/04 20:52:16.82
MVVMを使った2chブラウザを見てみたい
というか新世代の2chブラウザを使いたい

191:デフォルトの名無しさん
12/05/04 21:24:21.10
C#スレの惨状見てると2chブラウザなんて誰も作る気にならないと思うけど

192:デフォルトの名無しさん
12/05/04 21:39:28.83
WPFは悪いものじゃなく、逆に使い次第では化けるFWなんだけどな。
気難しいから誰も近づからないという可哀想な子。根は優しいんだけどね。

193:デフォルトの名無しさん
12/05/04 21:43:30.55
そんなことを言い出したら
>好きな時に好きな場所に好きな図形が描けて入力が拾えればGUIの下地としては十分
だからな
VSやBlendみたいに莫大な金かけて凄いもの作れても意味がない

194:デフォルトの名無しさん
12/05/04 21:47:07.81
>>192
クラウドガールみたいにプレゼンテーションガール作ればいいんだよ

195:デフォルトの名無しさん
12/05/04 22:07:32.99
クラウドみたいにフワフワしてるからなぁ。
誰もこれぞwpf!って像がはっきりと言えないと思うw

196:デフォルトの名無しさん
12/05/04 22:11:21.09
化けさせたら意味ないんだよね
標準的なレールに沿った使い方で手間を書けずにそこそこのものが作れないとフレームワークとしては失格

197:デフォルトの名無しさん
12/05/04 22:24:40.71
画面デザインに別アプリ買えとか寝言こいてる内は普及しないだろう
ツール習得コストもタダやないんやで

198:デフォルトの名無しさん
12/05/04 22:33:54.59
WPFで2chブラウザとか言ってる奴はさっさと自分で作れよ。
お前がやらなきゃ2chユーザーの為にタダ働きなんて誰もしないぞ。

199:デフォルトの名無しさん
12/05/04 22:38:57.81
化けさせなきゃいけないのは目に見えてるからなあ
だったらどうせWPF使う意味ないからスレッド表示部分は最初からDirect3D使ってフルスクラッチしたほうが賢い気がする

200:デフォルトの名無しさん
12/05/04 22:57:51.35
WindowsPhone7用の2chブラウザがあるじゃん
正確にはWPFじゃないけど、似たようなもんだろ

あれをみて「コレじゃない・・・」と思うなら、それはWPFに幻想を抱いてるだけだ

201:デフォルトの名無しさん
12/05/04 23:03:46.80
WPFを使ってない人ほど、映画の中のような突拍子もないUIを想像してるよな。

実際に作られてるのはWinForms+αなUIでしかないのに。
(ただし、αの部分がWinFormsでは実装しにくいので戻れない。)

202:デフォルトの名無しさん
12/05/04 23:06:39.50
まあでも今からWPFで作るなら、
ビジュアルを最前面に押し出してネタ方面に走るくらいしか価値はないんじゃないかな実際w

203:デフォルトの名無しさん
12/05/04 23:20:52.78
でも、今がチャンスだと思うよ。
誰も新世代の2ちゃんブラウザを作ってないのだから。
一攫千金のチャンス。
人気が出れば、●収入やアフェリエイト収入が出来て
年収1000万も夢じゃないっすよ。

204:デフォルトの名無しさん
12/05/04 23:50:59.49
そう思うなら1000万払って誰かに作ってもらえばいいじゃないか。

205:デフォルトの名無しさん
12/05/04 23:51:48.77
夢がショボすぎてワロタ

206:デフォルトの名無しさん
12/05/05 00:08:39.39
WPF製のテキストエディタすらないんだから無理だろう
てかパソコン自体もう人気ない

207:デフォルトの名無しさん
12/05/05 00:26:56.01
商用製品ならある
個人で片手間に作れるレベルじゃないがな

208:デフォルトの名無しさん
12/05/05 00:40:40.93
WPFで2chブラウザ作っているところだけど、個人用に作るのが限界
汎用的に作ろうとしたら機能が多すぎる
一番の難問はセキュリティ、素人じゃだめだ

209:デフォルトの名無しさん
12/05/05 00:59:35.97
2chは無駄機能が複雑すぎる

210:デフォルトの名無しさん
12/05/05 01:51:48.63
皆が作れないからこそ、完成させた時にはお金がたくさん入ってくる。
Win8時代でもXAML+C#は現役だからな。作る価値はある。

211:デフォルトの名無しさん
12/05/05 02:06:26.57
金払ってまでブラウザ欲しがるとは思わないが

212:デフォルトの名無しさん
12/05/05 03:06:40.42
まぁ儲かると思うならやりゃいいんだ。なにも金儲けのネタ晒すこたないだろw

213:デフォルトの名無しさん
12/05/05 04:33:19.59
そもそもソフト作って儲けるとかいつの時代だよ…

214:デフォルトの名無しさん
12/05/05 14:10:37.40
カスタムコントロールの初期化ってどこですればいいの?
カスタムコントロールのデザインの仕方とかはMSDNに載ってるんだが、これだけはくぐってもわからなかった


215:デフォルトの名無しさん
12/05/05 14:26:25.74
自分のプロパティを設定するだけならコンストラクタで構わない
プロパティの値を読み取る必要がある(レイアウトに依存してたりバインドされてたりするとき)ならLoadedイベント
WinFormsならOnLoadメソッドをオーバーライドするところだが、
LoadedはルーティングイベントだからOnLoadedはなくて常にイベントハンドラを使うことに注意

216:デフォルトの名無しさん
12/05/05 15:56:46.22
>>214
イベントパンドラ―を使うってことはどこでアタッチすればいいの?
デフォルトの状態だと静的コンストラクターしかないからアタッチしようがないんだが
普通にpublicなコンストラクターを追加して、そこでやればいいのか?


217:デフォルトの名無しさん
12/05/05 16:07:35.77
カスタムコントロールじゃなくてユーザーコントロールのことだよな?
ならXAMLから追加すればいいだろ
カスタムコントロールなら普通にコンストラクタで

218:デフォルトの名無しさん
12/05/05 17:00:34.53
>>217
publicなコンストラクターは呼び出されないのかなと思ったら、普通に初期化できた
ありがとう


219:デフォルトの名無しさん
12/05/05 20:08:18.86
FrameworkElementを継承させたFooTextBoxBaseにOnPreviewKeyDown()メソッドを追加したんだが、肝心のイベントが発生しない
どうすればいいの?

XAMLはこういう感じになってる
URLリンク(codepad.org)
FooTextBox.cs
URLリンク(codepad.org)
FooTextBoxBase.cs
URLリンク(codepad.org)


220:デフォルトの名無しさん
12/05/05 20:17:58.42
>>219
(追記)
FooTextBaseにたいしてFocuses()を投げても無駄だったし、IsFocuesbleをtrueに設定しても無駄だった

221:デフォルトの名無しさん
12/05/05 20:25:07.79
なんでFooTextBoxBaseと全く関係のないXAMLとFooTextBox.csも張り付けてるの?

222:デフォルトの名無しさん
12/05/05 20:28:31.46
>>221
とりあえず全部晒したほうがいいのかなと思って晒した

223:デフォルトの名無しさん
12/05/05 20:57:12.08
こういうやり方で解決した
URLリンク(codepad.org)

これでとりあえず動くようになったんだが、文字の入力が重たくて仕方ない
前の書き込みを見てるとOnRenderで描写すると重たいと書いてあったんだが、軽くするにはどうすればいいの?
(ただ、キャレットの移動自体は思いのほか軽かった)

224:デフォルトの名無しさん
12/05/05 21:10:52.87
そーいや、FrameworkElementから直で派生させてるサンプルって全然見かけないな。

225:デフォルトの名無しさん
12/05/05 21:24:34.38
>>211
どれぐらい売れてるかは知らんが、iPad用のブラウザかねだして買ったよ。
無料のに比べて激しく使いやすくなったから満足してる。


226:デフォルトの名無しさん
12/05/05 21:29:17.34
そう思うなら黙って作って儲ければ良いのでは

227:デフォルトの名無しさん
12/05/05 21:46:27.35
別に意見を言ったっていいだろう(´・ω・`)

228:デフォルトの名無しさん
12/05/05 21:52:02.36
2chブラウザ自体というよりも、洗練されたWPFアプリケーションのサンプルソースになら金を払ってやっても良いよ。

229:デフォルトの名無しさん
12/05/05 21:53:06.90
>>228
つ VS2010
つ Blend

230:デフォルトの名無しさん
12/05/05 23:17:38.46
BlendがなければWinForm以下のアプリしか開発できない
それがWPF

231:デフォルトの名無しさん
12/05/05 23:33:49.83
でもWinFormなくなるんだろ?

232:デフォルトの名無しさん
12/05/06 00:06:21.06
>>223
君のパフォーマンスとの戦いはこれからだ!

マイクロソフト先生の次回作にご期待下さい。

233:デフォルトの名無しさん
12/05/06 00:08:28.60
ちぇ。
俺たちのパフォーマンスとの戦いはこれからだENDで打ち切りかあ
新規連載面白いといいなあ

234:デフォルトの名無しさん
12/05/06 00:43:38.99
>>223
GetVisualChild() と VisualChildrenCount つかえ。


235:219
12/05/06 01:36:15.44
>>223
どういう風に使えばいいの?

あと、もう一つ質問なんだが、結構な数のプロパティがあるんでFooTextBoxBaseにあるやつと同じ奴をFooTextBox追加するのは結構面倒くさい
でも、FooTextBoxに依存関係プロパティがないとかなり使いにくくなってしまう
何かいい手はないんだろうか


236:デフォルトの名無しさん
12/05/06 01:40:47.55
>>235
ビヘイビア

237:デフォルトの名無しさん
12/05/06 01:51:39.80
> FooTextBox追加するのは結構面倒くさい
標準的な方法ではどうにもならないね。

他にも、WPFは色々と定型的で面倒な部分が多いので
ソースコードの自動生成で効率化することをお勧めする。

238:219
12/05/06 02:08:26.39
>>236
それ使っても早くならなかった
なぜ遅いのかわからないのでプロファイラーを使ってみたら、別なところに原因があった

>>237
どうにもならないのか

239:デフォルトの名無しさん
12/05/06 02:16:56.51
現段階のWPFに実用性はない

240:デフォルトの名無しさん
12/05/06 02:25:11.83
"次回作" ではXAML周りも結構改善されてるし
そのうちWPFにも反映されるんじゃないかな

241:デフォルトの名無しさん
12/05/06 07:11:09.97
hogeがhogeBaseから派生してないとかなんかくらくらするな
作るの2年早いんじゃね?

242:デフォルトの名無しさん
12/05/06 07:48:17.79
Tips読んでも、Tipsに載っていないことやろうとするとさっぱりどうしていいかわからない
TreeViewにList表示することもできないWPFむずすぎる

ボタン配置するだけとかそんなんじゃないんだよ
XamlのTreeViewの属性に直接データ書き込むなんてするわけ無いだろ…
こんなチュートリアル何の参考にもならない

まずわかんないのが、プレフィックスとか言うやつだよ
x:Typeとかx:Keyとかなんだよこれは
それにDataContextにVM渡しているのに
Binding設定でまったくプロパティが表示されないってどういうことだよ
Vとロジック並行作業できるって、VのデザイナーがVMのソースコード見て
やらなきゃできないのか?だったら分担になってないだろ

もうわけわかんね、WPFやめる

243:デフォルトの名無しさん
12/05/06 08:25:44.56
よし一緒にアンチWPFやろうぜ

244:デフォルトの名無しさん
12/05/06 08:29:53.71
たしかに
おまえそのサンプルコードどっかのサイトからコピーしただけで
実際にどう使うか考えたことあるのか?
っていうのはよくあるね
でもタダ情報だしそんなもんだね

洋書のpro wpfは結構使えるよ

245:デフォルトの名無しさん
12/05/06 08:48:04.27
TreeViewなんて殆どの場合、コレクションをデータバインディングするだろ
直接データ書き込むって使い方をするケースなんてほとんどないだろ
それで済むならTreeViewとか使わないでボタンとか他のコントロールでやるだろ

CodeZineとかほんと糞みたいなコード貼ってるよな
しかもログインしないと見せれないって、それでみたらこのありさま
どこの世界にTreeViewでTreeViewItemをXamlに階層構造そのままに直接書き込むんだ
これみてなるほど、非常に参考になりましたなんて言うと思うんかカス

他の個人のサイトも同じようなもんだよ
HierarchicalDataTemplate使って入るが
データバインディングするのに、VMでDataContextに直接node入れたり
TreeViewのItemSourceに直接入れたり、そんなやり方常識的に考えてやるわけないだろ
なめんな

246:デフォルトの名無しさん
12/05/06 08:52:06.22
>>244
へーpro wpf、アマゾンでみたら中身みれるんだなw
買わなくていいじゃんw

247:デフォルトの名無しさん
12/05/06 09:02:55.77
>>244
ちらっとみたけどさ、msdnと同レベルぐらいの内容だったぞ
xmlnsの意味、x:Nameの意味をちらっと説明したら
もう次はプロパティの説明になってるし

俺が知りたいのはさ、こういうやつだよ
x:Type x:Static のマークアップ拡張機能
x:Code 組み込み XAML 型
x:Key ディレクティブ
x:Member ディレクティブ
x:Members ディレクティブ

これらがわかんないと、応用何もできないだろ…
あと、local:とかもどういう意味かわかんないしな
こういうのを説明している書籍もサイトもない
みんなどうやって使いこなしているんだ
ほんと尊敬するわ

248:デフォルトの名無しさん
12/05/06 09:17:01.92
local: とかは自分で勝手につけてるものだから別に
abc: だろうと aiueo: だろうと構わないんだよ

x: に関しても、XAML名前空間を示す通例として広く使われてるだけで
y: とか z: でも(それに統一していれば)それで動く

そこらへんはWEBのあちこちのWPF講座とか読んで回ればすぐわかるでしょ
アマゾンでプレビューできるPro WPFにも書いてある

249:デフォルトの名無しさん
12/05/06 09:22:56.43
>>238
そこまで書いたのなら、遅かった原因ぐらい書いとけよ・・・

そろそろ洋書ならまともな本の1つや2つで出るだろ・・・
出てないのか・・・

250:デフォルトの名無しさん
12/05/06 09:24:15.39
洋書読める奴はわざわざ2ch掲示板なんかに来ない

251:デフォルトの名無しさん
12/05/06 09:33:04.33
>>248
自分で勝手に付けられるのか
どうりで検索しても出てこないわけだ
pro wpfにも書いてたな、msdnのtipsより多少濃い内容かもしれない

それにしても10代の頃のほうがパパっと作りたいもの作れてたな
知識増えるごとに、デリゲートやインターフェースやデザインパターンなど意識して
手が動かない時間のほうが長い

252:デフォルトの名無しさん
12/05/06 09:36:17.71
それXMLの知識

253:デフォルトの名無しさん
12/05/06 09:44:36.20
XMLだと常識なのか?
C#やる奴はC++わかってて当然みたいな感じか
新規の人向けじゃなくて、他の言語から移行する人向けのサイトがほとんどだな
説明するまでもないだろうみたいなノリで書いているから
5時間かけてWPFについていろいろ調べたのに全く頭に入ってない
できるのは、ボタン作成してポチポチ押すだけw

254:デフォルトの名無しさん
12/05/06 10:02:44.01
これじゃ不足?
URLリンク(msdn.microsoft.com)



255:デフォルトの名無しさん
12/05/06 10:25:39.43
>>254
そこも見たけど難しすぎるんだよ

x:Nameとは何か?って人に
属性構文、プロパティ要素構文、マークアップとか言われてもさっぱりなんだわ
あれ読んで理解できるレベルのひとは、そもそもx:Nameとは何かなんて思わないでしょ
本末転倒って感じなんですよ

一応ざっくりWPFの概要は読んだからそれらの単語は専門用語ってわかるけど
初心者が読んだら、属性構文は専門用語の和訳なのか、単なる日本語的な意味なのか判断つかないんですよ
やっぱり上級者の説明はわかりにくい、初心者が回りにいないからわからないんだろうね

256:デフォルトの名無しさん
12/05/06 10:31:06.94
そこらへんはどのWPF本にも書いてあると思うが

257:デフォルトの名無しさん
12/05/06 10:31:53.22
wpfで続けるつもりがあるならエッセンシャル読むことをすすめるよ
立ち読みでもいいし
wpf作ったリーダーが「なぜこんな設計、構造にしたのか」とつらつら書いてるから
javascript使える程度の知識があればわかるように書いてる

それとライブラリの使い方でわかんないことがあったらilspy使うことだね
ソース(じゃないけど)見ればあっさり解決することもある
そうじゃないときは…想像力働かせながら検証あるのみだな

258:デフォルトの名無しさん
12/05/06 10:34:03.19
Metro手出してる人おる?
WPFとどのぐらいかぶってて、どのぐらい違うのか知りたい・・・
名前空間、コントロールの違い、タッチゼスチャーなどの扱い全体的なUIの構成は違うとして、その他の部分は大体同じようなものと考えてていいのかしら・・・

259:デフォルトの名無しさん
12/05/06 10:40:50.73
ちょっと弄っただけだけど
await、asyncで投げっぱなしってのが強烈だったな
その他はだいぶノウハウを流用できそうだったけど

たとえばimageにウェブ画像を読み込むとか
「このアドレスで適当に読みこんどいて。終わっても通知しなくていいよ。
 失敗したらこの通り処理しておいて」でぶん投げ

慣れたら楽なんだろうな

260:デフォルトの名無しさん
12/05/06 11:41:54.08
ILSpy丸見えじゃないか
しばらくこれで遊んでよう

261:デフォルトの名無しさん
12/05/06 11:50:37.59
ついでにSharpDevelopってのも落としたけど
こっちのほうがVSより軽いからいいな
WPFも開発できるし

262:219
12/05/06 12:27:28.34
>>241
そうしたいんだが、そうするとBorderの中に描けない

>>249
ITextRenderのGetHeight()が呼び出されるたびにTextFormatter.Create()を呼び出していたの原因だった

>>261
そいつWPFで動いてるよ
AvalanEditダウンロードしてソース見てみたら、ICSharpCode.AvalonEditがWPFで書かれてる



263:デフォルトの名無しさん
12/05/06 12:39:04.14
ILSpyおもしろいな
SharpDevelopみたいなすごいソフトがオープンソースで作られているのに
糞みたいな有料ソフトが難読化されてたりw

264:デフォルトの名無しさん
12/05/06 12:40:58.66
>>263
その辺は目指す方向と背景が違うので比べても・・・

265:デフォルトの名無しさん
12/05/06 12:57:10.90
勝手にソース使われるのいやじゃん
フリーでだってちょっと見た目変えて「おれが作った!」って公開されたら凹むぜ?

それと難読化技術も調べてみたらおもしろいよ
おれは編集可能までもっていった段階でやること多すぎるのわかって投げたけど

266:デフォルトの名無しさん
12/05/06 13:03:16.59
確かにコピーされるのは嫌だけど
コピーされるぐらいのソフトを作れるわけないからどうでもいいな

ILSpyにはそういう機能ないけど、作った人は
直接編集したり、ソース吐き出させたりしまくってるんだろうな

267:デフォルトの名無しさん
12/05/06 13:22:49.20
あまり知名度の高いソフトはコピーできない
コピーは一瞬で、あとはSEOで勝てば自分のソフトになる
難読化は大事だよ

268:デフォルトの名無しさん
12/05/06 15:14:39.12
>>262
普通は

・描画用の(内部)コントロールをユーザーに指定させたりしない
・描画用の(内部)コントロールにHogeBaseという命名はしない

269:デフォルトの名無しさん
12/05/06 15:34:28.43
>>255
別にxaml直で弄れんくてもプロパティエディタ?からほとんど設定できると思うんだが。
VMのをバインディングビルダで表示したいときは、デザイン時インスタンスを設定して
ないと出てこないと思った。

まー、動かせば分かってくるってのもあると思うし、とりあえずワカランのはほっとけばいいのに。

270:219
12/05/06 17:23:57.57
>>268
なるほど
内部のコントロールをScrollViewerに追加するにはどうすればいいんだ?
コード内からnew FooTextBox()とやって、ScrollViewerのContentに代入してもうまく行かないんだが
ほかのコントロールみたくChildrenプロパティに追加することもできないし

271:デフォルトの名無しさん
12/05/06 17:39:06.10
> コード内からnew FooTextBox()とやって、ScrollViewerのContentに代入してもうまく行かないんだが
普通はそれでうまくいく。
ダメってことは何か変なことしてるんだろ。

どうも基礎が全然できてないようだから
WPFの本を1冊読むか、MSDNのWPFの解説を一通り読んで来い。

272:デフォルトの名無しさん
12/05/06 17:56:27.85
>>271
普通はそれでうまく行くのか
なんでContentに代入すると描写されないんだろう…
FooTextBoxBase()の中身がおかしいのかな
URLリンク(codepad.org)
FooTextBoxBase.cs

273:デフォルトの名無しさん
12/05/06 18:39:23.32
MeasureOverride と ArrangeOverride を実装してないからレイアウトサイズが 0 のままとか?
Snoop 使って期待通りのプロパティ値に設定されているか確認してみれば?

274:デフォルトの名無しさん
12/05/06 19:34:56.11
>>273
調べてみたらレイアウトサイズが0のままだった
一つ不思議なんだが、コードから追加するとうまく描写されなくてXAMLから追加するとうまく描写されるのはなんでなんだろう

275:デフォルトの名無しさん
12/05/06 19:43:56.14
あれ、アバウトなように見えても
ちゃんと作法通りに書かないとレイアウトがアップデートされんのよね
文書化されてないから公式サンプルの手順通りにするしかないけど

276:219
12/05/06 19:46:25.86
すまん
コードから追加すると表示されないのはどうも勘違いだった
先ほどやってみたら、うまく行った


277:デフォルトの名無しさん
12/05/07 00:33:03.96
>>269
VMの名前空間を設定しているのに何でプロパティ名が出てこないの?
app.csでVのDataContextにVM渡しているから一応実行時には
バインディングできているけど、xaml編集時には出てこないから面倒

デザイン時にインスタンス化って、xaml内でコード書いてインスタンス化するってこと?
C#だと普通usingディレクティブさえ設定すれば、プロパティ参照できるけど
xamlだとそれができないってこと?
Xamlの仕組みがさっぱりわからない

278:デフォルトの名無しさん
12/05/07 00:55:10.62
xamlはbamlに中間言語にコンパイルされてInitializeComponentでインスタンス化されるんだよ
そこらへんエッセンシャルに書いてあるだろ
たしか

「ダミーデータが出てないと作業できねぇよ!」ってならグローバルにすりゃ読み込むよ
リボンのバインディングと同じだな

「modelをグローバルにしたらmvvmがうんぬん!」なんていうなよ
デザインが終わったら書きかえればいいだけだろ
全部お膳立てされてないとできないっていうならformsに帰るんだな

279:デフォルトの名無しさん
12/05/07 01:31:19.88
>>278
グローバルってどうすんの?
リボンって頭につけるのしか浮かばないんだが

280:デフォルトの名無しさん
12/05/07 01:34:09.71
>>278
あとインスタンス化についてなんだが
俺が聞きたいのは

>VMのをバインディングビルダで表示したいときは、デザイン時インスタンスを設定して
>ないと出てこないと思った。
デザイン時にインスタンス化したらなぜ表示できるのか
そして、インスタンス化しなければ他のクラスのプロパティを参照できないのはなぜかが知りたい

281:デフォルトの名無しさん
12/05/07 01:42:28.23
聞く前に自分で調べたのか

282:デフォルトの名無しさん
12/05/07 02:04:26.97
調べたよそりゃ、もう何時間も調べてる
一応
<Prefix:object x:key="objectname"/>
これをxamlファイルに書き込むことで
staticResouceとして参照することはできたけど

それ以外に方法があるんでしょ?

283:デフォルトの名無しさん
12/05/07 02:51:04.08
やれやれだな。d:DesignInstance をググレ。

284:デフォルトの名無しさん
12/05/07 14:15:38.99
ねぇ、今朝からアクセスできないのだけれど、私だけ?
URLリンク(www.codeproject.com)

285:デフォルトの名無しさん
12/05/07 14:34:08.20
普通につながる

286:デフォルトの名無しさん
12/05/07 16:43:02.93
うそでしょ~

287:デフォルトの名無しさん
12/05/07 17:15:43.26
繋がらんな。pingすら飛ばん。

288:デフォルトの名無しさん
12/05/07 17:26:56.47
繋がるよ

289:デフォルトの名無しさん
12/05/07 18:14:18.35
一時的に、低学歴低所得にのみ見えるサイトになってます。

290:デフォルトの名無しさん
12/05/07 18:27:21.36
>>284
bb.exciteからフレッツ光でアクセスしてるが、繋がらねえ


291:デフォルトの名無しさん
12/05/07 18:31:53.39
見えてるよ

292:デフォルトの名無しさん
12/05/07 18:40:35.08
見えてる人は、本当ならば、相手方のIPアドレス書いてみろよ。
もし、本当に見えているなら、落ちているのはDNSだけなのかも……

でも、多分、ふしぎな力で>>289状態になっていると思うけれど。


293:デフォルトの名無しさん
12/05/07 18:43:21.47
低学歴ニートだが見れない

294:デフォルトの名無しさん
12/05/07 18:45:07.02
ニートは低所得ですらないからな……

295:デフォルトの名無しさん
12/05/07 18:48:56.41
HTTP/1.1 502 DNS Lookup Failed
Content-Type: text/html; charset=UTF-8
Connection: close

296:デフォルトの名無しさん
12/05/07 18:56:48.78
サーバー: ntt.setup
Address: 192.168.1.1

*** ntt.setup が www.code.project.com を見つけられません: Non-existent domain

297:デフォルトの名無しさん
12/05/07 21:02:46.06
192.168.1.1 は僕のIPアドレスです。
勝手に使わないでください。

298:デフォルトの名無しさん
12/05/07 21:15:21.17
はい

299:デフォルトの名無しさん
12/05/07 21:38:46.41
192.168.*.*はプライベートアドレスで予約されてるから
インターネットにパケットは送出されないよ。
おそらくそのIPアドレスはネットワーク管理者が
内部LAN用に割り当てている物だから、外部的には
プロバイダーが各家庭に割り当てたグローバルIPアドレスに
変換して外部のネットと通信してる。
だから僕のパソコンのIPアドレスも192.168.1.1だけど
あなたのパソコンのIPアドレスと競合する心配はしなくて良いよ


300:デフォルトの名無しさん
12/05/07 21:43:43.46
PG,SEなら誰でも知っていることを得意げに書かんでも・・・

301:デフォルトの名無しさん
12/05/07 21:44:20.82
ずっと俺のものだと思って生きてきた

302:デフォルトの名無しさん
12/05/07 21:47:37.84
>>297の元ネタって何年前?
10年以上前だよな

303:デフォルトの名無しさん
12/05/07 22:12:50.17
似たようなネタだと、My Documentsのパスを直にネットに貼る奴
ユーザー名が本名で釣果が凄いことに・・・・

304:デフォルトの名無しさん
12/05/07 23:08:53.34
10年前は、ニートという言葉も無かった気がする。
普通に、ロリ、ヲタ、プーって略さずに言っていたよな。

305:デフォルトの名無しさん
12/05/07 23:21:47.05
プーという言葉があったんだから
ニートなんて呼び変える必要なかった

306:デフォルトの名無しさん
12/05/07 23:24:51.90
やっぱり、あれじゃない?
プーさんだとキャラかぶるから。

307:デフォルトの名無しさん
12/05/07 23:30:34.37
プーの方が名称として優れている。
響きかが滑稽で恥ずかしいことだと明確に伝わる。
ニートだとneat?小綺麗ってこと?みたいに錯覚しやすいせいか
ことの重大さがわからずこじらせる奴が続出する。

308:デフォルトの名無しさん
12/05/08 09:17:49.37
>>302
URLリンク(damedame.monyo.com)
2003年だから9年前だな。

309:デフォルトの名無しさん
12/05/08 13:30:33.52
ヤフオクのマイページURL貼るネタもあったな

310:デフォルトの名無しさん
12/05/08 20:02:26.19
>>308
10年たってないのか
改めて読み直すとなんか釣りっぽく見えるなw

JPNICの存在を知ってるくらいには知識があるのに
「192.168.0.1は~~」というのはちょっと不自然さを感じる

311:デフォルトの名無しさん
12/05/08 22:28:58.54
IPアドレス絡みだと↓のネタを思い出す。

「私のIPは202.423.387.689なので、明らかに違います。」

312:デフォルトの名無しさん
12/05/08 23:07:06.38
>>311
間違ってるのはわかるけど
どの辺りがおもしろいかわからん

313:デフォルトの名無しさん
12/05/10 00:32:56.89
FooTextBoxをWPFに移植してみたんだが、CPUの負荷がWinForm+Direct2Dを使った奴より高くて悩んでる(WPFだと20%を推移してるんだが、Direct2Dだと10%前後で済んでる)
OnRenderではなく、DrawingVisualに描く方法なら低くなると思ったんだが、CPU負荷の点では差がなかった
CPU負荷を落とすにはどうすればいいの?


314:デフォルトの名無しさん
12/05/10 01:58:51.69
>>313
まず、WPFにDirect2Dって概念はない
それにお前は質問するだけで質問には答えてやらないのはなぜだ?
お前でも答えられる質問はいくらでもあっただろ
質問しかしにこないのか?
そんなやつに答えてやる義務はない

315:デフォルトの名無しさん
12/05/10 03:30:20.92
>>313
それだけの情報だと何とも言えない。
WPF Performance Suite を使ってアプリケーションイベントの CPU 使用率を調べてみたら?

316:デフォルトの名無しさん
12/05/10 09:26:43.49
ソイツだけ見ただけで誰か分かるよなw

317:デフォルトの名無しさん
12/05/10 12:42:05.06
WPFを止めるのが最善

318:デフォルトの名無しさん
12/05/10 12:44:45.61
正解が出てしまったな

319:デフォルトの名無しさん
12/05/10 13:52:35.63
>>314
すまん
あんまり詳しくないんで答えるのもあれだと思ってた

>>315
それ使って調べてみた
レタリング:15%
レイアウト:3%
その他もろもろ:合計で2%
レタリングの負荷を落とすことってできないのかな


320:デフォルトの名無しさん
12/05/10 14:55:10.60
>>319
AvalonEditと比べて性能はどうなってる?

既に同程度の性能が出てるならこれ以上は無理なので >>317 しかない。

321:デフォルトの名無しさん
12/05/10 15:14:53.24
>>319
レタリング?レンダリングじゃなくて?どっちにしても、再描画される範囲を絞っていくしかないと思う。
WPF Performance Suite の Perforator の Clear back-buffer before rendering にチェックを入れれば、
再描画が走ってる範囲がわかるから、余計な要素まで再描画されてないか確認してみたら?以下参考。

AvalonEdit: WPF text rendering performance
URLリンク(community.sharpdevelop.net)
WPF グラフィックス レンダリングの概要
URLリンク(msdn.microsoft.com)
WPF アプリケーションのパフォーマンスの最適化
URLリンク(msdn.microsoft.com)

322:319
12/05/10 15:45:47.07
>>320
AvalonEditの方が早かった

>>321
例のツール使って1行ずつスクロールさせてみたけど、再描写している範囲は変わらなかった
なんであっちの方が早いんだろう


323:デフォルトの名無しさん
12/05/10 19:51:57.29
コードは読んでないから分からないけど AvalonEdit は OnRender を最適化してるんじゃない?
事前に準備できるものは OnRender 前に構築、一度構築したらキャッシュ、一度描画したらキャッシュ、重いメッソドコールを一回にまとめるとか。

324:デフォルトの名無しさん
12/05/11 12:58:07.35
AvalonEditはWPFの流儀に沿った書き方をしてるので
WPFのレンダリング最適化機構がちゃんと動作してる。

>>319はGDIのプログラムのような書き方をしてるので
WPFの最適化機構が全然働いていない。

つーわけで、速くしたかったら
WPFの解説書をよく読んで、AvalonEditを参考にしつつ1から書き直せ。

325:319
12/05/14 16:02:15.92
OnTextInputをオーバーライドしただけだと、IMEのウィンドウが外に出てしまう
このままじゃあ、使い物にならないから、オンスポット入力に対応させたいんだが、どういう風にすればいいのかさっぱりわからない
くぐっても出てこないし、avaloneditorもそこらへんは特に何もしてなかった
MSDNならあるだろうと思い調べてみたが、IMEに関するサンプルは何もなかった
どうすればIME対応にできるんだろうか

>>324
なるほど流儀に従っているから早いのか
もう一度参考にしつつ書いてみる


326:755
12/05/14 16:03:55.48
>>323
ざっと見たが、行を構築してキャッシュしていた
でも、今作っているやつも一度構築した行は再利用している
やってることはほとんど変わらないんだが、なんであそこまでCPU負荷が違うんだろう

327:デフォルトの名無しさん
12/05/14 16:15:43.51
>>325
> IME対応
オイオイ、一番重要な部分がまだだったのか。
てっきりIME周りは実装済みかと思ってたよ。

WPFはIME関連の機能を持たないので、TSFを直接使う必要がある。

TSFのドキュメントは不親切で、
まともなサンプルは皆無、それでいて実装すべきコードの量は膨大。

WPFのレンダリング如きに苦戦してるようじゃ、到底無理だと思うけどなぁ・・・

328:デフォルトの名無しさん
12/05/14 16:56:51.42
もうかまうなよ

329:319
12/05/14 19:12:17.38
くぐってみたら、一つの要素に複数の図形を描くなら、OnRenderで描くのとDrawingVisualに要素を追加して描くのとCPU負荷の面で大差ないと書いてあった
URLリンク(stackoverflow.com)


330:デフォルトの名無しさん
12/05/14 21:33:21.17
XAMLにボタンとユニフォームグリッド(100X100セル)の記述しかなく
ボタン押下でデータをよみ、グリッドのセルに動的にコントロールを生成する場合
MVVMのようにコードビハインドに一切記述せず実現することは可能なんでしょうか?



331:デフォルトの名無しさん
12/05/14 21:42:01.91
> XAMLにボタンとユニフォームグリッド(100X100セル)の記述しかなく
> コードビハインドに一切記述せず
XAMLもコードも書けないなら詰んでるじゃないか

332:デフォルトの名無しさん
12/05/14 22:00:08.31
ウディタの新バージョン「ウディタ2.00」が公開されました(2011年10月27日)

「WOLF RPGエディター」とは? 
・高度なRPG開発が可能な、完全無料のゲーム作成ツールです。
・雰囲気はRPGツクール2000に近い。RPGツクール2000で自作システムを作りこむ際に
 不満だったところがいろいろ解消されていて、かなり自由度が高いです。ただし
 その分初心者には難しいかも。すでにツクール2000で自作システムを組むのに
 慣れた人やRPGツクールでは物足りないけどプログラミングはちょっとという方にお勧め。
・作成したゲームは自由に配布したり、コンテストに投稿することも可能。
 また本ソフトを持たない人でもプレイ可能!ファイル暗号化も完備!
■作り方しだいでパズル系やカードゲームやシミュレーションやシューティングや
アクション、RTSや他なんでも作れます。
■また他の人がネット上で公開している「コモンイベント」を組み合わせて利用すれば、
自分では開発が難しいゲームシステムも容易に実現することができます。


333:デフォルトの名無しさん
12/05/14 23:02:00.52
>>331
そうなんですよ。
V側にデータを表示するためのリストボックスなどのコントロールすらない場合などは
MVVMは破綻しますよね?

実現したいのは横軸に日付3か月分、縦はデータにより増減する行のグリッドに
数日間かかるプロジェクトのコレクションを列またぎのスタックパネルを動的に配置して内容を出す事
(スケジューラーみたいな画面)をやりたいのですが、

コードビハインドに書くしかないかなと思ったわけです。



334:デフォルトの名無しさん
12/05/14 23:09:51.95
そういうのはカスタムコントロールを作るのが筋だ
その上でMVVMしたいなら自作コントロールを画面に貼って自分で定義したプロパティをバインドする
カスタムコントロールの実装は当然コードビハインド(というか普通にコントロールの動作の実装コード)

335:デフォルトの名無しさん
12/05/15 00:18:52.30
なんかmvvmって言葉が実体を伴わず独り歩きしてる感じだな

1)m v vm それぞれどれにも依存せずテストコードが書けるようにする
2)それを実現するように「すべてを」書き換える

Vを書き換えず「MVVMは破綻してる」とか言われても困る

336:デフォルトの名無しさん
12/05/15 01:35:25.67
MVVMってのは主にModelとViewの間にVMを挟むことでViewをなるべく馬鹿にすることで、ドメインとUIのぶんリヤテスト容易性というメリットを得るためのもので、それが成り立たない領域にまで金科玉条のごとく持ち込むものではないと思うよ。
スケジューラみたいな画面ならMVVM的なものに落とし込めそうな気もするけど。

337:デフォルトの名無しさん
12/05/15 11:41:08.86
>>333
Infragisticsのスケジュールコントロールとか使った方がよっぽどよさ気じゃねえ?

338:デフォルトの名無しさん
12/05/15 11:43:19.25
カスタムコントロールの動作はコードビハインドにプレゼンターとして実装する
データはコントロールのプロパティにViewModelをバインドさせるから、このケースだとMVPVMになるのだろうな

339:デフォルトの名無しさん
12/05/15 16:11:25.82
>>327
今はそうでもない
URLリンク(hp.vector.co.jp)
日本語の解説もちゃんとあるし、ドキュメントも日本語化されてる
tsfappというサンプルもある
マネージドコードでの実装は面倒なんでやりたくないが

340:デフォルトの名無しさん
12/05/15 17:14:07.51
TreeViewItemにTextBoxを載せて、

・TreeViewItemがフォーカスを取得した時にTextBoxにフォーカスがくるようにしたい。
・TextBoxがフォーカスを取得した時にTreeViewItemを選択状態としたい。

としたいのですが、どのようにしたら良いでしょうか?
TreeViewItem.GotFocus で子のTextBoxのfocus()を呼び出すようにすると、親のTreeViewItemにも
イベントが発生してしまいルートアイテムのTextBoxがフォーカスを取得してしまい困ってます。


341:デフォルトの名無しさん
12/05/15 17:21:14.71
FocusManager.IsFocusScopeじゃね

342:デフォルトの名無しさん
12/05/15 23:38:24.90
知らないけど、e.Handled = true じゃダメなの?

343:340
12/05/16 00:15:05.34
>>341
すいません、どう使えば良いか分からないです。
TreeViewItem でセットするんじゃないんでしょうか?

>>342
e.Handled = true にしてもバブルアップされてて困ってたんですが、今簡単なサンプル作ったら上手くいきました。
↓でも同様に悩んでる人がいたみたいなんですが。。。
URLリンク(stackoverflow.com)
もう少し検証してみます。

344:デフォルトの名無しさん
12/05/16 00:17:16.57
まもなく、WPF2ちゃんねるブラウザが誕生するよ。
2ちゃんねる界に革命が起きる!

345:デフォルトの名無しさん
12/05/16 00:37:53.42
>>339
そのページはわかりやすいね。

けどtsfappは、リンク先にも書いてあるけど、
Win32のテキストボックスコントロールをTSFで拡張する例であって、
WPF用テキストエディタを作るにはちょっと頼りない気がする。

肝心な部分はテキストボックスコントロールの内部実装を利用してて、ソースコードが見られないから。

346:デフォルトの名無しさん
12/05/16 09:54:57.23
URLリンク(www.atmarkit.co.jp)
にあるような式木を視覚化するので遊んでたんだけど、たかだか10階層超えたあたりで重くなるのね。
レイアウトロジックがタコくてO^Nになってる感じなんだけど、このへんはちょこっとフックして自前ロジックにすることって出来るの?
それともDataTemplateとかも使えず全部ゴリゴリ書かなきゃいけなくなる?

347:デフォルトの名無しさん
12/05/16 11:01:35.71
DataTemplate内で使われてるパネルを独自のものに置き換えりゃいいんじゃねーの?

フックがどういうことを想定しているのか不明だが、
少なくともDataTemplateが使えなくなる事は無い。

348:デフォルトの名無しさん
12/05/16 11:41:30.58
>>346
ダウンロードして10階層ぐらいにしてみたけど重くないぞ?
変なことしてんじゃないの?

349:デフォルトの名無しさん
12/05/16 11:55:57.24
>>347
んーレイアウトのロジックだけ別のをインジェクトするとか的な意味なんだが、パネルを変えればいいのかな。Canvasとかに。
その場合はコンテンツを変更した時に一番下のから順にサイズ測ってセットとかすればいいのかな・・・

>>348
そのExpressionTreeTemplates.xamlのりソース定義をGrid.Reaourcesにコピーして試してるんだが、だからかしら・・・
(x,y)=>x+(y*21)+x+(y*21)+x+(y*21)*(x+(y*21)+x)+(y*21)+(y*21)+(y*21)+(y*21)+(y*21)+(y*21)
を表示させるとGridのレイアウト時とかに5秒以上かかる。

350:デフォルトの名無しさん
12/05/16 12:32:33.02
>>349
> レイアウト時とかに5秒以上かかる。
こっちでは0.01秒しかかからないぞ。

レイアウト中にGCが発生すると0.08秒になったが、5秒はおかしすぎる。

351:デフォルトの名無しさん
12/05/16 12:34:40.88
>>349
やってみたけど>>350と同じく問題ない。
DataTemplateはWindows.Resourceの中に突っ込んでるけど。
CPUはCorei5。

352:デフォルトの名無しさん
12/05/16 13:18:15.13
>>345
そうなんだよな
そこら辺の部分は全部internalだから全部自分で書かないといけないという…


353:デフォルトの名無しさん
12/05/16 15:24:13.02
>>350,351
Window→Grid→ContentControlとあるせいかと思って、Canvasでも試したが、何か一瞬速くなって解消したかと思ったがビルドしなおしたらまた戻った(´・ω・`)

よくわからんので、とりあえずソースうpします。そこのテンプレート持ってきてTextBoxに入れたものが表示されるようになってる。
もし暇な方いましたらみてみてくださいまし・・・なにかわかったらまたカキコします。
URLリンク(skydrive.live.com)

354:デフォルトの名無しさん
12/05/16 17:49:00.62
>>353
実行してみたけど、特に問題なし。
コンパイルに150msぐらいかかっててテキストボックスの入力がもたつくぐらい。
とりあえず、%d じゃなく、{0}。


355:デフォルトの名無しさん
12/05/16 18:05:50.20
>>354
あれーなんでだろう。
(x,y)=>1+(x+1)+(x+1)+(x+1)+(x+1)+(x+1)+(x+1)+(x+1)+(x+1)+(x+1)+(x+1)+(x+1)+(x+1)+(x+1)+(x+1)+(x+1)
といった感じに後ろの+(x+1)を貼り付けを繰り返してると応答が返ってくるまでにどんどん時間がかかってく。上の状態だと最後の貼付けでは20秒ぐらいかかってた。
Corei7 820でGPUはしょぼいが。
上のをそのまま貼り付けると10秒。その後に+(x+1)を増やすと1分かかった。その間CPU使用率が13%のままになっている。終わると0になる。

%dは最近F#触っててそっちの癖でやっちまってた。すまんそ。

356:デフォルトの名無しさん
12/05/16 19:20:39.66
C2Qでも一瞬だ
壊れてるんじゃないの

357:デフォルトの名無しさん
12/05/16 20:25:06.80
>>356
なにがよw

358:デフォルトの名無しさん
12/05/16 22:10:20.88
.net3.5だと遅いとか

359:349
12/05/17 09:30:24.99
別のノートで試したらデバッガーで動かして40個以上コピーしても一瞬だね(´・ω・`)
ノートもCorei7だけど。
環境のせいとしてスルーします。なんかある意味貴重な環境なのかしら・・・

360:デフォルトの名無しさん
12/05/17 14:00:59.70
Blendすら使い方の怪しいWPF初学者ですが、どのUIElementにも使えるMouseEnterしたら左右にシェイクするというアニメーションを作ろうとしています。
ただで配られてたWindowsPhone用のBlendでStoryBoard作ってそれをコピペでVSにはっつけて試そうとしてるんですが、デバッグ実行して初めてそんなプロパティねーよとか言われたりしてます。
Blendで作ったものはTargetNameとか指定されてて、ちょっとやりたいことにそぐわない・・・

いまいちまだどれが対象になって、プロパティのパスはどうでとか理解しきれてないんですが、より手早くその辺があってるかなどを確かめるすべってありますか?

361:デフォルトの名無しさん
12/05/17 14:21:23.98
コンパイラが目的とするものを知らないのに、どうすればいいかまで教えてくれるわけがない。

362:デフォルトの名無しさん
12/05/17 14:38:52.50
インテリセンス出せるぐらいだったらわかるでしょ。

363:デフォルトの名無しさん
12/05/17 19:52:14.16
blend使うメリットって手で書くより速く正解教えてくれることなんだから
「ふつう」の体験版でも使えばいいだろ

364:デフォルトの名無しさん
12/05/18 09:27:44.60
wpfって何も考えずにDrawingGlyphなどで描写すると遅くなる・・・
AvalonEditで使われているコンポーネントにDirect2dだと1回の呼び出しで済むけど、
WPFだとグリフ一つにつき8回も呼び出す
おまけにDirect2Dのようにまとめる事がない
と書いてあった
即時モードでレタリングできるようにするか
Direct3D10やDitect2Dと簡単に連携できるようにしてくれ
今のままじゃあ使い物にならない


365:デフォルトの名無しさん
12/05/18 09:55:14.40
WPFを低レベルAPIかなんかだと勘違いしてるんじゃないの
いい加減うざいから完成するまでこないでくれ

366:デフォルトの名無しさん
12/05/18 10:05:38.12
>>364
.NET 4.5でWindows7より前のOSが非サポートになる事に伴って
そのあたりも改善されるかと期待してたけど、
何も変化はないようだね。

とはいえ、いつまでもDirect3D9のままってわけにもいかないだろうし、
いずれ改善されるんじゃないかな。

367:デフォルトの名無しさん
12/05/18 10:24:56.20
これで頑張れ
URLリンク(msdn.microsoft.com)(VS.85).aspx

368:デフォルトの名無しさん
12/05/18 10:35:56.51
> Direct3D10やDitect2Dと簡単に連携
標準で用意してほしいとは思うけど、
連携用のライブラリを一度作ればいいだけじゃん

既にDirect2Dを習得してるなら簡単でしょ

369:デフォルトの名無しさん
12/05/18 10:56:23.45
Direct2DはWin7からだったっけ?

370:デフォルトの名無しさん
12/05/18 13:54:58.65
wpf ってmargin(left, topのみ)で絶対配置してても微妙に座標がズレたりするんだな。
ナニコレ・・・

371:デフォルトの名無しさん
12/05/18 13:57:00.58
丸めだろ

372:デフォルトの名無しさん
12/05/18 14:47:21.33
>>366
そうなることを願いたい
metroの方は比較的簡単にDirect2Dと連携できるんだけどな

>>367
サンプルあったのか
ちょっと試してみる
ありがとう

>>369
vistaから

373:デフォルトの名無しさん
12/05/18 17:03:46.34
テキストエディタにDirect2Dてw
文字入力やスクロールでカクカクしてなきゃいいんだよ。
以前、行番号表示したくてテキストエディタコントロール作ったが最適化して実用程度にはなったぞ。


374:デフォルトの名無しさん
12/05/18 17:14:12.69
行番号表示とか矩形編集、シンタックスハイライト、スペースやタブの表示といった機能がかけていたので、作ってみた
URLリンク(kie.nu)

>>373
Direct2D使わないとCore2Soloを積んだネットブックでひどいことになるのよ
ためしにCore2Soloを積んだネットブックで動かしてみたら、カクカクはしてないんだが、CPU使用率が天井に張り付いてて笑ったw
あと、半角スペースを表示できるようにしてみると、Core2DuoE8400+HD5770というスペックでもめちゃくちゃ重たくなる


375:デフォルトの名無しさん
12/05/18 17:42:57.63
>>374
これ、もうDirect2D版?
7 だと表示されたけど、2003 Serverで動かしたら真っ白だな。


376:デフォルトの名無しさん
12/05/18 17:55:50.96
>>375
Direct2D版ではないよ


377:デフォルトの名無しさん
12/05/18 21:27:12.53
>>374
たかだか1万個のオブジェクトの描画にこの時間だからね。
URLリンク(msdn.microsoft.com)

パフォーマンスについては割り切るか、WPFを捨てるかのどっちかじゃないかな。
Direct2D使って今回の件を解決したとしてもちょっと複雑なレイアウト組んだらすぐ重くなって嫌になると思うよ。

378:デフォルトの名無しさん
12/05/18 21:36:27.50
WPF使って高速に描画するならDrawingほにゃららを使うのがいちばんよいんだっけ?Direct2Dとかは除いて。
で、それはSilverlight,WP7、Metroにはないんだっけ?

379:デフォルトの名無しさん
12/05/19 01:53:55.48
パフォーマンスよりも、いまさらWinFormsには戻れないよ。WPFというより、XAML+C#が主流です。

380:デフォルトの名無しさん
12/05/19 01:58:42.20
WinFormsの方が作りやすい

381:デフォルトの名無しさん
12/05/19 02:00:40.81
コントロールに値代入してくのもうめんどい

382:デフォルトの名無しさん
12/05/19 03:19:45.32
URLリンク(mumurik2.wordpress.com)

もうすでにオンスポット入力をWPFで実現している人がいるので、表示属性の取得をやってみた
でも、0x80040201がthis._context.GetSelection()の段階で出てどうもうまく行かない
どうすれば取得できるんだろう
このままじゃあ使い物にならないよ

URLリンク(codepad.org)
TextStore.cs


383:デフォルトの名無しさん
12/05/19 03:19:46.70
一度やったパターンだとwpfの方がラクな気もしてきたが、
ハマると100倍時間かかる。。慣れてないだけといえばそうなのかもだが・・

384:デフォルトの名無しさん
12/05/19 12:49:06.38
>>382
RequestLock() してない。

385:382
12/05/19 13:06:12.70
>>384
デバッカーで例外が出る時の状況を調べたんだが、すでにロックされてた


386:382
12/05/19 13:17:00.08
すまん。
間違えて別のメンバーを渡していたのが原因だった
でも、今度は別の問題が発生した
property.GetValue()でプロパティの値を取得してGUIDを取得しようとしてるんだが、guidを取得する段階でInvaildCastExpectionという例外が発生してしまう
guidを取得するにはどうしたらいいの?

URLリンク(codepad.org)

387:デフォルトの名無しさん
12/05/19 14:11:32.72
実行不能なコードの断片なんか出されても回答のしようがない

問題を再現可能な、最小の実行可能なコードを出せ

388:デフォルトの名無しさん
12/05/19 14:51:44.08
>>387
分かった。出してみる
URLリンク(kie.nu)
ManagedTSF

389:デフォルトの名無しさん
12/05/19 15:24:18.85
>>388
GetPropertyの第一引数が間違ってない?
URLリンク(msdn.microsoft.com)(v=vs.85).aspx

390:デフォルトの名無しさん
12/05/19 15:48:46.40
>>389
多分、これで合ってると思うが…
間違ってるってどういうこと?

391:デフォルトの名無しさん
12/05/19 16:04:01.18
URLリンク(msdn.microsoft.com)(v=vs.85).aspx

にはpredefined property identifiersを指定しろとあるのに、
何故かIIDを指定してるからさ。

そのIIDがpredefined property identifiersとしても使えるってのなら話は別だけど。

392:デフォルトの名無しさん
12/05/19 17:27:43.29
>>391
IIDの実体はGUIDだから使えるよ


393:デフォルトの名無しさん
12/05/19 18:07:58.90
>>392
俺が昔作ったやつの断片コード。参考になれば。
URLリンク(codepad.org)


394:デフォルトの名無しさん
12/05/19 18:29:02.81
>>393
ありがとう
参考になった
もし、差支えなければ、コード全部アップしてくれ
車輪の輪の再発明はもうこりごりだ(笑)

そういや、コード読んで気になったんだが、VARIANTはどこの名前空間で定義されてるの?
VARIANTって.NET Frameworkにはない型のはずなんだが
あと、_servicesはどういう感じでインスタンスを作ってるの?

395:デフォルトの名無しさん
12/05/19 20:45:42.40
>>394
簡単なサンプルつけといた。
URLリンク(docs.google.com)

VARIANT は探せばいくらでもサンプルでてくるだろ、と言いつつ自分は
Reflectorでランタイムから抜き出したw


396:デフォルトの名無しさん
12/05/19 21:02:31.31
PROPVARIANTはともかく、VARIANTはObjectじゃないのか

397:デフォルトの名無しさん
12/05/19 21:05:10.22
>>395
ありがとう
すごく助かった


398:デフォルトの名無しさん
12/05/19 21:05:53.35
>>396
くぐったら、それができたんだが、objectだとどうもGUIDが取得できない


399:デフォルトの名無しさん
12/05/19 22:04:45.48
>>396
2年ぐらい前に作ったやつだから良く覚えてないけど、
>>398が言うようにobjectだと正しく取得できなくて、色々調べた挙句
ランタイムの定義をぶっこ抜いたらVARIANTだった、と記憶してる。
ランタイムの定義がobjectではなくVARIANTだから無理なんだろうな、と結論づけた。

400:デフォルトの名無しさん
12/05/20 00:43:41.34
VT_I4なら、System.Int32とか整数系の何かに一度キャストしてからでもだめなん?


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