2009-07-08 11 views
2

Ich habe eine Canvas mit einer Maßstabsübersetzung in XAML angewendet. Mit DrawingContext zeichne ich Linien auf der Canvas. Ich muss jetzt Text auf dem Bildschirm hinzufügen. Ich dachte mit formatiertem Text könnte ich eine Übersetzung anwenden, aber weder formatiert Text oder DrawingContext akzeptiert RenderTransform. Wie wende ich eine Maßstabsübersetzung an den Text an, so dass er der Maßstabsübersetzung der Zeichenfläche entgegenwirkt?Wie wenden Sie eine Skalierungsübersetzung auf einen DrawingContext an?

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

Antwort

7

In den meisten UI-Anwendungen, anstatt eine DrawingContext zu verwenden, das Richtige zu tun, könnte sein, ein Kind TextBlock- der Leinwand hinzuzufügen, und die Render des TextBlock- zu ändern.

Wenn Sie jedoch einen guten Grund haben, einen DrawingContext zu verwenden, können Sie DrawingContext.PushTransform verwenden, um die gewünschte Transformation (Skalierung, Übersetzung usw.) direkt vor dem Aufruf von DrawText zu übertragen. Verwenden Sie DrawingContext.Pop, um den vorherigen Zustand wiederherzustellen, nachdem Sie mit DrawText fertig sind.

Verwandte Themen