月別アーカイブ: 2008年9月

BitmapEffect プロパティが古い

SeeMe のソースを少し弄くって sp1 にしてから初コンパイルしたら…

「BitmapEffect プロパティが古い!」

と怒られた、なんやねんまったく。
てか俺って気がつくの遅!VS2008 を sp1 にしたのは何時や!

とにかく BitmapEffect は檄負荷だから近々無くなるので使うなということらしい。
BitmapEffect がハードウェア アクセラレーション化されたはずなんだけーがなぁ。

川西 裕幸のブログ : .NET Framework 3.5 SP1 Beta

しかたがない、更新しよう(そんな理由で…)

てゆーかオープンソースなんだから放置はマズイわな。

using System.Windows.Media.Effects;

img1.BitmapEffect = new BlurBitmapEffect();
↓
img1.Effect = new BlurEffect();

と Bitmap を取っ払って書き換えるだけでよさそうだが。
こうしないとアクセラレーションが使えないってことなのか?よく解らないけど。
負荷の違いは私の Athlon 64 x2 4200+ & AMD 690G のショボいマシンでも解らんぞ!

そういえば Drag and Drop での並べ替えをいいかげんに復活させなければ。
以前は全く見つからなかったがそろそろサンプルコードがネット上に上がっているかな?

CodeProject: Very Simple WPF Drag and Drop Sample without Win32 Calls. Free source code and programming help

CodeProject: Drag and Drop Items in a WPF ListView. Free source code and programming help

あぁ、これでなんとかなりそうだ。
ちなみに WindowsForm にあった listView1.GetItemAt みたいなメソッドは無い。
たかが ListViewItem 取得にこんな処理を自前で書けということらしい。

メソッドくらい用意してよまったく。
WPF がちっとも普及しない最大の理由はソレなんだから。

でも並べ替え自体は RemoveAt と Insert メソッドのみで簡単に終わる。
それもバインディングならもちろん元の ObservableCollection を並べ替えるだけ。
異様に簡単になったり異様に難しくなったり本当に面倒だなぁ WPF って奴は。

Spy++ で WPF

何を今頃の話。

Visual Studio Tools の Spy++ でちっとウインドウ検索していた。
これって UAC に引っかかるのよね、そんな大げさなアプリとも思えないけど。

ちっと思いついて SeeMe にファインダツールをドロップ。

えっ!WPF で作ったアプリには親ウインドも子ウインドも何も無いってこと???

意味不明の若い人へ説明すると…解説が難しいなぁコレ。
Win32 API で作ったウインドウはボタンやラベルも全部ウインドウである。
なのでメインウインドウにボタンがあったらボタンは子ウインドウということです。
ウインドウハンドルを持つモノは全部ウインドウ…ということで解るかな?

ソレが一つも無いということは全部ペンやブラシで描写しているのと同じコト。
ちなみに Y901 のコントローラボタンがそうやっているのでコレも当然ウインドウではない。

そういえば WPF は DirectX で描写していたんだっけ、これは「なるほど」という感じ。
.NET Framework が一番の親に居ると思っていたんだけど違っていた。
いったいドコまで今までと考え方を変えなければいけないのだろう?

もう一つ思いついて Explorer のリストビューにファインダツールをドロップ。

あれ?このリストビューって SysListView32 クラスってことなの???
解る人には解るとおり Win32 での「今までの ListView 」と同じっていうこと。
なのにこの描写、あぁワケワカになってきたぞ!

てっきり WPF と同じ方法で描写を実現かと思っていたが普通のウインドそのもの。
「何か」をやれば Win32 で作った ListView もこの「なめらか描写」に出来るってことみたい。
公開されなきゃどうにもならんが、なんか Vista って本当に難しい。