При изменении размера передней панели часть текста была обрезана, даже если авторазмер верен

#c# #winforms

#c# #winforms

Вопрос:

Я пытаюсь изменить размер текста, но он не будет автоматически масштабироваться, даже если он соответствует true, я также пытался сделать это с помощью кода, но это тоже не сработает, поэтому часть текста просто обрезана…

     private void sizeValue_ValueChanged(object sender, EventArgs e)
    {
        var sizeValueObj = sender as NumericUpDown;
        float fontSize = (float)sizeValueObj.Value;
        textLabel.Font = new Font(textLabel.Font.Name, fontSize);
    }
  

Комментарии:

1. Вы уверены, что метка при увеличении размера не перекрывается каким-либо другим элементом управления? Какой шрифт вы используете? Настроен ли NumericUpDown на использование 2 знаков после запятой? Каков текст метки (на каком языке)?

2. @Jimi Да, это ничего не перекрывает, я просто использую Microsoft без засечек. Числовое уменьшение увеличивается на 1 каждый раз. Текст метки — «Текст примера», а язык программирования — c#

3. Извините, не удается воспроизвести это каким-либо образом (также протестировано .Net FW 3.5). Создайте новый проект, чтобы протестировать только это условие, и опубликуйте воспроизводимый пример.

4. Единственное, что я не тестировал, это настройку VS IDE на экране с dpi != 96 (оказывается, у меня здесь нет такого экрана, это разочаровывает). Если это так (в любом случае вы всегда должны работать с разрешением 96 точек на дюйм) и вашей формой AutoSizeMode = Font , измените его на Dpi и явно установите шрифт метки (не позволяйте ему наследовать шрифт из контейнера — возможно, формы здесь — если это действительно не необходимо).).

5. Я имею в виду, с настройкой VS IDE с разрешением DPI, отличным от стандартного 96 .