Come si applica una scala traduzione a un DrawingContext?
Domanda
Ho un Canvas
con una traduzione di scala applicato in XAML. Utilizzando DrawingContext
traggo linee sul Canvas
. Ora ho bisogno di aggiungere del testo sullo schermo. Ho pensato con testo formattato ho potuto applicare una traduzione, ma né testo o DrawingContext
formattato accetta RenderTransform
. Come faccio ad applicare traduzione scala per il testo in modo che contrastare la traduzione scala della tela?
ftext = New FormattedText("N", CultureInfo.GetCultureInfo("en-us"), Windows.FlowDirection.LeftToRight, face, Me.DBFontSize, FalconDataBlock.Foreground)
context.DrawText(ftext, .TargetLineInfo.EndAsWinPoint)
Soluzione
Nella maggior parte delle applicazioni di interfaccia utente, invece di utilizzare un DrawingContext, la cosa giusta da fare potrebbe essere quella di aggiungere un TextBlock bambino alla tela, e cambiare RenderTransform del TextBlock.
Tuttavia, a patto di avere una buona ragione per usare un DrawingContext, è possibile utilizzare DrawingContext.PushTransform per spingere il trasformare il necessario (scala, traduzione, ecc), poco prima che si richiama DrawText. Utilizzare DrawingContext.Pop per ripristinare il stato precedente dopo aver finito con DrawText.