Solution working on WP8 device (tested on HTC 8S and Lumia 920)
public int TextWidth(string text)
{
TextBlock t = new TextBlock();
t.Text = text;
//Height and Width are depending on font settings
//t.FontFaimily=...
//t.FontSize=...
//etc.
return (int)Math.Ceiling(t.ActualWidth);
}
According to all information I found, ActualWidth should not be set until control is measured and arranged, but somehow it works while DesiredSize returned 0's for controls both measured and arranged, even ones statically added to form. Which is not as described in available materials.
This solution is still rather ugly one and, if I understood correctly, will fail to give correct number if device dpi is other than 96 as ActualWidht/Height value is in "device-independent unit" of 1/96. But for now, if I am not mistaken, all WP8 devices work in ye old 96dpi so until real solution will be found or made available (like desktop .NET Graphics.MeasureString()) it can act as surrogate.