The issue reported here:
http://writeablebitmapex.codeplex.com/discussions/390628
was fixed on ChangeSet 93605 but now it is broken again.
Comments: I just spent some time to verify it and the most current version uses the right alpha blending formula. The WB uses pre-multiplied colors so multiplying it again with the alpha would be a double calc. Also see this: http://writeablebitmapex.codeplex.com/workitem/19133
You can verify it here:
```
var background = new WriteableBitmap(400, 400);
background.Clear(Color.FromArgb(255, 0, 255, 128));
var overlay = new WriteableBitmap(400, 400);
overlay.ForEach((x, y) =>
{
var a = (byte)(255 - (x / 400.0) * 255);
return Color.FromArgb(a, 255, 255, 255);
});
var rect = new Rect(0, 0, 400, 400);
background.Blit(rect, overlay, rect, WriteableBitmapExtensions.BlendMode.Alpha);
Img.Source = background;
```
http://writeablebitmapex.codeplex.com/discussions/390628
was fixed on ChangeSet 93605 but now it is broken again.
Comments: I just spent some time to verify it and the most current version uses the right alpha blending formula. The WB uses pre-multiplied colors so multiplying it again with the alpha would be a double calc. Also see this: http://writeablebitmapex.codeplex.com/workitem/19133
You can verify it here:
```
var background = new WriteableBitmap(400, 400);
background.Clear(Color.FromArgb(255, 0, 255, 128));
var overlay = new WriteableBitmap(400, 400);
overlay.ForEach((x, y) =>
{
var a = (byte)(255 - (x / 400.0) * 255);
return Color.FromArgb(a, 255, 255, 255);
});
var rect = new Rect(0, 0, 400, 400);
background.Blit(rect, overlay, rect, WriteableBitmapExtensions.BlendMode.Alpha);
Img.Source = background;
```