Wie erstellen Sie mehrere Striche für Text in WPF?

9

Ich versuche, Text zu erstellen, der wie folgt in WPF aussieht:

Beachten Sie, dass es gelber Text ist, mit einem schwarzen Strich, dann einem gelben Strich, dann einem anderen (sehr dünnen) schwarzen Strich. Jetzt kann ich einen einzelnen Strich mit etwas schwierigem erstellen, indem ich Vorgehensweise: Erstellen von umrissenem Text . Beachten Sie, dass die nicht angezeigten Eigenschaften alle DPs des enthaltenen Steuerelements sind.

%Vor%

Also meine Frage ist, wie nehme ich das und füge einen anderen (oder mehrere andere) Strich (e) hinzu?

    
BradleyDotNET 23.12.2014, 18:20
quelle

1 Antwort

4

Eine Methode wäre, die Strichgeometrie mit der Anfangsgeometrie zu kombinieren und dann das für den zweiten Strich zu streichen.

Glücklicherweise beweist .NET Geometry.GetWidenedPathGeometry , um es zu bekommen die Strichgeometrie. Sie können dann Geometry.Combine verwenden, um die beiden zu kombinieren:

%Vor%

Beachten Sie die StrokeThickness * 2 . Sie benötigen das, weil WPF einen center -Schnitt zeichnet, und ohne ihn wird der zweite Strich den ersten zumindest teilweise (wenn nicht vollständig) verdecken. Zeichnen Sie dann wie zuvor mit null für Fill:

%Vor%

Sie können dies für zusätzliche Striche wiederholen oder eine Sammlung mit einer Schleife verwenden.

Warnung : GetWidenedPathGeometry gibt nicht immer einen "perfekten" Strich basierend auf der verwendeten Schriftart, der Größe der Schriftart und der Größe der Kontur zurück. Möglicherweise müssen Sie etwas herumspielen, um keine Artefakte zu haben.

Workaround für oben : Wenn möglich, erhöhen Sie die Schriftgröße. Es vergrößert den Abstand zwischen den einzelnen Strichen und verringert damit die Wahrscheinlichkeit, dass der Algorithmus die beiden Teile "überbrückt" oder andere Artefakte erzeugt.

    
BradleyDotNET 24.12.2014, 01:35
quelle

Tags und Links