Как вы применяете Масштабный перевод к DrawingContext?
Вопрос
У меня есть Canvas
с переводом масштаба, примененным в XAML.Используя DrawingContext
Я рисую линии на Canvas
.Теперь мне нужно добавить текст на экран.Я думал, что с форматированным текстом я мог бы применить перевод, но ни форматированный текст, ни DrawingContext
принимает RenderTransform
.Как мне применить масштабный перевод к тексту, чтобы он противоречил масштабному переводу холста?
ftext = New FormattedText("N", CultureInfo.GetCultureInfo("en-us"), Windows.FlowDirection.LeftToRight, face, Me.DBFontSize, FalconDataBlock.Foreground)
context.DrawText(ftext, .TargetLineInfo.EndAsWinPoint)
Решение
В большинстве приложений пользовательского интерфейса вместо использования DrawingContext правильным решением может быть добавление дочернего текстового блока к Canvas и изменение RenderTransform текстового блока.
Однако, предполагая, что у вас есть веская причина для использования DrawingContext, вы могли бы использовать DrawingContext.Pushтрансформировать чтобы выполнить необходимое преобразование (масштабирование, перевод и т.д.) непосредственно перед вызовом DrawText.Использование Рисованиеконтекст.Pop чтобы восстановить предыдущее состояние после того, как вы закончите с DrawText.