C#+WPFチューニング戦記

C#とWPFで高速なコードと最適なシステムを書くためにやってきたいろいろな事を書いてみます。.NET Frameworkのソースコードを読み解きましょう。なお、ここに書かれているのは個人の見解であって何らかの団体や企業の見解を代表するものではありません。

2014-09-01から1ヶ月間の記事一覧

ペンはブラシに負けます

ペンは仕掛けが複雑なので、図形を書く際には縁が要らないならブラシだけで書きましょう。場合によっては、四角形を回転拡縮して描いた方が速い事すら有ります。やや極端ですが。余談ですが、最近短いのが多いのは、スマホ端末から書いているからです。

Color.GetHashCode( )は一意ではない

32bitしか情報を持っていないのに、一意なハッシュコードを返さないとは。最近のショックな事例の一つです。

VisualBrushの恐怖を一言で表現する

WPF

Visualの描画範囲が、Direct3Dのテクスチャの最大サイズを超える場合、滲みます。*1 *1:中間バッファがレンダリング命令ではなく、レンダー結果のテクスチャだからです。MSDNの表現だけではそれを汲み取りにくいんですよね。印刷の時とかご注意。

共変性と反変性のこと、無法なobjectを撤廃する事

C#に触れていると嫌でも出てくる共変性と反変性のこと。 これを合理的に扱えずに悩んだことはありますか? そんなあなたにC#的処方。あんまり、ここしばらくリファレンスコードのことばかり書いたので、少しは普通のコードを論理的に綺麗にまとめる手法を提…

数日間休んでいます

社内の勉強会に向けて、ちょっと気張って資料を作っているので、ブログの方を少しだけ休んでいます。 Evernoteに置いてあるネタ帳はまだ多量にあるので、書く時間を見つけては書いていきたいと思っています。

2つの親子関係

タイトルのようなことを書くと、普通はロジカルツリーとビジュアルツリーというのが相場ですが、これは別の話です。 ビジュアルツリーは2つの繋がりを持って初めてビジュアルツリーなのです。 AddVisualChild()で接続される、WPFの描画順序に関わるツリー V…

コピペを極力避けるべき理由

プログラマがコピペを忌むべき理由 あなたがコピペしたコードは、他の人が権利を主張した瞬間に、結合しているすべてのコードの公開を求められるものかもしれません。 あなたがコピペしたコードは、別の人がそこにコピペしたもので、実はどこかのOSSライセン…

RecomputeZState()を読みます

http://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/Windows/Controls/Panel.cs#1001これはPanel.csの一部です。 ZIndexが変更されたり、Panelの子要素が追加される度にこれくらいの処理が行われることを覚えておきましょう…