2014年11月18日火曜日

SourceGrid で、CellのMeasureとDrawの寸法が合わない

SourceGridのCellの描画で奇妙な事に気が付きます。

Measureの時の横幅と、
Drawの時の横幅が異なります。

Measureの時は、横幅=セル幅そのもので計算されますが、
Drawの時はGetContentRectangleを呼ぶので、横幅=枠線などの余白を除いた幅 になります。

例えば、
Measureの時は、幅180あっても
Drawの時は、幅175しかない場合があります。

幅177.6328の文字列の場合、
Measureの時は1行で済みますが、
Drawの時は2行になります。

Measureの中のどこかでGetContentRectangleを呼んで、余白を削らないといけません。

私の場合、DevAge.Drawing.VisualElements.ContainerBase.OnMeasureContentの中で対処しています。

0 件のコメント:

コメントを投稿