C#

勝手に動かないで

WPFのデザインモードかどうかをチェックする方法。 デザインモードではカレントディレクトリなど、色々実行時と異なる要素がある ので、それで例外投げて落ちられると、デザイナが機能しなくなる。 DesignerProperties.GetIsInDesignMode(this) //thisはUIエ…

WPFでのUIアンチエイリアス封じ込め

WPFでのアンチエイリアス封じ込めのために。 Root要素で以下の指定をしておけば大体全部?アンチエイリアスを無効にできる。 RenderOptions.BitmapScalingMode="NearestNeighbor" RenderOptions.EdgeMode="Aliased"http://blogs.msdn.com/b/hiroyuk/archive/…

画像つき背景とか

ちょっと凝った背景*1をコントロールの背景に設定し たい時、Templateを使えば上手くいくかと思ったら中々行かなかった。仕方ないので何もしないGridのみのUserControlを使って代用。 これで背景などのスタイルも一元管理できるけど、 いささか大掛かりすぎ…

UserControlの継承めも

自前のUserControlを継承して、 派生のUserControlを作りたい時に。 基底クラスのコードをoverrideして独自処理にしたりとか。基本的なやり方は、 http://d.hatena.ne.jp/kent013/20091129/1259482727 http://d.hatena.ne.jp/okazuki/20091025/1256472760 ht…

WPF:ResourceDictionary

WPFのResourceDictionary、外部からのロードの例。 <UserControl.Resources> <ResourceDictionary Source="/CommonResource.xaml"/> </UserControl.Resources>VS2010以降?は頭に"/"入れないとプロジェクトを正しく参照しないっぽい。 古い記事とかだと"/"無しが見られるので注意。

Pixel-Snapとか

SnapsToDevicePixelsプロパティをTrueにすることで、アンチエイリアスを無効化。 Keyboard.Focus(UIElement)キーボードのフォーカスを取得させる。ImageとかでもOK。画像リソース埋め込みメモ。 ビルドアクションは"Resource"、出力ディレクトリに「コピーし…

ZIndexプロパティ

ZIndexの値を大きく設定したUIが上に描画される。 DockPanelの登録順で配置を制御している*1場合の補助に使える。 *1:代わりに描画順が制御できないので、ZIndexを使う

ClipToBoundsプロパティ

UIElementクラスのClipToBoundsプロパティをtrue*1 に設定すると、 コントロールの境界線上で子要素をクリッピング出来る。お手製ScrollViewerの実装で、子要素をスクロールさせた時に、 UIの外側に子要素がはみ出ないように、ちゃんと設定しておくこと。 *1…

WPFのScrollBar

ScrollBarのThumb(つまみ/スライダー)の大きさの指定は、 scrollbar.ViewportSizeのプロパティを適切な値に指定してやればOK。 ぶっちゃけ「あの部分の名前なんだっけ」のために当該プロパティを延々探すハメに。。。http://msdn.microsoft.com/ja-jp/libr…

【WPF】writeablebitmap の使い方めも

探した範囲でなかなか良い資料が見つからず、 数日引っかかっていたので自分用メモ。 コード抜粋+要点まとめなのでコピペでは動かないので注意。 基本はロック〜アンロックの間に、 WritePixels関数で色情報を書き込む流れ。 元画像の一部を切り取るときはC…