Кто-нибудь знает, как установить шрифт в RichTextBox из Stream?
TextBlock и TextBox имеют возможность установить FontSource, но такие классы, как Run, Paragraph и все RichTextBox пропускают это. :( Есть причины для этого?
Есть ли известный способ добиться этого? Я уже пытался установить весь исходный URI в FontFamily, но это, похоже, не работает с внешними источниками, только для внутренних адресов URI, таких как /SilverlightFontTest;component/GRAFFITO_01.ttf#Graffito.
Я не могу найти дополнительную информацию о том, что делать дальше или что делать дальше, пожалуйста, помогите мне.
С уважением,
Бастиан
Ответ 1 · lhan
Вы можете указать пользовательский шрифт в элементе управления 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.
Это не самое простое решение, но оно работает. Надеюсь это поможет!