我有一个 WPF 按钮子类,它覆盖 OnRender() 以根据当前状态绘制几个位图之一。简化的(1位图)代码如下所示......
protected override void OnRender(DrawingContext context)
{
context.DrawImage(_MyBitmapSource, new Rect(0, 0, Width, Height));
}
每个位图中阴影的半透明黑色像素错误地呈现为半透明白色。
同样,如果我将这些图像之一设置为背景画笔,也会发生同样的事情。
对于图像控件,将相同的图像设置为 Source 看起来是正确的,所以我知道 WPF 能够正确绘制阴影。我显然遗漏了一些东西——可能是在调用 DrawImage() 之前需要在 OnRender() 中设置的其他东西。
PNG图像没有什么特别之处。为了确定这不是问题,我从 images.google.com 下载了一些 PNG,它们都有同样的问题。