I'm not entirely sure what you mean, but have you looked at the Map.ScreenToMap and Map.MapToScreen methods? They might do what you are looking for.
I'm not sure what your calculation is trying to achieve but referring to your first post, to find out the position of a graphic, you can use mouse events on the layer.
In this SDK example (Identify), MouseClick event is used and e.MapPoint gives the location using map coordinates.
http://help.arcgis.com/en/webapi/silverlight/samples/start.htm#Identify
In this SDK example (Mouse Coords), MouseMove event is used to get both MapPoint and ScreenPoint.
http://help.arcgis.com/en/webapi/silverlight/samples/start.htm#MouseCoords
As Morten mentioned, it is possible to convert from one coordinate system to the other by calling MapToScreen or ScreenToMap.
MapPoint mapPoint = graphic.Extent.GetCenter(); Point screenPoint = MyMap.MapToScreen(mapPoint);
How about...MapPoint mapPoint = graphic.Extent.GetCenter(); Point screenPoint = MyMap.MapToScreen(mapPoint);
provided neither graphic nor its extent is null.
public MainPage() { InitializeComponent(); this.MyMap.Layers.LayersInitialized += Layers_LayersInitialized; } bool allLayersDrawn = false; void Layers_LayersInitialized(object sender, System.EventArgs args) { if (!allLayersDrawn) { GraphicsLayer l = this.MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; if (l != null) { MapPoint mapPoint = l.Graphics[0].Geometry.Extent.GetCenter(); Point screenPoint = this.MyMap.MapToScreen(mapPoint); } allLayersDrawn = true; } }