Как Вы тянете строку к Битовому массиву в Silverlight?

В нормальном C# легко потянуть к битовому массиву с помощью Grpahic. DrawString () метод. Silverlight, кажется, покончила с Растровыми объектами, и Графика больше не доступна также. Так... Как я предназначен для управления/создавания битовым массивом при использовании Silverlight? Если это помогает, я использую Silverlight 3.

Позвольте мне сказать Вам, что я делаю. Мне дают шаблон, в основном предварительно представленное изображение. Пользователь затем может выбрать из повторных изображений и ввести желаемый текст. Я затем представляю его к изображению, корректируя размер и т.д.... в границах и центрируя его в предопределенной области изображения. Если я могу вычислить размер (как в методе MeasureString) и затем потянуть строку (как в Графике. Метод DrawString), который был бы прекрасен. Реальным вопросом, неважно, почему я хочу смочь сделать это, является банка это быть сделанным?

5
задан Spenduku 10 February 2010 в 00:21
поделиться

2 ответа

Вопрос: зачем вам это нужно? Почему бы просто не использовать TextBlock ?

Если вы пытаетесь динамически сгенерировать изображение, используйте стандартные элементы управления Silverlight / WPF (включая TextBlock) и визуализируйте их в WritableBitmap .

Редактировать:

Хорошо, вы обновили и расширили, что дает мне больше возможностей для продолжения. К сожалению, вам не понравится ответ. Во-первых, имейте в виду, что Silverlight и WPF в целом являются векторными и предназначены для использования как таковые. Хотя Canvas позволяет выполнять манипуляции с псевдопикселями, вы не можете быть почти такими же точными, как GDI старой школы. Это фактор вашей среды. Если вам абсолютно необходимо измерять объекты так, как вы хотите их измерить, я предлагаю вам создать свои изображения на удаленном сервере и передать их в приложение Silverlight.

Вы можете рассчитать размер текста, отображаемого на экране с помощью TextBlock, с помощью свойств ActualWidth и ActualHeight. Но это работает только с уже визуализированным элементом управления. Что-то вроде MeasureString просто недоступно в Silverlight. Основываясь на вашем описании вашего приложения, некоторое взаимодействие с пользователем может привести к тому, что вы хотите. Пользователь выбирает изображение, вводит текст, и ему показывается предварительный просмотр. Затем пользователь может настраивать ширину и высоту различных текстовых областей до тех пор, пока не будет удовлетворен, после чего вы можете сделать снимок, используя метод рендеринга, который мне понравился выше.

3
ответ дан 14 December 2019 в 13:35
поделиться

Следующее может работать, это немного туманно, потому что я сам еще не пробовал.

Ищете объект WritableBitmap .

Вы создаете визуальное дерево, например создаете себе сетку или холст (вы не добавляете это в пользовательский интерфейс). Добавьте к нему выбранное изображение и текстовый блок, расположенный и размер которого вы предпочитаете.

Создайте новый WritableBitmap либо определенного размера, либо используя выбранное изображение для его инициализации.

Используйте метод WritableBitmap Render , передав ему указанную выше корневую сетку или Canvas .

Теперь у вас есть растровое изображение, которое вы можете использовать, чтобы делать все, что вам нужно, для чего в первую очередь требовались все эти прыжки через обруч.

3
ответ дан 14 December 2019 в 13:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: