2015-09-24 3 views
0

Я имею в виду дизайн Visual Studio. При добавлении метки с использованием полной среды .NET, элементы управления System.Windows.Forms.Label имеют значение по умолчанию для свойства AutoSize. Если я удаляю элемент Label на форму, шрифт по умолчанию - «Microsoft Sans Serif, 12pt, Regular», а высота элемента управления - 20. Измените шрифт (скажем) «Tahoma, 14pt, Bold» и высоту автоматически изменяется на 23. Прекрасно.Дизайн-размер времени метки (Compact Framework)

Но в CF (Compact-Framework), Label элементы управления не имеют свойства AutoSize. Когда я изменяю шрифт, как описано выше, высота Label не изменяется (остается на уровне 20), а часть текста отрубается).

Мой вопрос: не удалось открыть полный проект .NET и проверить свой выбор шрифта, есть ли способ узнать, какую высоту установить мой Label во время разработки?

ответ

2

Вы можете использовать графический объект для измерения высоты строки, например, в случае Paint или OnPaint метод:

Graphics g = e.Graphics; 
float lineHeight = g.MeasureString(this.Text, this.Font).Height; 

он может быть использован в унаследованной этикетке. например, вы можете переопределить метод OnPaint или где-то еще и сделать это, тогда он будет работать во время разработки.

Другие ресурсы:

+0

Это замечательно (и что-то я использую уже), но это проверка времени выполнения. Мой вопрос касается размера времени разработки метки (т. Е. Свойств элемента управления в дизайнере Visual Studio). – AlainD

+0

@AlainD Я думаю, что он может использоваться в унаследованной метке. например, вы можете переопределить метод «OnPaint» и сделать это. то он будет работать во время разработки. –

+1

@AlainD Aslo вы можете взглянуть на [Multi-Line Graphics.MeasureString на .Net CF] (http://www.mobilepractices.com/2007/12/multi-line-graphicsmeasurestring.html) –

Смежные вопросы