See intro blogpost here.
WPF Requires you to call BeginInit and EndInit before and after setting the source. Also the load failed handlers are different.
BitmapImage bmi = new BitmapImage();
#if !SILVERLIGHT
bmi.BeginInit();
#endif
Image img = new Image();
bmi.UriSource = new Uri(strUrl, UriKind.Absolute);
#if SILVERLIGHT
img.ImageFailed += img_ImageFailed;
#else
bmi.DownloadFailed += bmi_DownloadFailed;
bmi.EndInit();
#endif
Image myImage = new Image();
myImage.Source = bmi;
Next: WPF vs. Silverlight - Part 4 - Animations