У меня есть подкласс WPF Button, который переопределяет OnRender () для рисования одного из нескольких растровых изображений в зависимости от текущего состояния.Упрощенный (1-битовый) код показан ниже ...
protected override void OnRender(DrawingContext context)
{
context.DrawImage(_MyBitmapSource, new Rect(0, 0, Width, Height));
}
Полупрозрачные черные пиксели теней в каждом растровом изображении неправильно отображаются как полупрозрачный белый.
Аналогичным образом, если я установил одно из этих изображений в качестве кисти фона, произойдет то же самое.
Для элементов управления изображением установка того же изображения на Источник выглядит правильно, поэтому я знаю, что WPF способен правильно рисовать тени.Я явно что-то упускаю - возможно, что-то еще, что нужно установить в OnRender () перед вызовом DrawImage ().
В изображениях PNG нет ничего особенного.Просто чтобы быть уверенным, что это не проблема, я скачал несколько изображений PNG с images.google.com, и у них у всех была одна и та же проблема.