如何将Scale Translation应用于DrawingContext?

use*_*349 2 wpf drawing drawtext

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)
Run Code Online (Sandbox Code Playgroud)

Ore*_*ner 7

在大多数UI应用程序中,不是使用DrawingContext,而是正确的做法是将子TextBlock添加到Canvas,并更改TextBlock的RenderTransform.

但是,假设您有充分的理由使用DrawingContext,则可以在调用DrawText之前使用DrawingContext.PushTransform来推送所需的变换(缩放,平移等).完成DrawText后,使用DrawingContext.Pop恢复先前状态.