[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 09/14 16:35 / Filesize : 183 KB / Number-of Response : 673
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3



1 名前:デフォルトの名無しさん [2009/01/09(金) 22:14:36 ]
あたらしいGUI FW、WPFについて語るすれ。
.NET3.5 SP1 もリリースされて盛り上がってまいりますた。

Visual Studio 2008
ttp://www.microsoft.com/japan/msdn/vstudio/
Microsoft .NET Framework 3.5 Service Pack 1
ttp://www.microsoft.com/downloads/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=ja
WPF Toolkit - October 2008 Release
ttp://www.codeplex.com/wpf/Release/ProjectReleases.aspx?ReleaseId=15598

関連スレ
Microsoft Silverlight 2.0 その3
ttp://pc11.2ch.net/test/read.cgi/tech/1227324813/

過去スレ
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/

283 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 08:52:06 ]
xamlとC#の変換ツールないですか?
いきなりxaml使えといわれても何やってるのかよくわからないものは気持ち悪くてさわれない

284 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 09:37:19 ]
>>283
それを言うならxamlとC++の変換じゃないの?
C#から使うものだけど実装自体をC#でやってるわけじゃなかろう。

俺は詳しくないからxamlをパースしたあとC#に変換しているのか
C++で直接動かしているのか詳しくは知らないが、
283はC#のメモリ管理が内部で何やってるかわからんから気持ち悪いとか言って
わざわざC++で書いたりするわけじゃないんだろう?

ああいう記法でラッピングした以上制約が色々あるから気になるならWindowsFormでやればいいし
そこまで潔癖に気にするやつが使う代物でもないと思う。

285 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 10:11:12 ]
むしろaspxだろうJK

286 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 13:02:03 ]
>>284
これはひどい

> C#のメモリ管理が内部で何やってるかわからんから気持ち悪いとか言って
CGの動作原理を理解すれば気持ち悪くなくなる

同様に、XAMLとC#の対応関係を理解すれば、XAMLに対する気持ち悪さも消えるだろう

対応関係はDependencyPropertyの解説などを見れば、だんだんわかってくるが、
てっとり早く理解する為に変換ツールが欲しくなるのも理解できる

けど、変換ツールは見たことないな
ライブラリはXAMLをパースして、(ILを出力せずに)直接オブジェクトを生成しちゃってるし

287 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 13:53:48 ]
XAMLがC#のコードとして表示されてるのを見たことある気がするんだが、
VisualStudioにそういう機能なかったっけ?

288 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 14:08:35 ]
アプリケーション定義のxamlならobjフォルダにC#コードが出力されるけど。

289 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 14:15:58 ]
<x:Code>
```
</x:Code>
のことを言ってたりする?
これならXAMLの中にそのまま記述できるけど?

290 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 14:34:26 ]
>>288
ああ、それだった。たいした情報はないのな。

291 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 16:03:42 ]
>290
StartupUriのxamlをフレームワークのAPI使ってロードするだけのコードだからね。



292 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 21:04:52 ]
>>283はXAMLがどうC#と関連づけられるか分からないから気持ち悪いと言っているんであって、
>>284が言うようなC#のメモリ管理なんて言ってないだろうが。

XAMLで書けることはC#で書けるんだから、C#がわかるなら気持ち悪いなんて事は無いだろうに。

293 名前:284 mailto:sage [2009/02/20(金) 22:05:03 ]
すまん、俺がボケかましてただけだった。
milcore直接たたいてるのはWPFでXAMLじゃなかったわな。
直接たたいてるとしたらアンマネージドだからああいう物言いになったと。

メモリ管理どーのってのはあくまでも例え。286は例えとわかってくれているが292には通じんかったようだ。
GCは挙動わかっててさえ気持ち悪いとか非効率とかよく言われるものなのに、
まずGC積んでるC#自体を気持ち悪がらないのにXAML程度を気持ち悪がる理由がわからんって事。
例え悪くてすまんな、低脳なんで。

ただ、XAMLで書けることはC#で書けるというのは大抵書いてあることだけど
そのままパースして翻訳されてると俺は思ってないし、
そう考えると実際に内部で何やられてるかわからんと言う意味で
283が気持ち悪がってるのかなとは思い直した。

294 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 22:12:51 ]
milcoreは最終的な一番低いレベルの描画に使ってるだけ
XAMLをパースしてるのはフレームワークのマネージコード

295 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 22:20:51 ]
WPFは最終的な描画以外は全部C#で書かれてるよ
SilverlightはアンマネージC++にごくごく薄いマネージドの皮をかぶせただけ

296 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 22:28:05 ]
>>294,295
把握した。

297 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 00:04:48 ]
マイクロソフトの人がこのスレみて反省してくれればいいのだが

298 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 01:52:02 ]
マネージからmilcoreたたければなー


299 名前:デフォルトの名無しさん [2009/02/21(土) 09:39:09 ]
299

300 名前:デフォルトの名無しさん [2009/02/21(土) 09:39:45 ]
300

301 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:20:19 ]
Dispatcher.InvokeするとTargetInvocationExceptionが起きるんですが、どうすれば回避できるのでしょう?



302 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:25:45 ]
中身(InnerException)は?

303 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:27:50 ]
ごめんなさい、知識なさ過ぎて答えられません
InnerExceptionとは何でしょう?

304 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:48:19 ]
ああ、TargetInvocationExceptionっていうのは呼び出した先でエラーが起きてるってことなのですか?
検索してもさっぱりわかりませんでした
それでは調べてみようと呼びだしてるメソッドの中身をtry catchで囲んでみたらなぜかエラーが起きなくなりました
なにがおきてるんでしょう?

305 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:56:08 ]
try{
ほにゃらら
}catch(Exception e){
MessageBox.Show(e.InnerException.ToString());
}
してみたら?ていうか、キャッチしなかった場合にデバッグ環境で表示されるダイアログでも
InnerExceptionは見れるけど。

306 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:58:33 ]
ごめんなさい、エラーおきてました
時間なくてあせってて
原因もわかりました
お騒がせしました
お付き合いありがとうございました
では

307 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:14:02 ]
e.ToString() したら InnerException も連鎖的に出してくれたような

308 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:23:18 ]
TargetInvocationExceptionが起きると出してくれないんですよ
だから何が起きてるのかさっぱりわからなくてパニくりました
はずかしい

309 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 01:12:03 ]
違うスレッドで起きてる例外だからスタックトレースとしては連続してないってだけだろ。
ちゃんと例外の発生したスレッドというかメインスレッド側で処理しておけ。

310 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 11:55:11 ]
Blendがうんこ過ぎてメモ帳以下ですが、私の使い方が間違っているものだと思うので質問します。

BlendでBindingするときに、勝手に全ての対象へ「x:Name」を定義してしまうのですが、
デフォで親参照とかにする設定などありますか?

311 名前:デフォルトの名無しさん [2009/02/23(月) 12:51:58 ]
xamlっていったんC#のコードに変換してからコンパイルされるんですか?
コードビハインドのコンストラクタにあるInitializeComponent()の定義を参照
すると、window1.g.csみたいなファイルが生成されて、xamlを置き換えた
windows forms時代のようなコードが見られるんですが。

そうやってるなら、いっそのことxamlなしでc#オンリーの選択肢もほしい。
RADツール使うなら、xamlだろうとc#だろうと、かわらんし。

>>283
激しく同意だ。xamlはとにかく裏で何やってるのかさっぱりわからんのが
気持ち悪い。
さっきのInitializeComponent()メソッドなんて定義がどこにもないのに、
使えることになっている。自動生成されたcsファイルいじったらどう反映される
んかねえ。  だいたい、プログラムのエントリポイントはいったいどこにある
んだ??? いくらなんでも隠蔽しすぎなんじゃないのかね、wpfは。



312 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 13:03:25 ]
根本的に間違ってる
XAMLはC#のコードに変換しているわけではない
WPF自身が実行時に直接XAMLをパースして組み立ててる
window1.g.csはXAMLを読み込む処理を呼び出して
読み込まれた要素を対応するC#のフィールドに代入するためだけに生成される

313 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 13:11:51 ]
C#だけでも作れるよね?
xaml使ったのとC#だけのもの、初期化処理は違うとしてもほぼ等価な動作すると考えていいの?

314 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 13:25:07 ]
それはもちろんそうだけど
RADで生成するからxamlだろうとC#だろうとかわらんというなら
わざわざC#を吐かせるメリットがない
言語別に対応しないといけないし動的に読み込むこともできないし
人間が読んだり修正したりするのも難しいし
RADが人間による修正に対応するのも難しい

315 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 19:33:27 ]
>>311
XAMLからコントロールの論理ツリーが生成される。〜.g.cs のC#コードはそれを参照するため。
それと、ASP.NETと違ってコントロールへはIDによるアクセスじゃなくなった。

> xamlはとにかく裏で何やってるのかさっぱりわからんのが気持ち悪い。
裏とか表ってw
これはW*Fの基本理念の一つで、「1つのプログラム言語やコードで何でもでき、そして何でもやる。」
という旧態のプログラマ的な思想から脱却して、高度にモデル化され、そして機能と役目の分担が
進んだ結果、こう変化したんだよ。

>>313
できるよ。 過去の資産であるWindowsFormライクなプログラミングスタイルも継承しているからね。
過去の資産=過去の頭脳w ・・・過去の技術者を一気に冷たく捨てないところがマイクロソフト。

316 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 19:38:21 ]
すごく…
胡散臭いです

317 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 20:08:53 ]
UI専用の言語とその構造に基づいたデザイナという組み合わせは、C#のコードをドキュメント化
されていない流儀で自動生成するブラックボックスなデザイナよりも圧倒的に優れていると思う。
Windows Formsは昔のVisual Basicのノリから抜け出せていなかった。

それに、コンテナの配置はxamlでやって、コントロールの動的生成をコードでやって、とか、
役割分担のさじ加減をプログラマがコントロールし易い(Windows Formsでもできるけど)WPF
の魅力だと思う。

xamlはxmlベースの構造的な言語だから、不明瞭なのは直接の子要素がChildrenプロパティなのか
Contentsプロパティなのか、くらいだけで、同等のコードをC#で書くのってとんでもなく楽。


318 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 20:28:48 ]
いやおまえら、partial classくらい知ってろよ。
2.0からずっと、UIとイベントの定義は一緒だろうが。

WindowsFormsとXAML、どっちも同じ。ASP.NETも。
XAMLはC#で全く同じものが書ける。これは最終的に一つのクラスになるから。
複数のソースで一つのクラスが定義できるのがpartial class。XAMLのように
言語が異なるのは既にASP.NETでやっている。

319 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 20:38:49 ]
ここまでの議論の参加者で*.xaml.csでpartial クラスの機能が使われている事を知らない奴が
いるとは思えないんだが・・・

320 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 20:53:59 ]
時代はpartial !! じゃなくてw
C#使ってるならそのメカニズムくらい分かってる筈だよ。

つーか、Formデザイナからだけでなく、XML構文によるUI要素の
名前空間、クラス、プロパティ、イベントの表現が、公式フォーマットの
XAMLドキュメントという定義で可能になったことが新しい。

321 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:02:35 ]
そうそう。UI定義の方法は、Windows Forms時代には、デザイナが勝手な流儀で勝手にやっていただけ。でもxamlはXMLベースで標準の構造的な仕様が定まっていて、その構造の上にデザイナが
乗っかっている。だから、ブラックボックスで気持ち悪い、とはならない。



322 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:29:15 ]
以前に書き込んだC#+WPF+ARToolkitPlus+DShow.NETでミクさん大放出を、
Windows Media Playerの視覚エフェクトにしてみた。WMPのSDK的に視覚エフェクト
プラグインはC++で作ってオンフレームでデバイスコンテキストに描画するように
なっているので難儀したけど、C#板でCOM InterOpについて助言してもらってどう
にかC#+WPFだけで全部やれた。

動画:www.nicovideo.jp/watch/sm6242828
ソース:sites.google.com/site/augmentedrealitytestingsite/download
のWMPEmitMiku.zip

なんかもうコンセプトがカオスになってきて、WPF板的にスレ違いっぽくなってきたので
これで終わりにするわ。後の進展(あるか分からないけれど)に興味がある人がいたらニコ動の
マイリストでも時々見てくれ。

323 名前:デフォルトの名無しさん [2009/02/23(月) 21:36:00 ]
> window1.g.csはXAMLを読み込む処理を呼び出して
> 読み込まれた要素を対応するC#のフィールドに代入するためだけに生成される

いっている意味がよくわからないんだけれど、

window1.g.csはイベントのシンクとかも処理しているように見えるんだが。
フィールドの代入だけなんて代物じゃないんじゃないの?
xaml全体がシンタックスシュガーかと思っていたよ。


そんなとこまで隠蔽して、

324 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:40:22 ]
323が隠蔽された!

325 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:49:21 ]
window1.g.csがやってること
・リソースのXAMLを読み込む(Application.LoadComponentに丸投げ)
・ロード後,CLRフィールドに要素を代入
・イベントハンドラのアタッチ

326 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:59:07 ]
C#だってILに変換される。それを隠蔽とは言わない。
期待される動作が一通りで、その通りの動作をするのならば、より低いレベルが隠蔽されていても
問題にはならない。必要に応じて高レベル、低レベルを使い分ければ良い。

ブラックボックスが気に食わないのは、ただ一通りの動作を期待できないからで、それは知識不足
のせいだと思うんだけど。

327 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:13:06 ]
XAMLをAPIでパースして、親子関係にのっとり
それぞれのUI用クラスを生成してるだけだろ?

どこが隠蔽されてて気持ち悪いのかぜんぜんわからねーよ。

328 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:22:48 ]
バインディングとかがイベントで実装されている事を知らずに、謎のコードが自動生成されている
とか勘違いしているのかなあ。

俺が気持ち悪く感じるのは、XAML記述上の直接の子要素がどのプロパティ(ChildrenとかContentとか)
に対応するのかXAMLを見ただけでは分からない事だけだ。まあ確かにこれだけは気持ち悪い。

329 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:14:26 ]
以前アップしたXAMLを使わないWPFの例
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8924.txt
一番下のXAMLのWindowsタグをPageに変えて、utf-8でhoge.xamlで保存。
IEで開けばloose xamlでも動く。


330 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:42:06 ]
>>322
ARToolKitはC++でライブラリをラップして、
DLL作ってから参照してるのかいな?

331 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:57:40 ]
>>330
その部分はbrains-N-Brawnさんの仕事。
``ARToolKitPlus - modified to be a DLL and export C-style functions that can be pInvoked from C#''
www.mperfect.net/wpfAugReal/
その部分だけpure .netじゃない。そのDLLをPInvokeするラッパはbrains-N-Brawnさんのを拝借
していてそれはpure C#(PInvokeがpureかは別として)。それからDShow.Netも(COM InterOpが
pureかは別として)pure C#。そんでもって3D出力は、NyARToolkitなんかがDirectX SDKに含まれる
Managed Direct Xを必要とするのに対しこちらはWPFの3Dを使用しているのでまあ敢えて言えば
pure(標準の) C#。
というわけで、上記DLLを除いて、オリジナル・非オリジナルのコードいずれも完全に標準のC#と
.NET 3.5(WPF)で書かかれている。まあ、NyARToolkitなんかはARToolkitのコードをマネージコード
に真面目に移植しているので、どっちがpureかというのは微妙だけど。でも、3D出力がWPFである点
によって、とっつき易いアプローチになっている面は確実にあると思う。というか、それで無理やり
関連付けてこのWPFスレに投稿しているわけなんだが。




332 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:58:25 ]
ごめん、改行が変になって読みにくくなった。

333 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:00:05 ]
Windows フォトギャラリーで露出とかコントラスト調整すると
スライダーの移動に合わせてほぼリアルタイムに描画されるんですが、
この機能を自作 WPF プログラムに実装したい場合どうすればよいでしょうか?






334 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:07:08 ]
WriteableBitmapでも使って更新しまくれとしか答えようがない
画像処理自体はスレ違い

335 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:10:59 ]
詳しくないんだが、一応バインディングとかINotifyPropertyChangedインタフェースとかの話題じゃないか?

336 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:17:39 ]
ビットマップの方更新するだけでよかったはず

337 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:19:37 ]
どのタイミングで更新、っていいたいんじゃ?

338 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:22:30 ]
ダイナミックリソースとかバインディングじゃないの?

339 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:22:59 ]
>>331
を、便利な物を作ってる人がいたんだ!。
ARには興味あったのでいじくってみる。

ソース読ませていただきます。

340 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:24:30 ]
よし、リフレクタの出番だ。
www.red-gate.com/products/reflector/

341 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:27:05 ]
ほんとにビットマップ更新するならバインディングじゃどうしようもない
SliderのValueChangedイベント使うくらい



342 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:38:30 ]
結局C#なのね

343 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:43:21 ]
>>333の言いたいことってこういうこと?
blogs.wankuma.com/kazuki/archive/2009/01/12/166166.aspx

344 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 09:29:03 ]
>>323はタブーに触れて消されちゃったんだなあ。

345 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:55:23 ]
入力可能なDataGrid風ListView↓使ってる人っている?

ttp://pro.art55.jp/?eid=908012
ttp://d.hatena.ne.jp/Yamaki/20070706/1183688885

テキストの編集中、右クリックでTextBoxデフォルトのContextMenuを開くと
TextBoxがキーボードフォーカスを失い、編集モードを終えてしまうんだけどそういう風にはならない?
ContextMenuのアイテムも選択できない。

346 名前:333 mailto:sage [2009/02/24(火) 22:01:41 ]
おまえら、エスパーすぐるw

>>343 そこを参考にして画像ビューワーを作ってて、
>>341 のイベントで、
>>334 の方法で自前で露出の調整をしたら、
イベントの処理に5秒もかかっちゃって、
がんばって最適化しても1秒を切ることができなくて、
ためしに、 Vista の Windows フォトビューワーいじってみたら
瞬時に変わるので、これは、GPU 使ってるとか、DirectX 使ってるとか、
なんか自分の知らない WPF テクニックがあるのかと思って質問しました。


347 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:10:35 ]
だから、>>340のリフレクタで解析してみなよ。
俺、Windows XP⇒Windows 7ベータだから、Windows フォトギャラリーないんだ。

348 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:17:07 ]
WPF自体はDirectXつかってるけどな

349 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:46:22 ]
単に画像処理の実装が悪いだけだろ
WPF自体の描画更新なんか画像処理に比べたら一瞬

350 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:47:51 ]
unsafeってしってるか?

351 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:48:31 ]
Bitmapの処理はメモリをロックしてアンマネージでポインタを使わないと遅いぞ〜。



352 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 22:52:26 ]
ここはWPFスレですよ
WiteableBitmapは十分速いよ
もともと>>351みたいな書き込みの方法しか用意されてない

353 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 23:03:59 ]
writeableBitmapにコピーするデータ作るのに時間かかってるんだろうが

354 名前:333 mailto:sage [2009/02/24(火) 23:05:09 ]
>>347
>>340 は俺へのレスだったのか。すまん。
reflector は知ってたけど、Windows フォトギャラリー って .net のプログラムだったんだ?
今日は出先なんで無理だが、家帰ったら試してみる。

>>349
そうなんだよ。だから、フォトギャラリーがどうやってるかわかればなぁ・・・と。

>>350 >>351 >>352
WritableBitmap で unsafe でポインタ使っても遅くて、
C++ で書き直して1秒切るところまでいったんだが、
まだ遅いので質問するにいたったわけです。

355 名前:333 mailto:sage [2009/02/24(火) 23:06:15 ]
>>353 そのとおりです。

356 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 23:07:03 ]
アルゴリズムが違うとか,プレビュー用に簡易に処理してるとか
いずれにしてもこれ以上はスレ違い

357 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 23:13:09 ]
HLSLでやってみるとか
WPFでも使えるようになったことだし

358 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 23:21:00 ]
>>354
もはやあれで半分反則だけどこんなのがある。反則なので速いと
いっていいのかわからんが

ttp://www.codeplex.com/wpffx

川西先生の紹介↓
ttp://blogs.msdn.com/hiroyuk/archive/2009/02/09/9407704.aspx

ちなみにちょっとビルドに注意。Codeplex にある別のやつがいる

359 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 04:54:37 ]
Windows Formsコントロールのオーナードロー拡張なんてもういやだ。
WPFの入れ子コントロールとXAMLが欲しい。
あと文字の強制アンチエイリアスはさせたくない。

こんな要望に対するソリューションて現状ある?

360 名前:347,340 mailto:sage [2009/02/25(水) 05:17:51 ]
>>354
え、WPFスレで、しかもWPFでどうやるのかって質問だったから、.NETプログラムなのかと勝手に
勘違いしてしまった。そうでないのなら、普通にシェーダ使ってるんじゃないの?

純粋なWPFアプリケーションだとしたら、>>358なんかで紹介されているWPFでのシェーダの使用
は最近の更新で可能になったものだから、Vista標準のプログラムとしてはないと思う。

結局、.NETプログラムじゃない、シェーダを使ってるか、画像処理を気合で頑張っている、つまり
スレ違いって所で落ち着きそうだ。

361 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 06:14:00 ]
>>359
XAMLの中で、例えばテキストボックスに

 <TextBox RenderOptions.EdgeMode="Aliased" x:Name"textbox1" 〜 />

と記述した場合、カーソルバーは1ドット幅の縦棒でシャキーンと表示されるけど、テキスト文字だけは
常にアンチエイリアス処理されますね。これだけ我慢すれば、最良のソリューションじゃないでしょうか。



362 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 09:29:50 ]
>>359
Form上でそれ実現する奴作った。それ使ったシステム5月ぐらいにリリース予定。

363 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 09:32:20 ]
手伝おう
テストするからうpして

364 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 09:52:25 ]
写真だけうp
ttp://www.rupan.net/uploader/download/1235523080.jpg

365 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 11:10:48 ]
>359
ElementHost使えば、winformsにコントロール単位でWPFコントロール
持ち込めるだろ。例えば、ListBoxだけとか。

んで、起動時にSystemFontsの中から適当なの選んで設定すれば、
フォントもwinforms同様になる。

366 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 13:33:55 ]
初心者な質問で恐縮です。
InkCanvasのペンの色を変える方法を教えてください。
xamlとC#と両方の方法をお願いします。


367 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 13:40:27 ]
msdn.microsoft.com/ja-jp/library/system.windows.controls.inkcanvas.aspx
MSDN読めないならWPFなんか手を出さない方がいい

368 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 17:45:18 ]
キーバインディングでメソッドを呼ぶときは、どのように書けばいいですか?
たとえばEnterで、設定ボタンを押すとき。
C#だけなら、
private void settingbutton_Click(object sender, EventArgs e){}
を呼ぶには、
settingbutton_Click(this, EventArgs.Empty);
と書けばいいのですが、xamlではどう書けばいいですか?
<KeyBinding Key="Enter" Command="Close"/>
のCommandのところに書けばいいのかと思っているのですが、ここを適当に書くと、
'CommandValueSerializer' ValueSerializer は 'System.String' から変換できません。
とエラーになります。System.Stringということは、デフォルトでいくつかきまっていると思うのですが、その一覧はどこにあるのでしょう?
またその一覧のなかで、メソッドを呼ぶStringはなにでしょう?
よろしくお願いします。


369 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 17:59:24 ]
> settingbutton_Click(this, EventArgs.Empty);
> と書けばいいのですが、
の意味が心底分からんが

適当にCommandsクラスとか作ってコマンドごとにRoutedUICommandのstatic readonlyフィールドを用意
それをKeyBinding.Commandに設定
あとはCommandBindingでコマンドが呼び出すメソッドを設定

370 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 18:12:04 ]
す…、すまん。ぜんぜんだめだ。
おれが適当に書くとエラーの山だ。
適当にCommandsクラスをどこに作る? .csのほう?

public partial class Commands : Window {
}

コマンドごとにRoutedUICommandのstatic readonlyフィールドを用意
コマンドごと…。ってことは、設定コマンドを作るのだから、

public partial class Commands : Window {
Setting
}

それをKeyBinding.Commandに設定
xamlで
<KeyBinding Key="Enter" Command="Setting"/>

CommandBindingでコマンドが呼び出すメソッドを設定
private void setting(object sender, EventArgs e){//メソッド}

添削頼む…。


371 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 18:28:17 ]
> 適当にCommandsクラスをどこに作る? .csのほう?
> public partial class Commands : Window {
System.Windows.Input.ApplicationCommandsみたいにstaticクラスでいいよ。
新しくcsファイル作ってそこにでも。
まあ別にCommandsクラスじゃなくてもいいけどな。肝心なのはRoutedUICommandのフィールドだから。
ApplicationCommandsみたいにICommandは一つにまとめるのが自然だと思っただけで。

つかまずApplicationCommands.CloseとかでKeyBindingとCommandBinding使ったの書いてみろよ。
MSDNやヘルプのこれらのクラスの解説にサンプルがいくらでもあるから。



372 名前:デフォルトの名無しさん [2009/02/25(水) 18:42:14 ]
WPFの根幹ってWin32API群なの?
.NET とどう違うの?


373 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 19:08:57 ]
WPFも.NETで動くことは変わらない
WPFはSystem.Windows.Formsに代わる新しいGUIフレームワーク
最大の特徴は,Win32ネイティブのコントロールを使用せずにウインドウの中身を
一枚の絵としてすべてのコントロールをDirect3Dで自前で描画してること
ゲームの画面にたくさんのキャラクターを描画するのと同じ仕組み

374 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 19:16:26 ]
ApplicationCommands.CloseでKeyBindingとCommandBindingのは書けてます。
xamlに
<KeyBinding Key="E" Modifiers="Control" Command="Close"/>

csに
private void Close_Executed(object sender, RoutedEventArgs e ){Close();}
public void Close(object sender, CancelEventArgs e){}
です。
じゃあsittingの場合は…。
xamlに
<KeyBinding Key="S" Modifiers="Control" Command="setting"/>

csに
private void setting_Executed(object sender, RoutedEventArgs e ){setting();}
public void setting(object sender, CancelEventArgs e){}
としてはまってるわけです。

で、System.Stringの一覧はどこにあるのでしょう?


375 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 20:11:33 ]
System.Stringは文字列型の事だよ。

それと、<KeyBinding ほにゃらら だけじゃなくて、それと
<CommandBinding ほにゃらら
がセットになって初めてコマンドのバインディングができる。

それから、
<KeyBinding Key="E" Modifiers="Control" Command="Close"/>
の Command="Close" って記述においては、ApplicationCommandsが特別扱いされている。
より冗長だが汎用的な書き方は
<KeyBinding Key="E" Modifiers="Control" Command="ApplicationCommands.Close"/>
となる。つまりクラスのフィールドを指定しているわけ。多分そのエラーメッセージは、この指定
がうまく行っていないという事。それでもって、自分で作ったクラスの静的フィールドを指定する
には、さらにxamlのマークアップ拡張を使う必要がある(多分)。

だから、xamlは
<Window x:Class="Foo.Window1"  
...
    xmlns:foo="clr-namespace:Foo">
  <Window.CommandBindings>  
    <CommandBinding Command="{x:Static foo:Window1.FooCommand}" Executed="FooCommand_Executed" />    
  </Window.CommandBindings>
  <Window.InputBindings>
    <KeyBinding Key="f" Modifiers="Control" Command="{x:Static foo:Window1.FooCommand}" />
  </Window.InputBindings>  
</Window>
で、Window1.xaml.csの中の# public partial class Window1 : Window  {...}の中に
staticでreadonlyなFooCommandフィールドと、FooCommand_Executedメソッドを実装する。

多分こんな感じ。

376 名前:375 mailto:sage [2009/02/25(水) 20:21:42 ]
>>375は俺自身参考にした事がある
blogs.wankuma.com/kazuki/archive/2008/03/16/127942.aspx
の記事を読み直してまとめたもの。詳しくはリンク先の記事を、やる気があれば
連載になっているから最初から、読んで行って。

377 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 21:00:22 ]
実験してみたけど、
Command="{x:Static foo:Window1.FooCommand}"

Command="foo:Window1.FooCommand"
とどちらでも問題ないみたい。だから必ずしもx:Staticのマークアップ拡張を使う必要はない。

378 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 21:44:38 ]
>>373
ありがとうございます
DirectX系で壁画するということはGPUと相性がよさそうですねVista Aeroなんかとも


379 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 08:10:20 ]
原始人現る

380 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 08:20:15 ]
壁画って何だよ?

381 名前:デフォルトの名無しさん [2009/02/26(木) 09:15:54 ]
>>373
WPFで作ったアプリのUIを自動テストするのは、どんな感じ?
大昔つくったアプリは、コントロールにメッセージ送りつけてやったけど。



382 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 10:00:52 ]
UI Automationという機能を使うらしい

383 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 14:11:27 ]
だれか優しくスマートに懇切丁寧におしえろ。
ListBox.Items.Add("うんこ")見たいな物を3回ループしてやると選択がくるっとんねんけどな、コンテンツだと正常なんだわ。
ListBoxて文字でアイテム管理しとん?
解決方法どないやねん???
>>384

384 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 14:19:06 ]
質問が把握できないので返答もできないわ。力になれなくてごめん。

385 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 14:21:26 ]
そんな答えほしなかったわぁー。
おっちゃんも暇ちゃうねん、出来るだけはよう答えてくれへんか?
色々問題もあってやな、今火達磨状態やねんで?

誰かに伝えたいこの想い

386 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 16:53:09 ]
>>381-382
皆さん、UnitTestのテストレポートってどうしてる?
基本的に、初期値、幾つかの中間値、そして境界値とその内外だけを確認?

387 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:46:12 ]
UnitTest?なんですかそれは
ゆとりにもわかるように説明してください

388 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 01:04:38 ]
WPFで読み込んだファイルの取り扱いについて質問があります。
下記のようにファイルを読み込むとロックするのですが、
string imgFile = @"C:\tmp.jpg";
img.Source = new BitmapImage(new Uri(imgFile));
ロックをはずす方法を教えてください。

ちなみにFormの場合には、
pictureBox1.Image = Bitmap.FromFile(imgFile);
pictureBox1.Image.Dispose();
でロックをはずすことができます。
よろしくお願いします。


389 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 01:41:22 ]
Windows.FormsのBitmapでロックされないように
MemoryStreamに読み込んでそこからBitmapを読み込むことはよくやる。
同じようにMemoryStreamに読み込ませてBitmapDecoderで読み込めばいいんじゃないかな?

390 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 02:07:24 ]
>>388
BitmapImage bmp = new BitmapImage();

bmp.BeginInit();
bmp.UriSource = new Uri(imgFile);
bmp.CacheOption = BitmapCacheOption.OnLoad;
bmp.EndInit();

391 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 02:49:29 ]
みなさま。
早速ありがとうございます。
>>390
これで試してみました。
しかし、ウィンドウは開くものの、ファイルはなにも表示されなくなってしまいました。




392 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 12:30:28 ]
>>391
コントロールに読み込んだイメージセットしてないだろ

393 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 12:38:49 ]
UI要素の下や上だけに境界線を引くにはどうしたらいい?

394 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 12:46:38 ]
>>392
bmp.UriSource = new Uri(imgFile);
だけではセットしたことにならないの?
セットの方法を教えてください。


395 名前:393 mailto:sage [2009/02/28(土) 12:57:36 ]
自己解決
<Border BorderBrush="Black" BorderThickness="0 1 0 0">

396 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 13:27:07 ]
>>394
処理の内容ちゃんと理解しなきゃ

397 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 13:33:32 ]
>>394

>>388に書いてある
img.Source = new BitmapImage(new Uri(imgFile));
ってコードの、右辺の処理new BitmapImage(new Uri(imgFile))をファイルがロックされないように
書き直したのが>>390。出来上がったBitmapImageのインスタンスをimg.Sourceから参照させる
処理は書かなきゃ。

398 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 18:29:38 ]
できました。1日いろいろ試してました。

(1)img.Source = new BitmapImage(imgFile);
(2)BitmapImage img = new BitmapImage();
img = imgFile;
(3)BitmapImage img = new BitmapImage();
img = bmp;
(4)BitmapImage img = new BitmapImage();
img.Source = bmp;
(5)BitmapImage img = new BitmapImage();
img.Source = bmp;
(6)BitmapImage img = new BitmapImage(bmp);

結局次のようにしてできました。
BitmapImage bmp = new BitmapImage();
bmp.BeginInit();
bmp.UriSource = new Uri(imgFile);
bmp.CacheOption = BitmapCacheOption.OnLoad;
bmp.EndInit();
img.Source = bmp;


399 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 18:30:14 ]
処理の内容の理解をしている限りでは、
BitmapImage bmp = new BitmapImage(); //あたらしいbmp変数を作る。bmpのインスタンスを作る。
bmp.BeginInit(); //bmpの処理を始める。
bmp.UriSource = new Uri(imgFile); //bmpにUriソースからデータを読み込む。
bmp.CacheOption = BitmapCacheOption.OnLoad; //??
bmp.EndInit(); //読み込みの終了。これでディスクとは切り離される。
img.Source = bmp; //画面のimgにbmpをいれる。これでimgにbmpを表示できる。

これで表示はできロックもなくなりました。
しかしながら、問題が。
目的のファイルの削除をする、という動作がまだできないままなのです。

削除処理は次のように書きました。
private void button1_Click(object sender, RoutedEventArgs e)
{
System.IO.File.Delete(imgFile);
}
これでボタンを押すと、ウィンドウが消えるのですが、ファイルは残ったままです。
アドバイスお願いします。


400 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:07:14 ]
>>399

string path = @"C:\test.jpg";
BitmapImage bmp = new BitmapImage();
bmp.BeginInit();
bmp.UriSource = new Uri(path);
bmp.CacheOption = BitmapCacheOption.OnLoad;
bmp.EndInit();
image1.Source = bmp;
System.IO.File.Delete(path);

これで動いたよ


> 削除処理は次のように書きました。
> private void button1_Click(object sender, RoutedEventArgs e)
> {
> System.IO.File.Delete(imgFile);
> }
これのパスを間違えてるとかじゃね

401 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:14:16 ]
>>399
>bmp.CacheOption = BitmapCacheOption.OnLoad; //??

分からなければMSDNで調べろよ…
msdn.microsoft.com/ja-jp/library/system.windows.media.imaging.bitmapimage.cacheoption.aspx
msdn.microsoft.com/ja-jp/library/system.windows.media.imaging.bitmapcacheoption.aspx



402 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:18:44 ]
> bmp.CacheOption = BitmapCacheOption.OnLoad; //??
なんだよそれ?いい加減にしろよ。

msdn.microsoft.com/ja-jp/library/system.windows.media.imaging.cachedbitmap(VS.80).aspx
これ全部読むまで再質問禁止。

403 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:27:25 ]
>>400
ありがとうございます。
なんだかわからないのですが、一度終了して再起動したら動くようになりました。
いろいろありがとうございました。


404 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 16:49:22 ]
WPFの「Frame」カスタムコントロール作成でこけましたorz
Blendで作ってもらったFrameのXAMLをVSで読み込ませると
「'Frame' ControlTemplate TargetType は、テンプレートの型 'PlaceHolderControl' と一致しません。」(エラー場所は無駄な事言ってるので省きました)
と、例外が発生します。
コントロールを作ってもらっても一緒です。
しかし、これらは実際バグっているわけでもなく、ビルドもコンパイルも正常に動きます。
どうもVSのデザイナだけがこけています。

何かいい回避方法(Frameに似たコントロール)などありませんか?
よろしくお願いします。

環境:Windows7 VS2008

405 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 19:17:27 ]
言ってることがよくわからない
FrameのControlTemplateを作ってるの?それ何の意味があるの?
そんなことしないでユーザコントロールにFrameを張り付ければ一緒だと思うんだが

406 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 19:29:38 ]
FrameってHTML表示したいときとか
「戻る」「進む」ができるようにしたいときに使うんだよわかってる?
コンテンツを飾り付けしたいだけならDecoratorの派生クラス(Borderなど)使う
もちろんFrameを飾り付けするのにもDecoratorが使えるし,普通はテンプレート使わずにそうする

407 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 19:34:06 ]
すいません、言うべき事が抜けすぎでした・・・
分け合って「Frame」コントロールを作ってもらいました。
これはWebページとXAMLファイルを頻繁に行き来することになったのでこのようにしています。
そしてコントロールにする必要があるのは、そのFrameの中にゴチャゴチャしたものをつける必要があったのです。

発注したコントロールに問題があるのかと思ったのですが、Frame自体を少しでも変えるとおかしくなります。
<Window.Resources>
<ControlTemplate x:Key="FrameControlTemplate1" TargetType="{x:Type Frame}"/>
</Window.Resources>

<Grid x:Name="LayoutRoot">
<Frame Margin="128,160,200,131" Content="Frame" Template="{DynamicResource FrameControlTemplate1}"/>
</Grid>
このような簡単なものでもエラーになってしまいます。

理由を教えてください

408 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 19:42:32 ]
ちょっと状況が良く分からないんだけど、WPFにFrameコントロールがあるので
衝突しているんじゃないかな?
 
xmlns宣言で名前空間への参照を追加して、名前空間込みで「Frame」コントロールや
そのx:Typeを指定したらどうだろう?

409 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 19:48:34 ]
その自作FrameのTemplatePart属性は確認した?

410 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 21:00:28 ]
>>408
ちょっと判らなかったです・・・
MSDNをみてやってみたのですがうまくいきません。
アセンブリは「PresentationFramework.dll 内」となっているので問題ないですが、
XMLNSは参照して追加しても「タグ 'Frame' は、XML 名前空間 'schemas.microsoft.com/winfx/xaml/presentation' にありません。」
となってしまいます。

色々やってみた結果、
<Frame Margin="120,192,136,139" Content="Frame" Template="{DynamicResource FrameControlTemplate1}">
<Frame.Resources>
<ControlTemplate x:Key="FrameControlTemplate1" TargetType="{x:Type Frame}">
<ContentPresenter />
</ControlTemplate>
</Frame.Resources>
</Frame>
ではVSでもBlendでもデザイナで編集したり、コンパイルできたりするようになりました。
結局こうなってしまう理由がわかりませんw
リソース内でFrameのスタイルを指定させたいのですが、どうしてもうまくいかない・・・

>>409
これはどういうことでしょうか?
「TemplatePart」というのが判らず仕舞いになってしまいましたorz
申し訳ないです。;;

411 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 21:08:56 ]
コントロールテンプレートは完全に自由に書いていいわけじゃなくて,
最低限テンプレートに含めないといけないコントロールが決められてるのが普通
それを示す属性がTemplatePart
逆に,そういう条件が必要ないならあまりテンプレートを使う意味がない



412 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 21:19:23 ]
>>410
ツール-オプション-テキストエディタ-xaml-その他-既定のビュー

「常にフルxamlビューでドキュメントを開く」
のチェックを外せば直るみたい。

でも、xaml直書きする場合、このチェックは入れておきたいよねえ。
なんか普通にバグっぽいぞ。

413 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 21:38:27 ]
>>411
>コントロールテンプレートは完全に自由に書いていいわけじゃない
てっきり何をしてもいい>>412
物だだと思っていました!
TemplatePartは詳しく調べる必要があるようです。

>>412
うまくいきませんでした・・・
どうしても「'Frame' ControlTemplate TargetType は、テンプレートの型 'PlaceHolderControl' と一致しません」がデザイナのみにエラーが出てきます。
コンパイル、ビルドも出来るので間違ってはいないと思いますが、VSのデザイナが使えないというのはキツイです・・・

414 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 04:37:13 ]
WPFのデザイナは相変わらず貧弱だなぁ

そこが萌えるんだけどw

415 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 16:28:41 ]
WPF始めてみたいけどネット上には驚くほど資料ないねこれ・・・

416 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 16:40:00 ]
InteliSenseこそ最上のヘルプ

417 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 17:02:12 ]
>>416
試すパターンが膨大で困るw

418 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 17:12:14 ]
書店にも本が並んでない
すべてxamlのせいで敷居が高くなってるせいだと思う
WPFだけなら新しいコントロールライブラリってことで十分普及したと思うよ
Microsoftはxaml使うのをWPFが使われるようになってからに遅らせるべきだった

419 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 17:25:04 ]
ネットだと
ufcpp.net/study/dotnet/index.html
とか
uchukamen.com/WPF/Default.htm
くらいを見て、後はいろんな人のブログを見てバインディング周りの
定石をしれば、本当の話IntelliSenseで十分ヘルプになるようになる
と思う。

420 名前:419 mailto:sage [2009/03/05(木) 17:26:32 ]
ごめん、419の前にこれを投稿しようとしたんだ。

俺はWPF+XAMLはWindows Formsや昔のWin32APIでウィンドウ
作ってた時代よりも初心者向けだと思うよ。

本がないのも外国語の物は専門性の高い物から入門書まで多いし、
日本の出版事情が大きいんじゃないかな。



421 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 18:07:43 ]
ちょっと質問!
TextBlockで普通の改行入りテキストを
<TextBlock TextWrapping="Wrap">
あれ?<LineBreak />
声が<LineBreak />
遅れて<LineBreak />
聞こえるよ<LineBreak />
</TextBlock>
こうやって作った後Blendとかに再読み込みさせると「Inline」がいっぱい引っ付いてくるんだけど、この書き方は推奨されていないから?
それともBlendの屁理屈?



422 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 20:01:29 ]
初心者にとっては(とっつきやすさでは)
Windows Forms > WPF/XAML

Windows Formsは
・XMLを編集しなくていい
・APIのデザインも直感的(使いたい機能が「そこ」にある)

423 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:31:12 ]
>>421
意味が同じだから

424 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:27:40 ]
>>422
WPFはWindowsFormsと同じようにAPIベースで作成できるよ。
名前が違うだけでやってることはほぼ同じ。

初心者ってのはおまえ自身のことだろ。

425 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:31:49 ]
>>423
答えてくれてありがとう!
何かTextBlockも機能的にはとてもいいけど、Labelの方が簡単でとっつき易いなー

426 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:43:40 ]
一般のテキスト表示にはTextBlockを使う
Labelは別のコントロールに文字通りラベルとアクセスキーを付けるためだけに使う
ということでおk?

427 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:45:20 ]
Labelは一行
TextBlockは数行
くらいにしか深く考えたことないや。

428 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 23:16:17 ]
GDIが早くていいよ

429 名前:デフォルトの名無しさん [2009/03/05(木) 23:37:44 ]
>>419

bindingが覚えづらい。xml的お作法としてはああなるのが正当なのかも
しれないけれど、直感に反する書き方だし、わかりづらいし、何とかしてほしい
リソースがらみもそう。

とにかくxamlで中カッコ {}が出てくる場面はうんざりする。なんなのこの変態言語
って感じで。

430 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 00:33:21 ]
>>429
それ、マークアップ拡張だから、使わないで普通にBinding要素を子要素として
書く事もできるよ。その方がInteliSenseの支援も受けられるし。
 
RelativeSourceが絡んでくる場合とか、マークアップ拡張使うと
中カッコが二重になって>>429が言う通りうんざりする。入力支援
もないし。でも、Binding要素とそのRelativeSourceプロパティに
RelativeSource要素を普通のxmlの文法で書けば嫌な点は解消される。
 
例えば、前に書いた、Canvasに置いてあるViewport3Dの幅をCanvasに合わせる
コードを書いておくね(なぜかHorizontalAlignment=Stretchだとうまくいかなかった)。
 
 <Viewport3D.Width>
  <Binding Path="ActualWidth">
    <Binding.RelativeSource>
      <RelativeSource Mode="FindAncestor"
        AncestorType="{x:Type Canvas}"
        AncestorLevel="1"/>
    </Binding.RelativeSource>
  </Binding>
</Viewport3D.Width>
 
等価なのは
 
<Viewport3D Width={Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Canvas}, AncestorLevel=1}}/>
 
だけど、これだと>>429が言うように支援がなくて書くのが大変だし、
実行時まで間違いが分からないし、実行時の例外の内容は分け分からないしで
嫌になるのも分かる。

431 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 00:36:17 ]
あと、マークアップ拡張使う方がxmlの入れ子が無闇に深くならなくて済むので
必ずしも悪い事でもない。そこでマークアップ拡張使う場合にお勧めなのが
次のアンチョコ:
go.nbdtech.com?94E138EA





432 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 01:39:57 ]
まともなデザイナーがVSについていればもう少し使われやすいと思うんだがな・・・・
Formsはペタこれするのはわかりやすいけれど、それ以上ができない。
WPFはそういうところがエレガントにできるけど、バインディングとか正直わかりにくい。

433 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 08:13:24 ]
>>429
たしかにな

1.xaml=エレメントの画面表示
2.コード=データの操作
3.補助定義表=それらのバインディング等

みたいに分離してみたらどうなのか。3.を1.にくっつけているからゴチャゴチャになっている。
そういう定義ファイルに、>>430なら、

[ myViewport3D.Width <= myCanvas1.ActualWidth ]

とでも書いておけばそれ1行でOKにする。一目瞭然。初期化等も大方は

[ myWindow1.Background = Brushes.White ]

そこに記述でいいとすれば、xaml自体の方も(エレメントの単純な階層関係記述が基本になり)ごくすっきりする。

でこんなのは、システムがその表を解析して現状xamlに展開する、という形に出来る
(ものが多い、or出来るものだけをこういう初期定義可能にする)だろうから、拡張機能として比較的簡単に出来そうじゃないのか。

434 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 17:29:22 ]
すいません、バインディングに関する質問です
複数のPage間でテキストデータをバインディングするとき、どうすればいいかわかりません。
名前空間などに定義する方法などが考えられるのですが、一番簡単で効率のいい方法はないですか?

435 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 17:57:21 ]
このスレをマイクロソフトに教えればわかりやすい資料つくってくれるかもしれないよ

436 名前:>>434 mailto:sage [2009/03/07(土) 15:56:56 ]
マイクロソフトのサンプルの中にWindow間でデータのバインディングをやっているのを見たのですが、
やっぱり名前空間を全てのWindowのザムルに定義している方法を取っているので、これが妥当だと思う

437 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 12:54:50 ]
ProgressBarでバーをスムーズに(FormアプリのProgressBarStyle.Continuousみたいに)表示させるには
Templateを弄るしかないんですか?

438 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 18:06:04 ]
DataContextにオブジェクトが設定してあるとして
LoadedやUnloadedイベントにそのオブジェクトのメソッドを登録したいのですが
コードを書かずにXAML上だけでできますか?

439 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 04:39:43 ]
ここってsilverlightの話もしていいの?

440 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 08:15:43 ]
>>439
専用スレあるよ。
Microsoft Silverlight 2.0 その3
pc11.2ch.net/test/read.cgi/tech/1227324813/l50

441 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 21:11:14 ]
↑別スレですか
ありがとうございます



442 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 10:41:36 ]
誰かMSに報告
Blendにて「Hyperlink」編集不可
直タグ打ち可

443 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 11:07:30 ]
お前がやれ

444 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 11:24:06 ]
アカウントとるのめんどくせw

エヘッ♪

445 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:36:52 ]
xamlで記述したプログラムととC#のプログラムって
記述方法が違うだけで使ってるのは同じ.NET frameworkだから
性能とかはかわらないんだよね?

446 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:07:15 ]
かわらん

447 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:08:12 ]
ロードはたぶんXAMLの方が遅い
ロード後の動作は全く一緒

448 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:46:48 ]
ありがと
htmlの描き方が苦手なおれはxamlじゃなくてまずC#でWPF勉強するわ

449 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 13:07:52 ]
BitmapImageで読み込める画像形式を追加することはできませんか?
できればアプリケーション内でローカルに追加/削除できて
他のアプリケーションには影響しないようにしたいのですが。

450 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 16:10:21 ]
UriSourceプロパティを使うのはたぶん無理
自前のコードで読み込んでStreamSourceに設定するしかないと思う
でもそうするといちいち他の画像形式に変換しないといけないし
BitmapImageを使う意味もないので
BitmapSource.Createを使ってピクセルデータから直接作った方がいい

451 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 17:17:54 ]
アニメーション設定とかしてる場合、コードとザムルアニメーションはやっぱりコードの方が優先?
設定できたりする?



452 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 17:30:33 ]
後で設定した方が有効になるだけだが

453 名前:デフォルトの名無しさん [2009/03/12(木) 18:30:36 ]
>>433
> 3.補助定義表=それらのバインディング等

これをデザイナのプロパティウィンドウあたりで簡単に設定できれば
xamlの中に取り込まれていても問題ないと思うんだが。
デザイナがひどすぎると思う。

454 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 18:42:18 ]
結局デザイナだろ
WinFormsはもっと汚い形でやってるんだから

455 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 16:04:08 ]
XMLバインディングをやってみたんだけど、「存在するXMLと同期」じゃなくて、
「存在しているXMLをリソースとして利用」のほうが正しい?

どうも作ってみても、EXEの中にリソースとして取り込まれて、XMLファイルの切り替えとかが出来ないw
RSSの仕組みでネットワークにあるものを指定してやると、切り替えとかをネットワーク越しに出来るけどローカルでは無理な感じ。

456 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 16:32:24 ]
ごめん嘘、忘れて

457 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 02:47:23 ]
ポカー

458 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 07:13:23 ]
RichTextBox に Wordwrap プロパティがないんだけども、
改行しないで表示させたい場合どうしたら良いの?

459 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 14:17:38 ]
TextBoxでいいんじゃね?
RichTextBoxの中にあるFlowDocumentだっけか、
あれにパネルとか突っ込んで見たんだけど、どうもスクロールバー自体がテキスト扱いになって操作できないし。

460 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 15:06:30 ]
>>458
msdn.microsoft.com/ja-jp/library/system.windows.controls.richtextbox.aspx
> RichTextBox ではテキストが常に折り返されます。
> テキストの折り返しが不要な場合は、FlowDocument の PageWidth を RichTextBox の幅より大きく設定します。
> ただし、この場合も、ページの幅に達するとテキストが折り返されます。
なので、
<RichTextBox><FlowDocument PageWidth="300"/></RichTextBox>
<RichTextBox><FlowDocument MinPageWidth="680" MaxPageWidth="1024"/></RichTextBox>
みたいに、適当に大きな幅を入れておくとか。
ただ、横スクロールバーを表示すると、最初からスクロールできる状態になってしまうのが難点だけど。
後は、イベントで動的に幅を測定して FlowDocument.PageWidth に反映させるとか。

461 名前:458 mailto:sage [2009/03/14(土) 23:04:06 ]
>>459
色つけたかったんで、TextBoxじゃだめなのよ

>>460
ありがとう。助かったぜ。



462 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:28:01 ]
WCFおもしろいな。しかしスレはない

463 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:17:46 ]
>>462
Webサービス プログラミング総合スレッド
ttp://pc11.2ch.net/test/read.cgi/tech/1031149340/

464 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:38:18 ]
>>462
特に旧来のWindowsForms、これからのスタンダードなWPF、XBAP、Silverlight、そして携帯電話や汎用
ブラウザ向けのASP.NETなんかで相互に共用できるアプリケーションシステムの構築となると、
やっぱりWCFは欠かせないよね。

俺の場合、データ・レイヤはSQL Server、アプリケーション・レイヤは機能・役割ごとに複数個のWCFで構築。
プレゼンテーション・レイヤは、WinForm、WPF、XBAP、Silverlight、Javaでマルチクライアント環境を実現。
今はこの基本3層構成をWebサービスのマイブームと位置付けて色々と遊んでいる。

465 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 13:16:46 ]
重要度的には Silverlight>WPF>XBAP な希ガス。

466 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 13:34:46 ]
>>465
XBAPはSilverlightへの発展的解消で完全に進化が止まっちゃったからね。
Silverlightは資料もチュートリアルも豊富。WPFとの2本立てで決まりだね。

そういえば、MIX'09でSilverlight 3の発表ですな。
ブラウザナビゲーションとの連携が目玉らしいけど、それよりTextBox上での
右クリック時にコピペ系のコンテキストメニューを出すようにして欲しいな。

467 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 13:46:59 ]
もうSliverlight3の発表ですか、これは楽しみ。
ついでにBlendも改善バージョンを発表してもらいたいですね。

468 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 02:29:08 ]
Silverlightで書かれたサイトって一発でわかる?

469 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:29:03 ]
インストールを強制されるからね

470 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:36:56 ]
C#でXPSドキュメントを弄っているけど、これって面白いな。

XpsDocument NewXpsDoc = new XpsDocument("D:\\AAAA.XPS", FileAccess.ReadWrite);
XpsDocumentWriter XpsDocWrtr = XpsDocument.CreateXpsDocumentWriter(NewXpsDoc);
XpsDocWrtr.Write((Visual)this);
NewXpsDoc.Close();

たったこれだけでWindowと配下のコントロールすべてを含むXPSドキュメントが生成されて
D:\AAAA.XPS に出力された。
VS2008かExpression Blendを使ってXAMLでサクッと注文書などの伝票フォーマットのひな形の
Windowを書いて、LINQでDBやXMLをバインディングさせてやれば、カンタンに自社ロゴ入りの
伝票なんかをXPSで出力できるな。
もうCrystalReportやQuickReport、サードパーティーのPDF帳票コンポーネントなんて不要だね。

さらにバーコードコントロールも .NET 4.0で標準搭載してくれれば・・・

471 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 03:50:47 ]
でもC#のプログラムって商用にしにくいよね
割と簡単にソースを推論できるから



472 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 04:25:53 ]
>>471
情報システム系の業務アプリには向いているよ。
オンライン販売やパッケージ販売のソフトウェア制作には向かないかも。

商用≠開発したソフトウェアの製品マスターのコピーを販売する
商用=商用の設備・ツールとしてソフトウェアを稼動させる

473 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 07:17:14 ]
難読化してありゃ十分じゃね?
客先で難読化されてた奴見たけど中身を見る手間相当あがると思うけど。

動作のわかる所からクラス機能を推論して意味通る名前を当てはめるにしても全体の把握は大変そう。
一部のロジックがわかれば良くてそこだけピンポイントで調べるのには向かなそうだが。

474 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 07:21:40 ]
VisualStudioに組み込んでくれないかな
難読化

475 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 11:06:32 ]
商用というかメーカー製PCのバンドルソフトでも.NET利用がちらほら見かけるようになったが、
大抵ネイティブモジュールとのハイブリットだしな。

476 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 14:52:32 ]
ネイティブと混ぜたらネイティブ部分はちゃんとブラックボックス化するのか?
あと自作したlibやdllを混ぜたらリコンパイルきかないだろう
さすがに機械コードを読んで作るやつはいるわけないし

477 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 15:34:17 ]
GUIだけ.NETって感じ?

478 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 15:56:36 ]
C++で書いてあるコードでも、UI部分のように、そのほとんどがAPIコールのものは解読は容易。
だいいち、そんなに解読されて困るコアのアルゴリズムがあるんだったら、それはサービス化
してSaaSで提供するとか考えるべき。

479 名前:デフォルトの名無しさん [2009/03/19(木) 21:20:25 ]
tabControlのタブに画像を表示させるのはどうすれば良いのですか。
このアプリのようにしたいのですが。
tmpgenc.pegasys-inc.com/ja/product/tme3_feature.html

480 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 21:29:45 ]
ItemTemplateプロパティで

481 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 21:40:39 ]
>>479
TabItem.Header に Image を指定する。

<TabControl>
  <TabItem>
    <TabItem.Header>
      <Image Source="example.jpg" Stretch="None"/>
    </TabItem.Header>
    ....
  </TabItem>
  ....
</TabControl>



482 名前:デフォルトの名無しさん [2009/03/20(金) 07:25:57 ]
481>>
ありがとうございます。
「ファイル example.jpg はプロジェクトの一部ではないか、'Build Action' プロパティが 'Resource' に設定されていません。」
となります。Resource設定はどのように行うのでしょうか。




483 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 11:30:12 ]
>>482
Visual Studio を使っているなら、
プロジェクトを右クリック->追加->既存の項目...->イメージ ファイル->example.jpg。
ビルドアションの変更する場合は、
プロジェクトに追加したファイルを右クリック->プロパティ->ビルド アクション。

詳しくは、ここを参照。
Windows Presentation Foundation アプリケーションのリソース、コンテンツ、およびデータ ファイル
msdn.microsoft.com/ja-jp/library/aa970494.aspx

484 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 20:48:14 ]
WPFの窓の中にopenglで描画したり,WPFの窓をC++で使うことは出来ますか?

485 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:12:32 ]
>>484
とりあえずここを読んでみては?

WPF 移行と相互運用性 - MSDN
msdn.microsoft.com/ja-jp/library/ms753178.aspx

486 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:18:12 ]
WPFは4.0でよくなるのかなー
Form,Silverlight,WPFどれがどうつかわれてくのかいまいちさきがみえん。
Silverlight3.0とかかなりよさげで環境を問わないWeb,デスクトップ含めたUIフレームワークとしてかなり有望そうだが。

487 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:46:10 ]
>>485 読んでみます

488 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 23:24:43 ]
機能もだが、XPで4.0がサポートされるのかどうか不安だ。
グラフィック関係の新規APIはほとんどVista以降のみ対応だからなあ。

489 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 03:38:28 ]
SGMLは<tag> </tag>ではなく[tag][/tag]にすべきだった
<>入力するときにShiftがめんどくさいです><

490 名前:デフォルトの名無しさん [2009/03/21(土) 08:04:07 ]
>>483
ありがとうございます。できました。

491 名前:デフォルトの名無しさん [2009/03/21(土) 09:30:52 ]
WPFって時期尚早と思わない?
初心者が取っ付くには敷居が高すぎる。
ウインドウズフォームとちがって単純に貼り付けて
プロパティを操作するだけではだめだ。

インテリセンスも効かないXAMLファイルを操作しなくては
ならないし。



492 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 12:28:12 ]
時期尚早だよ。だからこそ楽しい。

493 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 14:00:00 ]
そういうこと。F#もいい。

494 名前:デフォルトの名無しさん [2009/03/21(土) 14:23:11 ]
少なくとも生産性は低いな

495 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 14:40:02 ]
>>491
俺はC#だけで書いてる

496 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 15:06:20 ]
確かWPFってデュアルコア6GHz時代を想定して作ったんじゃなかったっけ?

497 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 15:33:44 ]
どう考えても、XAML + C# の方が生産性が高くないか?

498 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 15:37:54 ]
WinFormよりXAML+WPFの法がよほど効率的だな。

499 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 15:59:55 ]
DataGridViewさえ充実していれば…

500 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 16:01:15 ]
次期バージョンを待て

501 名前:デフォルトの名無しさん [2009/03/21(土) 17:56:52 ]
>>497
>>498
何を持ってそう言える???



502 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 21:17:12 ]
生産性を高くするためのフレームワークなんだから、低かったら使う意味ないじゃん。

503 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:55:26 ]
XAMLでUIの階層分けを意識して記述できるし、
アニメーションさせなきゃならない部分があっても気軽に書ける。

504 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 00:06:30 ]
WinFormsはデザイナでコントロールの親子関係を変更するのが面倒だったな

その点、WPFはXAMLを少し書き換えるだけなので楽だ

505 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 00:09:13 ]
ポトペタ以上のことやろうとしたらWinFormsは簡単に破綻するでしょ。


506 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 00:59:04 ]
XAMLはコントロールの親子関係もプロパティもすべて一覧で把握できる。

507 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 01:02:31 ]
UIの柔軟性とソースでの視認性の双方のバランスがいいよなXAMLは
これに関してはWinFormとは段違いでいいと思う

508 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 01:12:50 ]
>>501涙目

509 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 01:26:51 ]
C#とxamlとで相互変換できるならVSでボタン一つで切り替えるようになるといい
それぞれのいい所取りできれば最高

510 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 01:45:40 ]
C#の利点(リファクタリングとか)がXAMLでも完璧に使えたらとは思うが、
そのアプローチには無理があるだろう

XAML→C#は可能だろうけど、
C#→XAMLはC#のコードがXAMLに埋め込まれる事になりそう

511 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 02:10:37 ]
>C#→XAMLはC#のコードがXAMLに埋め込まれる事になりそう
これに関してはマイクロソフト様より「技術的には可能だが非推奨」という
実務ガイドラインの見解を戴いております。



512 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 11:54:50 ]
コードが埋め込まれたとしても、そんなところには見向きもしないでxamlで見やすいところだけ編集するんだから無問題

513 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 15:22:18 ]
WPF Toolkit が更新されてるね。
DataGrid, DatePicker, Calendar のバグが修正されたみたい。

WPF Toolkit - March 2009 Release
wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=25047

ttp://blogs.wankuma.com/kazuki/archive/2009/01/31/167199.aspx
↑のスクロールで列の表示が崩れるバグもしっかり修正されてたよ。

514 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 20:22:05 ]
XAML編集でちゃんとインテリセンスが効けばいいんだけどねえ。
この辺もVS2010で改善されるのかなあ……

515 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 20:28:48 ]
>>514
{Binding }にもインテリセンス効くようになるらしいよ
エディタも十分高機能化するそうだけど

516 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 03:46:02 ]
VS2008でその水準に達していなかったのが最大の失策

517 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 11:40:19 ]
>>515
>{Binding }にもインテリセンス効くようになるらしいよ
これはかなり嬉しい。
そういや、WPF Toolkitも標準で入るとか聞いたが…。

518 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 19:05:20 ]
Windowsライクな外観を作りにくい

519 名前:デフォルトの名無しさん [2009/03/25(水) 20:42:17 ]
なんでWPFでウィンドウの外枠とかタイトルバー弄れないようにしたんだろ。
P/InvokeかWindowStyle.None使えってAnderson神父は言うけど面倒臭いよ面倒臭いよ

520 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 09:14:00 ]
・C#は知ってる。
・XMLは知ってる。
・Windows Formは未経験。

この条件でいきなりWPFの勉強を
始めることは可能?

521 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 11:42:45 ]
余裕



522 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 12:57:30 ]
>>521
アリガト

523 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 17:27:22 ]
>>519
<r:RibbonWindow x:Class="Window1"

</r:RibbonWindow>

リボンUIのWindowはこんな感じで実装されてるな

524 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 09:19:05 ]
System.Windows.Controls.UserControl の再描画を抑制する方法ってありますか?
複数のプロパティを連続して変更する際に、変更するごとに再描画されるのを
回避したいんです。

525 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 12:28:31 ]
LayoutRooからいったんRemoveし、プロパティを設定後Addするとか

526 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 19:13:40 ]
印刷プレビューダイアログはどこにあるの?

527 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 08:47:26 ]
System.Printing

528 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 08:49:27 ]
ってPreviewの方か
ないんじゃないかな
作ったFixedDocument表示すればそれがPreviewになるし

529 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 18:41:53 ]
VS2008 ExpressでWPFをかじったんだが、
WinFormと比べてデザイナがまだまだ発展途上ですね。
Web上に日本語の情報も少ないし、どうしようか。

みんなどんな開発環境でWPF遊んでる?

530 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 18:45:06 ]
春休みだな

531 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 20:07:45 ]
はるかな尾瀬ー



532 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:30:47 ]
>>531
それは夏では
夏がくーれば思いだすー、

533 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:42:40 ]
やっちまったぜ♪

534 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 22:49:41 ]
ののこみちー

535 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 01:59:37 ]
日本語の情報待ってろ

536 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 02:40:36 ]
英文のドキュメントも読めない奴がこんな発展途上の分野に手を出すなと小一時間

まあ、英語でも情報少ないんだけどなw


537 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 08:33:44 ]
WPFはなくなるの?



答えはもちろんNO!

538 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 09:25:32 ]
1年後くらいに、Full Trusted Silverlight Applicationとかが発表されて、
トドメを刺されるような気もする。まうその方向なら今やっといて損はない気はするけどね。

539 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 09:36:28 ]
ブラウザ上でFullTrustedなんてActiveXの二の舞だし
結局ローカルにインストールベースになると思うんだが
そうするとそれってただのWPFじゃん

540 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 13:33:39 ]
Silverlightスレのを参考に
winformsの探し方がマズイかもしれないからどこまで正しいか分からんが・・

www.indeed.com/jobtrends?q=sql+(win+forms+or+winforms)%2C+sql+wpf&l=

541 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 18:04:09 ]
WebでWPFは流行らないだろうなぁ。
世のスキル的にもWebはPHP、Java、ASP.NETだし。
今時点で情報の少なさが普及しないってことを物語ってる。
とはいえ、デスクトップ分野ではWindowsFormはWPFに間違いなく移行する。

WPF学ぶなら情報の出そろった3年後が良いよ。




542 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 18:46:15 ]
世のスキル的にも・・って
WPFはPHP・Java・ASP.NETの代替になるような物じゃないのだが・・・。

Silverlightの話としても、比べるべきはFlex, JavaFx (, Flash, Java Applet)じゃないか?

543 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:22:15 ]
Flex, JavaFx, SLのRIA plugin組が対峙するのはAppleやGoogleが推すHTML5

544 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:27:06 ]
Webのクライアントはブラウザで事足りる?

545 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:45:34 ]
あれ、AppleもなんかFlash的な何か作ってなかったっけ?

546 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:56:18 ]
洋書でWPFのお勧め本は何?


547 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:14:19 ]
MSはxaml無視してWindowsFormの後継としてWPFを積極的に広めるべき
十分広まった後でxamlもちだせばOK

548 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:21:29 ]
XAMLのないWPFなんてw

549 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:35:38 ]
>>547
馬鹿

550 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:39:51 ]
なんで?俺xamlなしでやってるぜ?

551 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:56:20 ]
まさかXAMLを使った事がないのに、XAMLイラネって言ってるわけじゃないよな?



552 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:12:00 ]
そだよ?xamlわかんねーもん

553 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:14:54 ]
XMALなしのWPFプログラムは全部DOM使ってHTMLを記述するようなものだよ。

554 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:15:09 ]
それだと「頑張れ」としか言えないじゃないか・・

555 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:37:06 ]
全部C#でやるなんてすごいな。俺にはやり方がわからん。

556 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 23:04:07 ]
>>329 にサンプルがあった

557 名前:デフォルトの名無しさん [2009/04/01(水) 03:59:34 ]
>>329を参考にして、MainWindow()内に
Image myImage = new Image();
myImage.Width = 200;

BitmapImage myBitmapImage = new BitmapImage();

myBitmapImage.BeginInit();
myBitmapImage.UriSource = new Uri(@"D:\Unko\My Pictures\Images\hoge.jpg");
myBitmapImage.DecodePixelWidth = 200;
myBitmapImage.EndInit();
myImage.Source = myBitmapImage;
を入れて(内容はttp://msdn.microsoft.com/ja-jp/library/ms747027.aspxのものです)
実行してみたのですが、真っ白なウィンドウが出るだけで画像が表示されません。
どこがいけないのかわかりません。どう書けばいいか教えてください。

558 名前:557 mailto:sage [2009/04/01(水) 07:04:31 ]
自己解決しました。
最後にthis.Content = myImage;を追加するだけだったとは…。

559 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 08:40:06 ]
>>546
please

560 名前:デフォルトの名無しさん [2009/04/01(水) 19:29:06 ]
.NETでGUIプログラミング始める人ってかわいそう。
Windowsの仕組みも知らずにプログラミングして何が楽しいことか。
ま、今に始まったことじゃないけどね。VBとかDelphiもそうだけど。

VC++でWindowsAPI駆使した方が間違いなく素晴らしいアプリ作れる。
もっとも、WindowsAPIは把握するまでが大変だけど。
.NET使った方が楽なところは、マネージコード使って、
それ以外はアンマネージで。使い分ければスタンドアロンWPFいらないぜ!

とここまで書いてて気になったが、VistaでWinFX(.NET)が見送られたけど、
いつの日か、WindowsAPIは、.NETで公開されるように置き換わるのかなぁ。

WPFの目指すところがイマイチわからない。

561 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:40:17 ]
釣られないよ



562 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:42:02 ]
突っ込みどころが色々あって釣られたくなるw

563 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:48:03 ]
横からだけど気になるので突っ込みきぼん

564 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 21:09:48 ]
System.Windows.Controls.Canvas の継承したクラスを作って、
OnPreviewMouseLeftButtonDown をオーバーライドしました。

Canvas の Children に設定したコントロールをクリックしたときは
イベントが発生したんですが、新しく作成したコントロール自身を
クリックしたときはイベントが発生しません。

MSDN で UIElement..::.OnPreviewMouseLeftButtonDown メソッドを見ると
「派生クラスの静的コンストラクタ内で、Mouse..::.PreviewMouseDown の
代替クラス ハンドラを登録します。 OnPreviewMouseLeftButtonDown
オーバーライドして UIElement のマウス処理動作を変更することはできません。」
とあるんですが、関係あるんでしょうか?

OnPreviewMouseLeftButtonDown を OnMouseLeftButtonDown に
変えても同じでした。

自分自身をクリックしてもイベントが発生するようにするには
どうしたらよいのでしょうか?



565 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 21:21:09 ]
>>564
まず>>560の話を片付けて質問。な?
空気空気。

566 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 21:36:48 ]
そいじゃまず俺から突っ込んでみる。  後ろから ズボッ ! とな。

Windowsの仕組みを知る楽しみ ≠ プログラミングの楽しみ
それにプログラム完成までの最短・最良の道を選択するのは
世間では常識で普通のことだよ。

567 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:34:02 ]
>>546
希望する内容を言ってくれた方が紹介しやすいが、

Pro WPF in C# 2008
Pro WPF with VB 2008

なんてどうだろう。
一通り最初からゆっくり読んで実験していけば、
エッセンスは頭に入ると思う。
英語も平易て読みやすいし、情報量の割には価格も安い。
ただし、ページ数がハンパないが
(C# 版しか知らないが、目次を見る限りは VB 版も同内容だと思う)

568 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:40:28 ]
>>564
Panel は子を入れて使うのが前提だから Background が設定されていないとクリックイベントが呼ばれないみたいだね。
<l:MyCanvas Background="Transparent"/> としても良いから Background を設定してみたら?

569 名前:564 mailto:sage [2009/04/01(水) 22:52:57 ]
>>568
ありがとうございます。
助かりました。

Background を設定しなければならないなんて考えもしませんでした。

ところで、Background を設定しないとイベントが発生しないと
どういう方法で調べたのですが?

よろしければ後学のため教えていただきたいのですが。

570 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 23:07:33 ]
>>567
これですね。
ttp://www.amazon.co.jp/Pro-WPF-2008-Presentation-Professionals/dp/1590599551/ref=sr_1_1?ie=UTF8&s=english-books&qid=1238594700&sr=1-1

ついでにSilverlight 2.0のこれ↓ も欲しいんだが
ttp://www.amazon.co.jp/Pro-Silverlight-C-2008-Windows-Net/dp/1590599497/ref=sr_1_1?ie=UTF8&s=english-books&qid=1238594363&sr=1-1

お金がない・・・

571 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 23:50:03 ]
>>567
レスどうも。
確かにそれ1000ページ超えてるんだよね。
600ページくらいだったら即決なんだけど、
検討してみる。



572 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 23:53:24 ]
>>570
Proシリーズか。
Linqが良かったから、Silverlight2も気になってる

573 名前:568 mailto:sage [2009/04/02(木) 00:03:56 ]
>>569
今回はテストコードを書いて試しているときに、たまたま気付いただけ。参考にならんでごめん。

今調べ直したら、ちゃんと基底クラスの方で書かれていたよ。
msdn.microsoft.com/ja-jp/library/system.windows.controls.panel.aspx
> Background が定義されていない場合、Panel 要素はマウス イベントやスタイラス ベントを受け取りません。
マウス イベントまたはスタイラス イベントを処理する必要があるが Panel の背景は必要ない場合は、Transparent を使用します。

574 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 00:25:50 ]
WPFアプリケーションを作成してみようと思っているのですが、
最初のウィンドウが表示できなくて困っております。

手順は以下の通りです。

・新しいプロジェクト画面でWFPアプリケーションを選択
・ビルド
・実行

多分この時点でウィンドウが表示されると思うのですが、何も立ち
上がらずに実行を終了?してデバッグ実行モードを抜けてしまいます。

そこで、Window1.xaml.csのコンストラクタにブレイクを仕掛けてみたのですが、
どうやらインスタンス化されていないらしく停止しませんでした。

プロジェクトのスタートアップオブジェクトの設定を確かめ、
自動生成されるApp.g.cs内のMainメソッド内にブレイクを
仕掛けてみたのですが、こちらでも停止しませんでした。

どうやら根本原因はMain()が呼ばれていない事のようなのですが、
どのように解決すればよいかわかりません。

もしよろしければ解決のためのヒントをいただけませんでしょうか・・・。


575 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 01:27:09 ]
VS2008か?
環境を書かないと

576 名前:574 mailto:sage [2009/04/02(木) 01:34:49 ]
>>575
すっかり抜けていました、申し訳ありません。

OSは XP の SP3を適用済みで、VS は
Visual Studio 2008 Express Editionです。



577 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 01:46:19 ]
うちVistaで同じ手順で普通に実行されるのであんま力になれないけど
プロジェクトフォルダの bin と obj を削除して再ビルドしてもダメなら
Visual Studio を再インストールしてみたらどうだろう

578 名前:574 mailto:sage [2009/04/02(木) 02:00:35 ]
>>577
どもです、さっそく試してみます。

579 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 02:12:40 ]
.NET Frameworkのバージョンが3.0未満とか、そういうオチはないだろうなw

580 名前:574 mailto:sage [2009/04/02(木) 02:16:31 ]
プロジェクトのプロパティーを確認しましたが、
「対象のフレームワーク」の項目は3.5になっております。

581 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 02:39:03 ]
ビルドに成功してるなら実行環境の問題っぽいけどな・・・
Windows Forms Applicationなら問題なくビルドして実行できるのかな?



582 名前:574 mailto:sage [2009/04/02(木) 03:14:19 ]
>>581
確認しましたらWindows Forms Applicationでも同じ症状がでていました。
これからVSを再インストールして試してみます。

583 名前:デフォルトの名無しさん [2009/04/02(木) 13:27:19 ]
>>545
何、それ?
まったく分からない。

584 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 13:48:02 ]
>>583
FlexとかAirとかじゃね?
まあ開発環境としてはMSより程度が低いよね。

585 名前:デフォルトの名無しさん [2009/04/02(木) 14:07:52 ]
>>584
それ、AppleではなくてAdobeじゃん。

>まあ開発環境としてはMSより程度が低いよね。
はぁ?
というか、お前自身の程度が低いだけだろ。

586 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 14:23:00 ]
釣られんなよ

587 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 15:23:16 ]
AIRのような継はぎのマッシュアップがいつまで持つやら。


588 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 15:49:34 ]
>>584
Adobeの開発環境よりMSのVSシリーズが劣るところを詳しく。
まあ程度が低い君に比較する事なんて無理だよね。

589 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:29:42 ]
ん?

590 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:33:35 ]


591 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:41:16 ]
春ですなぁ…。



592 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:46:55 ]
自演

593 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:48:51 ]
アンカーミスだか誤読だか知らんがこれは恥ずい

594 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:50:58 ]
ラーメンマン

595 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:55:31 ]
今日温かいなぁ…

596 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:57:27 ]
>>584 = >>588
だろ。
クソワロタ

597 名前:デフォルトの名無しさん [2009/04/02(木) 17:06:00 ]
Adobeの開発環境よりMSのVSシリーズが劣るところを詳しく。
まあ程度が低い君に比較する事なんて無理だよね。
    \___________/
           ___                _
       / ____ヽ           /  ̄   ̄ \
       |  | /, −、, -、l           /、          ヽ きみ頭だいじょうぶ?
       | _| -|○ | ○||         |・ |―-、       |
   , ―-、 (6  _ー っ-´、}         q -´ 二 ヽ      |
   | -⊂) \ ヽ_  ̄ ̄ノノ          ノ_ ー  |     |
    | ̄ ̄|/ (_ ∪ ̄ / 、 \        \. ̄`  |      /
    ヽ  ` ,.|     ̄  |  |         O===== |
      `− ´ |       | _|        /          |

598 名前:デフォルトの名無しさん [2009/04/02(木) 17:49:13 ]
いつになったらWinFormsを超えられるんだ?
工数増加たまらんね

599 名前:デフォルトの名無しさん [2009/04/02(木) 22:08:14 ]
>>553

HTMLはぽとぺたですむからこそ、表現系がDOMだろうがHTMLだろうが
どうでもいいわけで。
手でがりがり書かなきゃいけないならどっちでも一緒。HTML内に全部
書かなきゃいけないのはむしろ地獄。ajaxなんて地獄の生産性の悪さ
ってこった。

600 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:23:20 ]
ajaxとhtmlって関係あんの?

601 名前:564 mailto:sage [2009/04/02(木) 22:52:06 ]
>>573
基底クラスのドキュメントかぁ・・・
勉強になりました。




602 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 23:21:58 ]
ああもう、ここは俺のチラシの裏だ

603 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 23:33:29 ]
ググってもほとんど個人のウンコblogしかでてこない
全世界のウンコエンジニアのウンコ記事ばかりだ

お前の意味不明な忘備録を全世界に公開するな
公開するならせめて意味のわかるものにしろ、この糞どもが


ふぅ、すっきりした
ほんと、こんな情報ばっかりなんだよなw

俺のウンコを拭くチラシの裏終了

604 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 23:37:51 ]
UserControl を作成して、XAML で定義した StaticResource を
コードビハインドで使おうと思います。

> StaticResourceExtension ex = new StaticResourceExtension();
> ex.ResourceKey = "HatchBrush";
> Brush brush =(Brush)ex.ProvideValue( XXX );

↑のようなコードで使えそうだってことはググった結果わかったのですが、
XXX になにを入れれば良いのでしょうか?



605 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:09:28 ]
貴様はMSDNのライブラリすら調べられないのか、このウンコが

msdn.microsoft.com/ja-jp/library/system.windows.staticresourceextension.providevalue.aspx

で、その引数のインターフェイスが
msdn.microsoft.com/ja-jp/library/system.iserviceprovider.aspx

そのインターフェイスの唯一のメンバーがGetService メソッド

サンプルコード見てるならググる前にライブラリ調べろよ
お前みたいなウンコがいらんblog記事書くから
こういう分野でのgoogle検索が面倒になるんだよ・・・

もう終電はないし仕事場で俺一人、飲みながら2ch
暴言も反省はしてない。北朝鮮のミサイルが待ち遠しい。

606 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:17:57 ]
俺んちに落ちてこないかなー

607 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:35:45 ]
そもそも、WPFうんぬん以前に.NET Frameworkでコード書ける人間が
俺一人ってどういうことだよ、この職場wwww

なんかもう、OOPについていけないSEがその辺にごろごろいる
コーディング?VBなら一通りできますよ?みたいな。もう死ねよ

608 名前:604 mailto:sage [2009/04/04(土) 00:49:05 ]
>>605
IServiceProvider の使い方がわからないわけでなく、
UserControl を継承したクラスのなかで、どうやって
IServiceProvider を得るのかがわからないんです。


609 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 01:18:15 ]
>>607
お前みたいなのでも雇ってるんだから
ずいぶん寛大な会社だと思うんだが。

610 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 01:24:40 ]
>>608
多態性(polymorphism)というOOPの概念を知ってるか?
というか、インターフェイスの使い方がよくわかってないんだろう・・・
俺の職場にゴロゴロいるやつらと同じだwww

C++では多重継承は変態コーディングで害悪だ、みたいな空気があったけど
C#では標準ライブラリからして、インターフェイスを使った多重継承が常識になってるんだよ

611 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 01:43:26 ]
>>604
間違ってたら、ごめんね。単純に XAML で定義した StaticResource を使いたいってだけなら、
FindResource メソッドが UserControl の基底クラスで定義されているので、それを使えば良いよ。
msdn.microsoft.com/ja-jp/library/system.windows.frameworkcontentelement.findresource.aspx

> Brush brush = (Brush)FindResource( "Key" );

StaticResourceExtension は XAML 拡張マークアップ( Background={StaticResource ...} みたいな書き方 ) を
定義しているだけのクラスなので、通常、コードから使う必要はないです。



612 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 07:10:55 ]
>C++では多重継承は変態コーディングで害悪だ、みたいな空気があったけど

アホが使うとな。

613 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 07:48:51 ]
もうだめかもわからんね

614 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 08:49:24 ]
>>610
文句言うだけで回答出来ねぇw ワロス

615 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 17:29:46 ]
>>610
インターフェースと多重継承ごっちゃにすんなよ。
区別がついてない時点でおまえもその職場の奴らと同類だ。

616 名前:604 mailto:sage [2009/04/04(土) 18:08:22 ]
>>611
教えていただいた方法で無事リソースを得る
ことができました。
ありがとうございました。

617 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 07:50:59 ]
小賢しい暴言書きちらすような奴は
>>610
結局手前が一番何もわかっていない糞馬鹿だということの典型モデルですな

要素に対するシステム特有の扱いへの質問にすぎんものに
>多態性(polymorphism)というOOPの概念を知ってるか?
もう痛さ百乗

618 名前:デフォルトの名無しさん [2009/04/06(月) 12:30:35 ]
>>610
最後2行はネタであると願っております。

619 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 12:48:51 ]
>>610は間違いなのか?

結局何が答えなのか・・・

620 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 13:06:06 ]
>>610
の最後に行は間違いなくネタ

621 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 13:10:23 ]
>>610はOOP概念に拘ってるようですが、
プログラミングの基本は抽象化です。別にOOPに限った話ではありません。
インタフェースは使い方はそれほど重要ではなく(簡単なので)、インタフェース
という実現方法が問題解決の副次的要素です。
多重継承問題は、抽象化プログラミングと深く関わっています。

このまま解説を続けても良いですけど、WPFスレなので
スレ汚しになるので控えさせてもらいます。



622 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 13:21:16 ]
構わん、続け給え。

623 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 13:28:21 ]
私の貴重な時間を奪わないでください。

624 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 01:30:02 ]
ピタゴラスイッチの「ぼくのおとうさん」という歌が、何気にインターフェースの概念をよく表しているよな。
お店にはいるとお客さん、歩いていると通行人。でもインスタンス(おとうさん)は同じ。



625 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 04:04:10 ]
>>610 の人気に嫉妬w
いまごろ泣いているんだろうなぁ


626 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 08:56:07 ]
>>607
うちの会社でやらないか?


627 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 12:06:13 ]
ねーよw

628 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 01:45:10 ]
大きいです

629 名前:デフォルトの名無しさん [2009/04/08(水) 02:51:59 ]
WPFおもれーな、しかしAtom270ではデバッグ後の復帰がおもてーwww

630 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 08:20:58 ]
>>629
Atomじゃなくても重いから

631 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 16:23:00 ]
>>629
VSのスタートアップページ(RSSとかプロジェクトとかが表示されてるタブ)を閉じておくと
なぜか復帰が早くなることがあるよ
むしろ、なぜかスタートアップページを表示しておくととてつもなく時間がかかる
なんでこんな無駄なページが毎回起動時に表示されるのかが分からん



632 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 16:35:25 ]
>>629
どうやって楽しんでる?満足に理解できないでしょ?


633 名前:630 mailto:sage [2009/04/08(水) 17:07:09 ]
>>631
トンクス、スタートアップページは閉じてみます。

>>632
そうだね、まだWPF/XAMLの国内本を3冊と、
MSDNしか読んでないしな〜。

WindowsFormの代替品としてテストしてるけど、
ユーザーコントロールを簡単に部品として作成できるの嬉しい。

634 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 17:43:21 ]
>>633
俺はWPF関連の情報はネットを中心にかき集めてるわ

評価版リボンUIつけられて、アプリボタンのStyle書き換えもうまくいったけど、評価版だからやっぱり不安定だわ。
2010が待ち遠しい

635 名前:630 mailto:sage [2009/04/08(水) 19:01:21 ]
>>634
おれは情弱だからWebでいい資料を探す技術がないんだよ〜。
それはさておき、VS2010とBlend3.0は気になる!

636 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 20:21:48 ]
Blend3.0はどうでもいいけど、VS2010は買いだな。
VS2008はWPFの開発環境がまだまだ発展途上だもん。
2010になると強化されるらしいが・・・。

今別なこともやってて、VS2008買おうか迷ってるんだが、
来年VS2010が控えてるからなー・・・。今2008買っても損しそう。
2010買ったら数年使い倒せると信じたい。


637 名前:デフォルトの名無しさん [2009/04/08(水) 22:14:06 ]
一年前と比べるとちょっと賑やかになってきたな
あと2年ぐらいたてば主流になれるのかな

638 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 01:20:59 ]
早くても3年以上はかかるだろうな

639 名前:デフォルトの名無しさん [2009/04/09(木) 01:55:23 ]
WPFのサブセットのSilverlightを使ってしまうと、
もはやHTML+css+Javascriptなんてやりたくなくなるな。

640 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 02:03:10 ]
やりたくならなくならないのか

641 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 09:10:40 ]
>>636
つサンブスクリプション1年分



642 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 13:44:59 ]
>>641
そういう買い方(レンタル)もあるのですね。
マイクロソフトのサイトを確認しても価格が見つかりません。
1年分でいいのでサブスクリプションしたいなぁ。

643 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 14:01:28 ]
>>642
ttp://msdn.microsoft.com/ja-jp/subscriptions/dd197624.aspx

644 名前:デフォルトの名無しさん [2009/04/09(木) 14:07:42 ]
エッセンシャルWPFは初心者向きですか?

645 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 14:23:01 ]
>644
初心者って言うか、最初に通しで読んで、設計思想とか、
何でそうなってんの?って部分について「へー」と納得する為の本。

後でリファレンスマニュアルとして読み返すような部分はない。

646 名前:デフォルトの名無しさん [2009/04/09(木) 14:58:19 ]
>>645
レスthxです。
Pro WPF買って読んでるんですが、ちょっと難しいなと感じています。
WPFに馴染んでおくという意味で、エッセンシャルWPFを
先に読んでおくとProも理解しやすくなりますかね?

647 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 15:52:24 ]
入門本としては黒い表紙のXAML本がおすすめかな。

APIだけでやりたいなら赤坂本があるけど、
WPFの威力が半減以下にw

エッセンシャルは黒XAML本の後に読んだ方が理解が早いかな、
内容自体はかなり重複してるけどね。

648 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 15:54:42 ]
黒xamlじゃわかんねーよ
WPFの本、店頭に並んでないんだから

649 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 16:03:14 ]
アマゾン XAML でググれば一番上に出てくるよ。

650 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 16:07:21 ]
お前、いいやつだな、惚れた

651 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 16:10:39 ]
いいのかい?そんなにホイホイ惚れちまって・・・



652 名前:デフォルトの名無しさん [2009/04/09(木) 16:19:27 ]
>>647
thx
本屋で黒XAMLを見てみます。

653 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 23:41:06 ]
本題なんか?みに行けば軽く吹き飛ぶぐらいなもんなんだから気になったのはどんどん買っとけ
かぶったなら後輩にあげろ

654 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 03:02:22 ]
>>647 の言うとおり
赤坂本はやめとけw

655 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 14:26:47 ]
XAMLは@ITの連載記事でなんとかなった。

656 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 21:29:32 ]
有名どころのサイトだと、The Code Project のサンプル群が役に立つ。
あと Dr.WPF とか。本はエッセンシャル WPF が良かった。
XAML を書いてると、オーサリングソフトなしで HTML を書いてる気分になるが、
慣れれば GUI ポトペタより手書きの方が楽だね。
VS 2010 では、XAML 中の Binding などにも、インテリセンスが効くようになるそうだから、
ますます手書きが良くなるな。

657 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 00:03:31 ]
winformレベルのポトペタ環境にした程度ではWPFはカバーできないってだけの気も

658 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 00:09:21 ]
なんかあれだ。Blend 併用したほうがいいんじゃないか
みたいな気がする。VS 持ってるなら高くないし。

659 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 00:51:25 ]
ブレンドみたいなフリーソフトが出てきたら本気出す

660 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 00:56:20 ]
作ろうと思った時期があった。
インテリセンスの実装ができなくて挫折した。
(その前に入力したコードに色つけんのもね。実装してみたけどさすがにもたつきすぎで、バグりすぎで)

661 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 16:09:59 ]
Win32→COM→.NETLib→WPF/XAML



662 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 16:34:51 ]
Dependency Propertyが難しい。。
いきなり詳細を見るのは無謀かな。

663 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 21:56:26 ]
UserControl をつくって、そのなかに Rectangle を配置しました。
enum Level { Low, High }; を作成し、Level という名前の
DependencyProperty を作成しました。

で、Level に応じて Rectangle の色を変えようと思い、

<Rectangle>
  <Rectangle.Style>
    <Style TargetType="{x:Type Rectangle}">
      <Style.Triggers>
        <Trigger Property="local:Usercontrol1.Level" Value="High">
          <Setter Property="Rectangle.Stroke" Value="Red" />
        </Trigger>
        <Trigger Property="local:Usercontrol1.Level" Value="Low">
          <Setter Property="Rectangle.Stroke" Value="Blue" />
        </Trigger>
      </Style.Triggers>
    </Style>
 </Rectangle.Style>
</Rectangle>

としたところ、コードビハインド内で、Level を変更しても Rectangle には
反映されませんでした。
どこが問題なんでしょうか?

664 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 22:26:07 ]
>>663
DataTriggerでElementNameとかRelativeSourceとか使ってUserControl1のプロパティを参照するバインディングを使う
Trigger.Propertyは基本的に自分自身のプロパティが対象だよ

665 名前:デフォルトの名無しさん [2009/04/13(月) 02:07:34 ]
GridSplitterの挙動で質問です。

現在GridでRowを12、Columnを2で区切り、
それぞれ下記のように使用しております。

<Canvas Grid.Row="0" Grid.Column="0" Grid.RowSpan="12"/>        <Canvas Grid.Row="12" Grid.Column="0" Grid.RowSpan="3"/>
<Canvas Grid.Row="0" Grid.Column="1" Grid.RowSpan="7"/>
<Canvas Grid.Row="7" Grid.Column="1"/>
<Canvas Grid.Row="8" Grid.Column="1"/>

見かけはVSの配置と似たような形になります。

そこでそれぞれのペインの幅や高さを調整したい為に、
GridSplitterを使用して境界を作成しました。

<GridSplitter Margin="1" Height="5" Grid.Row="0" Grid.Column="0" Grid.RowSpan="12" VerticalAlignment="Bottom" HorizontalAlignment="Stretch"/>

<GridSplitter Margin="1" Width="5" Grid.Row="0" Grid.Column="0" Grid.RowSpan="15" VerticalAlignment="Stretch" HorizontalAlignment="Right"/>

このGridSplitterのうち、最初に作成した方がドラッグしても
設定が正しくないらしくまったく移動しません・・・。

よくない箇所などございましたらご指摘くださいませ。


666 名前:デフォルトの名無しさん [2009/04/13(月) 07:45:48 ]
開発ツールだとか開発フレームワークでお作法が難しいのはかまわない
いずれ慣れる。しかし概念が難しいもんはいずれ廃れる。
wpf/xamlはどうも後者のような気がするんだがなあ。

667 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 13:23:24 ]
MSDNってわかりやすい?
プログラミングはじめたばかりなこともあってか、内容読んでてもなんか理解しづらい。
階層も複雑だし。

668 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 13:31:24 ]
他の情報サイト見に行くようにわざと読みにくくつくってある
ユーザーサポートがめんどくさいから

669 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 13:35:45 ]
わからんとむかついたときは、フィードバック書いてる

670 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 16:15:16 ]
MSDNはリファレンスとして以外は使えん。リファレンスとして使う場合も、日本語版は
意味不明な訳語のせいで読んでもさっぱり判らないことが結構多いので、
英語版と両方当たるべし。

入門記事やTipsは、日本語に拘らなければネット上に無料でいっぱい転がってる。
まぁ、ようするに、日本で人気が出ていない技術を触るなら、英語で探せってこった。

671 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 18:35:39 ]
.NETの訳はなかなかいいよ。
Win32APIの訳がクソなのは同意だが。



672 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 18:39:48 ]
Win32APIは訳がクソ以前にそもそも存在してないの多数だからな…






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<183KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef