Ich habe Probleme mit der Kombination einer OpacityMask und Adorners in WPF.Warum verursacht meine OpacityMask Renderfehler?
Grundsätzlich gibt es ein Bild mit einer Opazitätsmaske und darüber einen Adorner, der eine bewegliche Richtlinie darstellt.
Wenn der Adorner bewegt wird, befinden sich Artefakte im Bild. Entlang der Begrenzungsbox des Adorners erscheinen 1px breite Linien. Bei diesen Linien wird das Bild transparent (obwohl der Bereich durch die Deckkraftmaske nicht transparent gemacht wird). Dieses Verhalten wird in Abhängigkeit von zwei (afaik) Faktoren:
- Wenn ich die Opazitätsmaske auf null gesetzt, es gibt keine Artefakte sichtbar.
- Wenn ich die Skalierungs-Transformation ändere, ändert sich die Deckkraft der Artefakte.
Irgendeine Idee, was dieses Verhalten verursachen könnte oder wie ich es vermeiden könnte?
Hier ist ein XAML-Code, der mein Layout darstellt. Dies ist nicht der tatsächliche Layout-Code. Ich habe versucht, den Layout-Inhalt auf die Schlüsselkomponenten zu reduzieren, von denen ich denke, dass sie in das Problem involviert sind.
<ScrollViewer>
<ContentControl> <!-- control for zooming the content with a render transform -->
<Image Source="..." /> <!-- Background-Image -->
<Image Source="..."> <!-- Foreground-Image with Mask -->
<Image.OpacityMask>
<VisualBrush />
</Image.OpacityMask>
</Image>
</ContentControl>
<AdornerLayer>
<myControls:GuideLineAdorner />
</AdornerLayer>
</ScrollViewer>
Ein Screenshot der Artefakt Linien:
Danke, das sieht wirklich gut aus. – NikoR