Pergunta

Eu tenho um Canvas com uma tradução de escala aplicado em XAML. Usando DrawingContext eu desenhar linhas sobre o Canvas. Agora eu preciso adicionar texto para a tela. Pensei com texto formatado eu poderia aplicar uma tradução, mas nenhum texto formatado ou DrawingContext aceita RenderTransform. Como posso aplicar uma tradução escala para o texto assim que vai combater a tradução escala da tela?

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

Solução

Na maioria dos aplicativos de interface do usuário, em vez de usar um DrawingContext, a coisa certa a fazer poderia ser a de adicionar um TextBlock criança para a tela, e altere RenderTransform do TextBlock.

No entanto, supondo que você tenha uma boa razão para usar um DrawingContext, você poderia usar DrawingContext.PushTransform para empurrar a transformar o que você precisa (escala, tradução, etc.), pouco antes de você invocar DrawText. Use DrawingContext.Pop para restaurar o estado anterior depois que você fez com DrawText.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top