pngファイルの一部をImageコントロールに表示したい場合は、CroppedImageを使います。
しかし、MSDNの記事を鵜呑みにしていたのですが、ファイルがロックされてしまうことに気づきました。
以下のようにする必要がありそうです。
public static class BitmapHelper { public static BitmapImage CreateBitmapImage(string filePath) { var bitmap = new BitmapImage(); var stream = File.OpenRead(filePath); bitmap.BeginInit(); bitmap.CacheOption = BitmapCacheOption.OnLoad; bitmap.StreamSource = stream; bitmap.EndInit(); stream.Close(); stream.Dispose(); return bitmap; } public static CroppedBitmap CreateCroppedBitmap(string filePath, Int32Rect rectangle) { var bitmap = CreateBitmapImage(filePath); var croppedBitmap = new CroppedBitmap(bitmap, rectangle); return croppedBitmap; } }