Most medical 3D-images are usually very big (GB-size). You want to choose a language which can easily cope with these. To my knowledge C# has a 2GB memory limit (I'm not 100% sure) which may cause some problems.
I don't have any experience with Python so I'm not going to go further down that path. But I've worked with both C# and C++ on medical image data (reconstruction, filtering, normalizing and other heavy calculations). In our case C++ is the only choice because of speed. But when it comes to viewing the images, this may probably not an issue.
I wish you the best of luck. A good stable and quick 3D-viewer would be great!