Silverlight RichTextBox: как установить собственный шрифт из ресурса/потока?

Кто-нибудь знает, как установить шрифт в RichTextBox из Stream?

TextBlock и TextBox имеют возможность установить FontSource, но такие классы, как Run, Paragraph и все RichTextBox пропускают это. :( Есть причины для этого?

Есть ли известный способ добиться этого? Я уже пытался установить весь исходный URI в FontFamily, но это, похоже, не работает с внешними источниками, только для внутренних адресов URI, таких как /SilverlightFontTest;component/GRAFFITO_01.ttf#Graffito.

Я не могу найти дополнительную информацию о том, что делать дальше или что делать дальше, пожалуйста, помогите мне.

С уважением,
Бастиан


person Haragashi    schedule 07.07.2010    source источник


Ответы (1)


Вы можете указать пользовательский шрифт в элементе управления Silverlight, но если он не установлен на компьютере пользователя, он должен храниться где-то в вашем проекте. Я сделал это, создав папку «шрифты». Вы также должны установить «действие сборки» каждого файла шрифта на «ресурс» в окне «Свойства».

Затем вы можете ссылаться на эти шрифты в своем коде. В расширенном текстовом поле silverlight вы можете указать FontFamily следующим образом:

Dim oFontFamily as New FontFamily("fontFolderName/FontFileName.otf#FontName") myRichTextBox.Selection.ApplyPropertyValue(Run.FontFamilyPoeprty, oFontFamily)

Итак, для Helvetica LT STD Roman это будет выглядеть так:

Dim oFontFamily as new FontFamily("fonts/HelveticaLTSTD-Roman.otf#Helvetica LT Std")

Вы можете получить фактическое имя шрифта ("Helvetica LT Std"), вручную открыв файл шрифта.

Из предыдущего примера мои файлы шрифтов хранятся в папке под названием «шрифты» в моем проекте Silverlight.

Это не самое простое решение, но оно работает. Надеюсь это поможет!

person lhan    schedule 27.01.2011
comment
Привет, это действительно работает, но не решает проблему установки ресурса шрифта из потока. - person Haragashi; 02.09.2011