protected CroppedBitmap[] GetSpriteSources(String source, Int32 rows, Int32 columns) { var sourceImage = ImageUtility.InitializeBitmapSourceFromLocation(source); var sourceWidth = sourceImage.PixelWidth / columns; var sourceHeight = sourceImage.PixelHeight / rows; var sources = new CroppedBitmap[rows * columns]; for (Int32 index = 0; index < sources.Count(); index++) { var xPosition = (index % columns) * sourceWidth; var yPosition = (index / columns) * sourceHeight; var croppedBitmap = new CroppedBitmap(); croppedBitmap.BeginInit(); croppedBitmap.Source = sourceImage; croppedBitmap.SourceRect = new Int32Rect(xPosition, yPosition, sourceWidth, sourceHeight); croppedBitmap.EndInit(); sources[index] = croppedBitmap; } return sources; }