Я пишу программу, в которой есть два TextBlock
с каждым заданным значением c FontFamily
. Я установил каждый шрифт, используя переменную FontFamily
. FontFamily
переменные задаются в методе, который загружается из определенных .ttf
файлов. Они могут или не могут быть установлены в системе.
Мне не удалось найти способ установить FontFamily
из файла .ttf
, поскольку файлы .ttf
не могут быть сохранены программой (файлы шрифтов) заменяет время выполнения).
Некоторые из моих попыток
String textFontName = "nameOfFont";
FontFamily textFont = new FontFamily(new Uri(AppDomain.CurrentDomain.BaseDirectory + "/themes/tmp/text/#" + textFontName, UriKind.Absolute), textFontName); // Not Work if font is not installed
Редактировать: Этот:
textFont = new FontFamily("file:///" + AppDomain.CurrentDomain.BaseDirectory + "/themes/tmp/text/#" + textFontName);
, и этот очень интересен:
textFont = new FontFamily(new Uri(AppDomain.CurrentDomain.BaseDirectory + "/themes/tmp/text/text.ttf", UriKind.Absolute), "./#" + textFontName);
Первый запуск метода: textFont в порядке, но textFont2 (его шрифт был установлен ранее) не работает! Запустите метод во второй раз: textFont2 is все еще сломан, но где текстовый шрифт? 10
Я также использую AddFontResourceW
, возвращает 1, и система содержит файл шрифта, но шрифт TextBlock по-прежнему является шрифтом по умолчанию:
AddFontResourceW(AppDomain.CurrentDomain.BaseDirectory + "themes\\tmp\\text\\text.ttf");
SendMessageW(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
это программа WPF, поэтому PrivateFontCollection
не работает. Какие еще есть способы установить шрифт из файла шрифта?
Обновление: Я обнаружил, что
textFont = new FontFamily("file:///" + AppDomain.CurrentDomain.BaseDirectory + "/themes/tmp/text/#" + textFontName);
и этот
textFont = new FontFamily(new Uri(AppDomain.CurrentDomain.BaseDirectory + "/themes/tmp/text/text.ttf", UriKind.Absolute), "./#" + textFontName);
Работает, но пока шрифт не заменен. если я заменю text.ttf на другие шрифты (или заменю его на себя), шрифт будет поврежден ( это изображение )