定規コントロールを作成していて、その下にスケールを描画したいと考えています。残念ながら、WPF の DrawingContext.DrawText メソッドは (呼び出されますが) 何も描画しません。誰かが同じ問題を抱えていて、解決策を知っていますか? これは、テキストがレンダリングされるコードの一部です。
protected void RenderRulerScale(DrawingContext drawingContext)
{
int value = 0;
for (double x = this.LargeUnit * (this.ActualWidth / this.Maximum);
x < this.ActualWidth; x += this.LargeUnit * (this.ActualWidth / this.Maximum))
{
string unitString = (++value).ToString() + this.UnitName;
FormattedText formattedUnitString = new FormattedText(unitString,
new CultureInfo("en-US"), FlowDirection.LeftToRight,
new Typeface("Arial"), 5.0, Brushes.Black)
{
TextAlignment = TextAlignment.Center,
MaxTextWidth = 2 * this.LargeUnit,
MaxTextHeight = 25.0
};
drawingContext.DrawText(formattedUnitString, new Point(x, (2.0 / 3.0) *
this.ActualHeight));
}
}
このメソッドは OnRender メソッドで呼び出されます。
protected override void OnRender(DrawingContext drawingContext)
{
base.OnRender(drawingContext);
this.RenderRulerScale(drawingContext);
}