たぷつきません

おなかがでてきた。もうたぷついてるやん。

WPF

ShowDialogが効かずに何もせずにすぐに復帰してしまう。

WPF

微妙にはまった。原因はxamlのWindow属性で Visibility="Hidden" にしていたためだった。

DropShadowBitmapEffectからDropShadowEffectへ

WPF

置き換えて試してみたが、Softnessプロパティがないから全然イメージ変わっちゃう*1。 DropShadowBitmapEffectはVistaエアロっぽかったのに。HLSLとかめんどくさそうなので手を出したくないし。困りんぐ。 …ってか、BlurRadiusを使えってことか。20ぐらいに…

テーマライブラリの使い方

WPF

Program Filesの下にReference Assembliesというディレクトリがある。この中にスタイルライブラリが含まれている。使い方はこちらに分かりやすい解説がある。 で、これらのスタイルは貼り付けたコントロールに適用されることになるのだが、スタイルを改変し…

XAMLリソースハック

WPF

アセンブリに埋め込まれたXAML(格納されているのはバイナリ形式のBAMLね)を見るには、以下の手順でいける。 Lutz Roeder's Reflector for .NETをダウンロード。 Reflector用のBamlViewerプラグインをダウンロード。dllはReflectorの隣にでも置いておく。 R…

.NET Framework 3.5 SP1 Beta

WPF

エフェクト関連の機能が変わっている。で、UIElement.BitmapEffectを使っていたのだが、「パフォーマンスすっげえ悪いからそのうち無くなるよ。UIElement.EffectにShaderEffectを組み合わせな」とObsolete警告がいちいち出る。でもそれってSP1入れてないとビ…

アニメーション描画性能を上げるには

WPF

TimerでもStoryboardでも非常に描画がモッサリするウィンドウがあり調査していたところ、解決方法を発見した。 詳細な理由は調べてないんだけど、Canvasをコンテナにするとモッサリするという事実は確認できた。コンテナをGridやStackPanelに変えるだけで、…

カスタムページクラスにイベントが定義できない

WPF

作成したカスタムページを利用したページを作成する際に、XAMLでイベントを記述すると、「プロパティ 'Hoge'は見つからなかったか、型 'MyPage'に対してシリアル化できません。」となる。なんじゃらほい。 この辺には書いてないんだけどな。 追記 XAMLエディ…

ThreadExceptionEventHandlerが書けない

WPF

System.Windows.Forms.Applicationにしかないんだけど。裏スレッドで例外が起きた場合にキャッチできずドカンと落ちつつスレッドが残ってアプリがゾンビになる。System.Windows.Applicationの場合は、どうすりゃいいのさ。 追記 おっし!DispatcherUnhandled…

Properties.ResourcesがXAMLから参照できない

WPF

Properties/Resources.resxには、文字列リソースとしてApplicationTitleを追加しておいて、XAMLには以下のように記述した。 <Window xmlns:prop="clr-namespace:MyNamespace.Properties" Title="{x:Static prop:Resources.ApplicationTitle}" .../> しかし「MyNamespace.Properties.Resources.ApplicationTitleという静的メンバは含まれていません」というエラーになる。コードか</window>…

PresentationSourceが切断状態

WPF

Window内でのUIElementの移動コードに続けてPointFromScreen,PointToScreenなどを実行すると、表題の示す例外が発生することがある。 または例外が発生しないまでも、正しい座標が取れなくなることがある。正しい座標でない例としては、StackPanelにUIElemen…

動的な特定プロパティ変化アニメーションの作成

WPF

xamlの中でターゲットのプロパティを表現するものをコードで指し示すにはPropertyPathを使うとよい。以下はOpacityを使って徐々に可視化するアニメーションをC#で記述する例。 相当するxaml <Storyboard x:Key="DoShow"> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="{x:Null}" Storyboard.TargetProperty="(UIElement.Opacity)"> </doubleanimationusingkeyframes></storyboard>

WindowやPageリソースを持つWPFライブラリの作り方。

WPF

WPFアプリケーションとしてプロジェクトを作ってから、プロジェクトプロパティから種類をクラスライブラリに変更する。 先にクラスライブラリとして作成してしまうと、ウィンドウやページを新規追加できなくなるわ、他プロジェクトからxamlとコードのセット…

タスクバー上のDeskBand

WPF

を実現する方法探したけど、DQSDのソース読む限り、IOleControl,IDockingWindow,IDeskBandなどを実装したCOMにしないとならないので、C#でWPFだと絶望的なかんじ。とりあえず調査保留。 こちらのハマリ情報も参考になりました。IE上でのDeskBandはとりあえず…

Vistaでアニメーションがガタガタフレームが間引かれる件

WPF

なんかこちらの情報と同じ現象。すでに最初から手元では.NET Framework 3.5で開発してるから、ハードウェアアクセラレータ対応なはず。しかし手元で見る限り改善されていない。 iMac Aluminum (Mid 2007)だし性能的にイケてないはずないよなぁ…。Vistaのパフ…

ウィンドウを継承クラスにする。

WPF

同じプロジェクト内での参照はデザイナがまともに動かなくなるのでクラスライブラリに分割してそっちにベースクラスを置く。 ソリューション内でプロジェクトの参照関係を追加して繋げれば良し。 クラスライブラリの方をちゃんとビルドした上で参照を作ると…

ウィンドウの親子関係

WPF

ウィンドウ間でZOrderを一定化するためにはWindow同士でOwnerプロパティをチェインしておけば良い。ただTOPMOSTには追随しない。

アプリケーション設定情報の型

WPF

任意で選択できる割に、コレクションエディタやらのダイアログが動作しないのはひどし。しかたないので、TypeDescriptionProvider, TypeDescription, TypeConverterを作る。NameValueCollectionぐらい用意しておいてほしいなぁ。

マウスイベントがこない

WPF

色が、#00rrggbb では完全透過になってしまい、その完全透過の領域ではマウスイベントがこない。これを回避する手段としては、#01rrggbbにするのが一番手っ取り早い。人間の目にはほとんど完全透過にしか見えないからね。

イベントハンドラどう書くのXAML

WPF

あそゆこと。