Laden...

Unscharfe Darstellung von ContentControl auf Canvas

Erstellt von Camouflagezebra vor 11 Jahren Letzter Beitrag vor 11 Jahren 955 Views
C
Camouflagezebra Themenstarter:in
10 Beiträge seit 2010
vor 11 Jahren
Unscharfe Darstellung von ContentControl auf Canvas

Hallo,

Ich möchte auf einem Canvas Etiketten darstellen können, habe jedoch Probleme mit der Darstellung.

Die Etiketten werden als String angegeben, der von der Geometry-Klasse(System.Windows.Media.Geometry) geparst wird, damit am Ende ein Path(System.Windows.Shapes.Path) rauskommt.
Beispielsweise 22 Etiketten mit den Maßen 4030:
M0,0 H40 V40 H0 Z M40,0 H80 V40 H40 Z M0,40 H40 V80 H0 Z M40,40 H80 V80 H40 Z

Im Anschluss habe ich den Path dann als Content für ein ContentControl-Objekt gesetzt und dieses dann dem Canvas hinzugefügt.

Blödeweiße wird das erzeugte Bild bei größeren Etikettblöcken immer unschärfer zur Mitte hin (Im Anhang ein Screenshot dazu).

Wie kann ich das vermeiden?

Hier noch den Code für die Erstellung des ContentControl/Path


                Path label = new Path();
                ContentControl cc = new ContentControl();
                label.Stroke = Brushes.Black;
                label.StrokeThickness = 1;
                label.SnapsToDevicePixels = true;
                label.Stretch = Stretch.Fill;
                label.StrokeLineJoin = PenLineJoin.Miter;
                label.Data = Geometry.Parse(getGeometry()); // <---- getGeometry() stellt den String bereit, den ich schon im obrigen Beispiel angeführt habe 
                label.Fill = Brushes.Transparent;
                cc.SnapsToDevicePixels = true;
                cc.Width = label.Data.Bounds.Width;
                cc.Height = label.Data.Bounds.Height;
                cc.Content = label;


Im Sceenshot habe ich mal einen solchen Etiketten-Block auf die Canvas gezeichnet und mit der Bildschirmlupe rangezoomt.

greetz
Zebra