如何仅在一个(水平)方向上使用Pango-Sharp缩放文本?

时间:2012-04-26 10:28:06

标签: c# mono scale pango

我需要用pango-sharp写一些文字,但是根据字符数量来缩放宽度。

这就是我目前所拥有的:

var layout = new Pango.Layout (Core.PangoContext);
layout.FontDescription = Pango.FontDescription.FromString (
  "'Courier New' CLM  20");
layout.SetMarkup (@"<span  color='black'>12</span>");
Area.GdkWindow.DrawLayout (Core.Area.Style.TextGC (
  StateType.Normal), 50, 50, layout);

我无法找到完成任何提示。我在Pango中只发现了一个XY刻度,但在X或Y上没有刻度。

1 个答案:

答案 0 :(得分:0)

终于找到了解决方案:

(CC = cairocontext)

layout.FontDescription = Pango.FontDescription.FromString ("Courier New CLM  " + FontSize);
layout.SetText (Position.ToString ());
cc.Scale (1, 1);
cc.MoveTo (NoteCenterX, NoteCenterY - 12);

cc.Scale (ScaleX, 1);
Pango.CairoHelper.ShowLayout (cc, layout);
cc.Scale (1 / ScaleX, 1);