Элемент управления DomainUpDown (spinner) обрезает нижний пиксель отображаемого текста - PullRequest
3 голосов
/ 11 августа 2009

Я использую winforms, а высота элемента управления DomainUpDown заблокирована на уровне 20 пикселей, что приводит к появлению буквы "y" и других символов с обрезанными внизу спусковыми элементами.

Моей первоначальной мыслью о том, как решить проблему, было изменение высоты элементов управления, но я не мог этого сделать. В конструкторе у меня есть только элементы управления для перетаскивания его размера по ширине. Страница свойств немедленно отменяет любое изменение высоты, которое я делаю. Попытки изменить значение в коде молча проваливаются; без ошибок, без исключений, но и без изменения значения.

В этом примере формы "g" в DomainUpDown будет вырезано.

public partial class Form1 : System.Windows.Forms.Form
{
    private System.Windows.Forms.DomainUpDown domainUpDown1 = new System.Windows.Forms.DomainUpDown();
    public Form1()
    {
        this.domainUpDown1.Location = new System.Drawing.Point(16, 8);
        this.domainUpDown1.Size = new System.Drawing.Size(212, 20);
        this.domainUpDown1.Text = "why are descenders like g cut?";
        this.ClientSize = new System.Drawing.Size(328, 64);
        this.Controls.Add(this.domainUpDown1);
    }
}

1 Ответ

1 голос
/ 11 августа 2009

Я вижу то же самое поведение фиксированной высоты при использовании элементов управления DomainUpDown. Вы можете настроить размер используемого шрифта, который изменяет высоту элемента управления в соответствии с текстом. Возможно, небольшая настройка размера вашего текста может помочь с обрезкой символов с помощью «спусков». Я не вижу отсечения с использованием шрифта по умолчанию 8.25pt.

EDIT: После репликации на XP с классической темой и с тестированием Дэна, проблема, похоже, заключается в толщине границ и отступов, которые обрезают g.

Установка BorderStyle на FixedSingle или None устраняет проблему.

domainUpDown1.BorderStyle = BorderStyle.FixedSingle;

или

domainUpDown1.BorderStyle = BorderStyle.None;

Вам нужно увидеть, что выглядит лучше всего в вашем приложении. Да, и установка вашей темы на XP (а не на классическую) тоже будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...