Узнать предполагаемый размер Label (C# + WPF)?

Надо узнать, каким будет размер Label в пикселях, если его содержимым будет определённая строка, при этом не отображая сам Label.


Код
Label label = new Label();
label.Content = root.value; //тип string
return label.ActualHeight;
возвращает ноль.
  • Вопрос задан
  • 7100 просмотров
Решения вопроса 1
Thecentury
@Thecentury
Сделайте вашему label Measure(size). C size не уверен, попробуйте или new Size(), или new Size(Double.PositiveInfinity, Double.PositiveInfinity). Затем считайте желаемый размер из свойства DesiredSize.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
@Lazer1999
Я в таких случаях пляшу от размера текста.
То есть примерно так:
SizeF textSize = TextRenderer.MeasureText(text, label.Font);

Соотв. при автосайзе допуски до размера лейбла считаемы как Padding.
Итого:
int labelWidth = label.Padding.Horizontal + textSize.Width;
int labelHeight = label.Padding.Vertical + textSize.Height;
Ответ написан
Комментировать
NorthDakota
@NorthDakota
PHP програмист
Может проще вручную задать?
// Создаем объект
Label label1 = new Label();
// Устанавливаем видимые границы
label1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
// Выравниваем нашу надпись
label1.ImageAlign = ContentAlignment.TopLeft;
// Устанавливаем значение
label1.Text = "MyFirstLabel";
// Устанавливаем размеры
label1.Size = new Size (label1.PreferredWidth, label1.PreferredHeight);
Ответ написан
NorthDakota
@NorthDakota
PHP програмист
Попробуйте мспользовать название обьекта не label, а например label1, возможно класс и объект путаются
и вот таким образом верните значение
return label1.Height;

П.С. На роботе нет C#, конкретно проверить не могу.
Ответ написан
NorthDakota
@NorthDakota
PHP програмист
label1.ClientSize
попробуй это
вот детальней почитай msdn.microsoft.com/ru-ru/library/system.windows.forms.label.aspx
Ответ написан
Может стоит попробовать:
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы