Изменение только стилей шрифтов с помощью диалогового окна шрифтов

#c# #winforms

#c# #winforms

Вопрос:

Я создал приложение для заметок с помощью c # forms. Я хочу, чтобы он был почти полностью настраиваемым, поэтому я включил диалоговое окно шрифта. Но если пользователь выбирает более высокие размеры шрифта, чем я установил. Кнопки и метки выглядят очень плохо. Итак, я хочу, чтобы, если пользователь захочет изменить шрифт, применялся только стиль шрифта.Фотография приложения

 private void font_change_Click(object sender, EventArgs e)
        {
            fontDialog1.ShowApply = true;
            fontDialog1.MaxSize = 40;
            fontDialog1.MinSize = 8;
            if(fontDialog1.ShowDialog()== DialogResult.OK)
            {
                title.Font = fontDialog1.Font;
                message.Font = fontDialog1.Font;
            }
        }

private void fontDialog1_Apply(object sender, EventArgs e)
        {

                title.Font = fontDialog1.Font;
                message.Font = fontDialog1.Font;
            
        }
 

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

1. Я думаю, что лишить пользователя возможности изменять размер шрифта — это действительно плохое решение с точки зрения удобства использования. Некоторым людям нужно будет увеличить размер шрифта, чтобы они могли его прочитать.

2. @JJF Мне жаль, что детали слишком широки. Но у меня нет проблем с размером шрифта текстового поля. Вместо этого у меня проблемы с размером шрифта кнопок и меток.

3. Использовать title.Font = new Font(fontDialog1.Font.FontFamily, title.Font.Size, fontDialog1.Font.Style); .

4. Может быть, не разрешайте им использовать ваше приложение для изменения шрифта на кнопках и надписях? Просто позвольте им по умолчанию использовать системный шрифт / размер шрифта, который пользователь может установить для всей системы. Тогда, если пользователь делает их настолько большими, что это выглядит плохо? Ну, это прерогатива пользователя, не так ли? Я бы предпочел иметь уродливый интерфейс, который я могу читать и использовать, а не красивый, который я даже не вижу!

Ответ №1:

Перед нажатием кнопки

Перед нажатием кнопки

После нажатия кнопки

После нажатия кнопки

Кодекс

 label1.Font = new Font("Yu Gothic", label1.Font.Size);
 

ИТАК, мы меняем только семейство шрифтов, в то время как текущий размер шрифта останется прежним. Вы можете сделать то же самое с кнопками при выполнении вашего действия. Надеюсь, это сработает!