2009-07-08 99 views
2

我有一個Canvas在XAML中應用了一個縮放轉換。使用DrawingContext我在Canvas上劃線。我現在需要在屏幕上添加文本。我認爲格式化文本可以應用翻譯,但格式化文本或DrawingContext都不接受RenderTransform。如何將縮放翻譯應用於文本,以便抵消畫布的縮放翻譯?如何將縮放翻譯應用於DrawingContext?

ftext = New FormattedText("N", CultureInfo.GetCultureInfo("en-us"), Windows.FlowDirection.LeftToRight, face, Me.DBFontSize, FalconDataBlock.Foreground) 
context.DrawText(ftext, .TargetLineInfo.EndAsWinPoint) 

回答

7

在大多數UI應用程序,而不是使用的DrawingContext,做正確的事情可能是一個孩子的TextBlock添加到畫布上,並改變TextBlock中的的RenderTransform。

但是,假設您有一個很好的使用DrawingContext的理由,您可以在調用DrawText之前使用DrawingContext.PushTransform來推送所需的轉換(縮放,平移等)。在完成DrawText後,使用DrawingContext.Pop來恢復先前的狀態。