Вы можете сделать что-то вроде этого (не мой код, взятый из социальной сети msdn):
public static RenderTargetBitmap GetJpgImage(UIElement targetUIElement, double scale, int quality)
{
double actualHeight = targetUIElement.RenderSize.Height;
double actualWidth = targetUIElement.RenderSize.Width;
double renderedHeight = actualHeight * scale;
double renderedWidth = actualWidth * scale;
RenderTargetBitmap renderTarget = new RenderTargetBitmap((int)renderedWidth, (int)renderedHeight, 96, 96, PixelFormats.Pbgra32);
VisualBrush sourceBrush = new VisualBrush(targetUIElement);
DrawingVisual drawingVisual = new DrawingVisual();
DrawingContext drawingContext = drawingVisual.RenderOpen();
using (drawingContext)
{
drawingContext.PushTransform(new ScaleTransform(scale, scale));
drawingContext.DrawRectangle(sourceBrush, null, new Rect(new System.Windows.Point(0, 0), new System.Windows.Point(actualWidth, actualHeight)));
}
renderTarget.Render(drawingVisual);
JpegBitmapEncoder jpgEncoder = new JpegBitmapEncoder();
jpgEncoder.QualityLevel = quality;
jpgEncoder.Frames.Add(BitmapFrame.Create(renderTarget));
MemoryStream memoryStream = new MemoryStream();
jpgEncoder.Save(memoryStream);
File.WriteAllBytes(@"D:\a.jpg", memoryStream.ToArray());
return renderTarget;
}
Разработайте этот код, чтобы разделить JPG на квадраты, затем вы можете использовать Grid, программно создать группу столбцов и строк, а также с помощью свойств, прикрепленных к изображениям Grid.Row и Grid.Column, указать, какие (нарезанные) изображения присутствуют.