Frage

Ich habe eine Canvas mit einer Skala Übersetzung in XAML angewandt. Mit DrawingContext Ich zeichne Linien auf dem Canvas. Ich brauche jetzt Text auf dem Bildschirm hinzuzufügen. Ich dachte, mit formatiertem Text ich eine Übersetzung anwenden könnte, aber weder Formatierter Text oder DrawingContext akzeptiert RenderTransform. Wie bewerbe ich eine Skala Übersetzung auf den Text, damit es die Skala Übersetzung der Leinwand begegnen wird?

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

Lösung

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

Allerdings vorausgesetzt, Sie haben einen guten Grund eine DrawingContext für verwenden, können Sie DrawingContext.PushTransform schieben die Transformation Sie benötigen (Skala, Übersetzung, etc.), kurz bevor Sie DrawText aufrufen. Verwenden Sie DrawingContext.Pop wiederherzustellen die Stand der Zustand, nachdem Sie mit DrawText getan.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top