В моем приложении я хочу добавить функцию для использования пользовательских шрифтов.
Пользователь выбирает шрифт из списка на моем сервере, загружает и использует его в приложении.
Как сделать ту часть приложения, которая будет отображать шрифт?
Как это сделать в приложении, которое не использует xaml?
Задача, которую вы собираетесь выполнить, вероятно, будет включать в себя значительное количество кода, потому что символы в шрифте должны быть сначала отображены в текстуре, прежде чем они могут быть отображены как часть SpriteBatch.
Как правило, это работает в XNA, проходя через конвейер контента. Вы выбираете файл шрифта и настраиваете свойства шрифта в XML, затем конвейер содержимого контента компилирует эту информацию в ресурс xnb, который можно загружать и отображать. Проблема в том, что все это происходит во время компиляции, и, следовательно, это будет трудно сделать во время выполнения.
Ссылка: http://rbwhitaker.wikidot.com/drawing-text-with-spritefonts
Альтернативный метод — использовать такой инструмент, как BMFont, для предварительного рендеринга шрифта в текстуру и написания собственного средства визуализации. Я написал учебник один раз, используя эту технику. Однако, это почти то же самое, но вы заменяете конвейер содержимого XNA инструментом BMFont.
http://www.craftworkgames.com/blog/tutorial-bmfont-rendering-with-monogame/
Имея это в виду, если вы хотите достичь этого, вам, вероятно, потребуется написать собственный код для рендеринга каждого шрифта в текстуру после загрузки во время выполнения. Вам также нужно будет отслеживать прямоугольник на текстуре для каждого глифа при загрузке шрифта. Чтобы сэкономить место для текстуры и поддерживать больший размер шрифта, вам также может понадобиться упаковка текстур и исключение определенных символов.
Других решений пока нет …