我有一个Canvas
,在XAML中应用了比例转换。使用DrawingContext
我在Canvas
上绘制线条。我现在需要在屏幕上添加文字。我认为使用格式化文本我可以应用翻译,但格式化文本或DrawingContext
都不接受RenderTransform
。如何将缩放翻译应用于文本以便它将对抗画布的缩放转换?
ftext = New FormattedText("N", CultureInfo.GetCultureInfo("en-us"), Windows.FlowDirection.LeftToRight, face, Me.DBFontSize, FalconDataBlock.Foreground)
context.DrawText(ftext, .TargetLineInfo.EndAsWinPoint)
答案 0 :(得分:7)
在大多数UI应用程序中,不是使用DrawingContext,而是正确的做法是将子TextBlock添加到Canvas,并更改TextBlock的RenderTransform。
但是,假设您有充分的理由使用DrawingContext,则可以在调用DrawText之前使用DrawingContext.PushTransform来推送所需的转换(缩放,转换等)。完成DrawText后,使用DrawingContext.Pop恢复先前状态。