¿Cómo puede solicitar una traducción a una escala DrawingContext?
Pregunta
Tengo un Canvas
con una traducción de escala aplicado en XAML. Usando DrawingContext
dibujo líneas en la Canvas
. Ahora necesito añadir texto a la pantalla. Pensé con formatos de texto que pude aplicar una traducción, pero ninguno de texto con formato o DrawingContext
acepta de RenderTransform
. ¿Cómo solicito una traducción del texto a escala por lo que contrarrestará la traducción escala de la tela?
ftext = New FormattedText("N", CultureInfo.GetCultureInfo("en-us"), Windows.FlowDirection.LeftToRight, face, Me.DBFontSize, FalconDataBlock.Foreground)
context.DrawText(ftext, .TargetLineInfo.EndAsWinPoint)
Solución
En la mayoría de aplicaciones de interfaz de usuario, en lugar de utilizar un DrawingContext, lo que hay que hacer podría ser añadir un TextBlock niño a la tela, y cambiar RenderTransform del TextBlock.
Sin embargo, suponiendo que tiene una buena razón para utilizar un DrawingContext, podría utilizar DrawingContext.PushTransform para impulsar la transformación que necesita (escala, traducción, etc.), justo antes de la invocación DrawText. Usar DrawingContext.Pop para restaurar el estado anterior después de que haya terminado con DrawText.