2015-05-12 3 views
-2

Я хочу знать, какова ширина (единицы) конкретной буквы или алфавита в определенном шрифте.Ширина буквы или алфавита в шрифте

Например, если я напечатаю A в Arial 10 pnts, сколько места займет его панель или текстовое поле или блокнот.

ответ

0

Я стараюсь не слишком беспокоиться о ширине, вместо этого оставляя его в WPF для удобного форматирования текста в любом управлении, которое я использую.

Однако, я думаю, что вы можете создать FormattedText объект, используя свой шрифт и строку "A" (среди прочего), а затем использовать его свойство MinWidth, чтобы получить ширину в единицах / 96th дюйма.

Этот код будет, надеюсь, вы начали:

FormattedText ft = new FormattedText(
    "A", 
    CultureInfo.GetCultureInfo("en-us"), 
    FlowDirection.LeftToRight, 
    new Typeface("Arial"), 
    32, 
    Brushes.Black); 
double width = ft.MinWidth; 

В моей системе, которая устанавливает width около 21.343. Если вы поместили em-dash , где в настоящий момент находится A, вы получаете (как ожидалось) 32.0 - размер, указанный вами в пятом аргументе для конструктора FormattedText.

+0

Действительно, это было большой помощью для меня ... На самом деле этот вопрос был более в контексте ситуации, в которой мне нужно решить. Это утверждение проблемы для того же: У меня есть панель в приложении WPF, Если я увеличиваю размер текста или изменяю шрифт, который я хочу рассчитать, сколько места занимает этот текст для размещения в панели, Далее, если я хочу изменить стиль или размер шрифта на какой процентное пространство на панели занятый текстом. Если вы можете помочь в том, как такое может быть реализовано – Akanksha

+0

@ user3636073, вам лучше задавать другой вопрос с новыми деталями, таким образом вы получите гораздо более широкую группу людей, которые смотрят на это не только я. Я буду следить за вашими вопросами, чтобы я мог видеть, как это произошло. – paxdiablo