ВОПРОС
В C # или VB.NET, в библиотеке классов WinForms или WPF и без необходимости использования сторонних приложений или API, я хотел бы знать, как получить заголовок файла текстового шрифта так же, как это показано при щелчке правой кнопкой мыши по текстовому файлу шрифта и переходу на страницу свойств деталей.
Другими словами, мне нужно получить точное имя, под которым шрифт будет зарегистрирован в реестре Windows, которое не совпадает с именем, которое дает мне свойство System.Drawing.FontFamily.Name
и свойство System.Drawing.Font.Name
.
RESEARCH
В StackOverflow есть несколько вопросов о том, как получить имя шрифта, например, this и this , но ни один из них для заголовка шрифта.
Ничто из этого не могло мне помочь. Я приведу пример разницы:
У меня есть файл шрифта истинного типа с именем файла "OpenSans-Light.ttf", который на странице свойств сведений отображается как "Open Sans Light", но при использовании решения на основе System.Drawing.FontFamily
я получаю имя "Open Санс».
Затем, после того, как я увидел, что, возможно, библиотека классов .NET Framework (WindowsForms) не обеспечивает функциональность для получения заголовка шрифта, я попытался выяснить, какая функция из API Windows может использовать расширение оболочки Windows файл сведений о файле для получения заголовка шрифта ...
... Я не нашел ничего об этом, никакой информации, ничего ни о чем, только функция GetFontData , которая не предоставляет мне нужную мне информацию.