【问题标题】:How do you apply a Scale Translation to a DrawingContext?如何将缩放平移应用到 DrawingContext?
【发布时间】:2009-07-08 18:57:15
【问题描述】:

我有一个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)

【问题讨论】:

    标签: wpf drawing drawtext


    【解决方案1】:

    在大多数 UI 应用程序中,不使用 DrawingContext,正确的做法可能是将子 TextBlock 添加到 Canvas,并更改 TextBlock 的 RenderTransform。

    但是,假设您有充分的理由使用 DrawingContext,您可以在调用 DrawText 之前使用DrawingContext.PushTransform 推送您需要的转换(缩放、平移等)。完成 DrawText 后,使用DrawingContext.Pop 恢复之前的状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      • 2022-09-27
      • 2020-06-18
      • 1970-01-01
      相关资源
      最近更新 更多