Как вы применяете Масштабный перевод к DrawingContext?

StackOverflow https://stackoverflow.com/questions/1099945

  •  11-09-2019
  •  | 
  •  

Вопрос

У меня есть 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top