Вопрос в том, почему вы хотите? Почему бы просто не использовать TextBlock ?
Если вы пытаетесь динамически генерировать изображение, используйте стандартные элементы управления Silverlight / WPF (включая TextBlock) и визуализируйте их в WritableBitmap .
Edit:
Хорошо, вы обновили и расширили, что дает мне больше информации. К сожалению, вам не понравится ответ. Во-первых, имейте в виду, что Silverlight и WPF в целом основаны на векторах и предназначены для использования как таковые. Хотя Canvas позволяет вам выполнять псевдопиксельные манипуляции, вы не можете быть настолько точными, как GDI старой школы. Это фактор вашей среды. Если вам абсолютно необходимо измерить вещи так, как вы хотите их измерить, я предлагаю вам создать свои изображения на удаленном сервере и передать их в приложение Silverlight.
Вы можете рассчитать размер текста на экране, отображаемого с помощью TextBlock, используя свойства ActualWidth и ActualHeight. Но это работает только на уже обработанном элементе управления. Что-то вроде MeasureString просто не доступно в Silverlight. Исходя из вашего описания вашего приложения, некоторое взаимодействие с пользователем может выполнить то, что вы хотите. Пользователь выбирает изображение, вводит текст и показывает предварительный просмотр. Затем пользователь может регулировать ширину и высоту различных текстовых областей до тех пор, пока они не будут выполнены, и в этот момент вы можете сделать снимок, используя метод визуализации, который мне понравился выше.