Question

J'ai Canvas une traduction à l'échelle appliquée en XAML. En utilisant DrawingContext Je dessine des lignes sur le Canvas. Je dois maintenant ajouter du texte à l'écran. Je pensais avec du texte formaté je pouvais appliquer une traduction, mais ni texte Formaté ou DrawingContext accepte RenderTransform. Comment puis-je demander une traduction à l'échelle du texte il contrera la traduction à l'échelle de la toile?

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

La solution

Dans la plupart des applications de l'interface utilisateur, au lieu d'utiliser un DrawingContext, la bonne chose à faire est peut-être ajouter un enfant TextBlock la toile, et changer la RenderTransform du TextBlock.

Cependant, supposant que vous avez une bonne raison d'utiliser un DrawingContext, vous pouvez utiliser DrawingContext.PushTransform pour pousser le besoin vous transformez (échelle, traduction, etc.), juste avant que vous invoquez DrawText. Utilisez DrawingContext.Pop pour restaurer la état antérieur une fois que vous avez terminé avec DrawText.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top