This is an excellent question and -- I think -- a great idea of how to present pixel graphics -- my 5!
Fortunately, I know the exact answer.
The only way I can see it to model each pixel as a rectangle object (actually a square if you want square pixels). This will automatically give you the desired effect using same very zooming you already use.
To extract data about pixels from a WPF bitmap (I assume you already obtain one) use
System.Windows.Media.Imaging.BitmapImage
and its method
CopyPixels
.
If you need to update picture (if this is a kind of editor), you may need to pack your "square" data back to real bitmap. Then use
System.Windows.Media.Imaging.WriteableBitmap
Please feel free to ask any further questions (and certainly do that if you think something is wrong, before you vote :) )
Thank you.