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)
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top