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?
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:
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:
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.