Your sample is exactly what we need I believe, but with my map the layer breaks when trying to run the below code line. It fails on the first feature.
ScreenPointF textScreenPoint = ExtentHelper.ToScreenCoordinate(canvas.CurrentWorldExtent, feature, canvas.Width, canvas.Height);
a typical value is as follows:
canvas.CurrentWorldExtent = -10780572.503912,4724900.1173184,-10780070.885932,4724630.7962368
feature = (polygon feature)
canvas.Width = 1680.0
canvas.Height = 902.0
The polygon feature looks like it is coming across correctly with correct column values (5 column values - Text, Size, Angle, Color, Font). Just for whatever reason the ScreenPointF will fail. The values are coming from a filegeodatabase not a shapefile.