У меня возникли проблемы с комбинацией OpacityMask и Adorners в WPF.Почему моя OpacityMask вызывает ошибки визуализации?
В основном изображение с маской непрозрачности, нанесенной на него, а над ним - обожатель, который является подвижным ориентиром.
Когда Adorner перемещен, на изображении есть артефакты. Вдоль ограничивающей рамки у adorner появляются 1px широкие линии. В этих строках изображение становится прозрачным (хотя область не прозрачна по маске непрозрачности). Такое поведение зависит от двух (AFAIK) факторов:
- Когда я установил маску непрозрачности обнулить, нет никаких видимых артефактов.
- Когда я изменяю масштабное преобразование, непрозрачность артефактов меняется.
Любая идея, что может вызвать такое поведение или как я мог его избежать?
Вот несколько XAML-кодов, представляющих мой макет. Это не фактический код макета. Я попытался уменьшить содержание макета до ключевых компонентов, что, я думаю, связано с проблемой.
<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>
скриншот артефакта линий:
Спасибо, что выглядит действительно хорошо. – NikoR