Is there any Silverlight based WebGIS API like OpenLayers?
The only one I'm aware of is the DeepEarth project. It's not had much development for a while though (targets Silverlight 2).
Another option is to overlay an HTML control on top of your Silverlight application. You can then use OpenLayers as normal. I've done this successfully with Google Earth so can't think of any reason you can't do similar with OpenLayers.