2016-07-26 14 views
1

ich eine Ellipse mit einem Hub, also:Ellipse Stroke Hintergrundfarbe

myEllipse.Stroke = Brushes.Yellow; 

Ich brauche es gelb zu sein, aber es funktioniert nicht immer schön auf weißen Hintergrund auftauchen, die in diesem sehr verbreitet Szenario.

Ich fragte mich, ob es einen Weg gab, den gelben Strich auf einen schwarzen Hintergrund zu setzen.

myEllipse.Stroke = Brushes.Black; 
myEllipse.Stroke = Brushes.Yellow; 

Wo statt der gelben die schwarze ersetzt, wäre es eine Kombination sein, so dass es immer schwarz, wenn das Hintergrundbild war gelb wie angezeigt.

+0

Nein, aber Sie können zwei Ellipsen mit einer anderen "StrokeThickness" überlagern. Eine andere Möglichkeit wäre, eine 'RadialGradientBrush' zu berechnen, die Ihren Bedürfnissen entspricht, aber das wäre viel mehr Aufwand. –

+0

Dieses Problem ist sehr häufig, schauen Sie auf Ihren Mauszeiger. Es muss sichtbar sein, ignoriert Hintergrundfarbe. Und die naheliegendste Lösung ist das Umranden, wenn eine dünne Kontur um das Objekt in entgegengesetzter (invertierter?) Farbe gezeichnet wird. Um diese Kontur tatsächlich zu zeichnen, besteht die einfachste Technik darin, zuerst ein leicht vergrößertes Objekt (mit demselben Mittelpunkt) mit invertierter Farbe zu zeichnen und dann das Original darüber zu zeichnen. – Sinatr

Antwort

1

Sie könnten zwei Ellipsen übereinander zeichnen. Der erste wäre schwarz und etwas dicker als der zweite, der gelb wäre.

Sie werden in der Reihenfolge gezeichnet, in der sie ihrem Container-Objekt hinzugefügt werden (Ansicht, Raster oder was auch immer), also stellen Sie sicher, dass Sie sie in der Reihenfolge "schwarz" und dann "gelb" hinzufügen.