WinForms: Как да добавите множество теми към вашето приложение

WinForms: Как да добавите множество теми към вашето приложение

Обичайно е съвременните приложения да имат опция за превключване между различни теми. Например, някои приложения ви позволяват да сменяте между светла тема или тъмна тема, докато други може да имат повече възможности за избор на тема.





Windows Forms е UI рамка, която ви позволява да създавате настолни приложения. Можете да внедрите теми в приложение за формуляр на Windows, като създадете избираеми бутони за всяка тема.





MAKEUSEOF ВИДЕО НА ДЕНЯ

Когато потребителят избере тема, можете да промените свойствата на цвета на фона или цвета на текста на всеки елемент, за да съответства на избраната тема.





инсталирайте windows media player windows 10

Как да настроите проекта Windows Form

Първо създайте ново приложение за формуляр на Windows. Попълнете новия проект с някои основни контроли, като бутони и етикети.

  1. Създавам ново приложение Windows Forms във Visual Studio.
  2. В новия проект използвайте кутията с инструменти, за да търсите контрола с бутон.   Прозорец със свойства за бутон в приложението Winforms
  3. Изберете бутон за управление и го плъзнете върху платното. Добавете общо три бутона за управление.   Прозорец със свойства за бутон в приложението Winforms
  4. С помощта на кутията с инструменти щракнете и плъзнете a контрол на етикета върху платното. Поставете етикета под бутоните.   Прозорец със свойства за бутон в приложението Winforms
  5. Стилизирайте бутоните и етикетите с помощта на прозореца със свойства. Променете свойствата на следното:
    бутон1 Размер 580, 200
    FlatStyle Апартамент
    Текст Потребители
    бутон2 Размер 580, 100
    FlatStyle Апартамент
    Текст Сметки
    бутон3 Размер 580, 100
    FlatStyle Апартамент
    Текст Разрешения
    етикет1 Текст Авторско право 2022 г

Как да създадете бутона за настройки и списъка с теми

За да работи едно просто меню с теми, създайте множество бутони, които да представят всяка тема. Приложението ще включва три теми, 'Светла' тема, 'Природа' тема и 'Тъмна' тема.



  1. Добавете друг контролен бутон към платното, за да представите бутона за настройки (или „Теми“).
  2. Променете свойствата на този бутон на следните:
    Име btnThemeSettings
    FlatStyle Апартамент
    Размер 200, 120
    Текст Теми
  3. Плъзнете още три бутона върху платното. Тези бутони ще представляват трите различни теми. Променете свойствата за всеки от бутоните на следното:
    1-ви бутон Име btnLightTheme
    BackColor WhiteSmoke
    Размер 200, 80
    FlatStyle Апартамент
    Текст Светлина
    Видими Невярно
    2-ри бутон Име btnNatureTheme
    BackColor DarkSeaGreen
    Размер 200, 80
    FlatStyle Апартамент
    Текст Природата
    Видими Невярно
    3-ти бутон Име btnDarkTheme
    BackColor DimGray
    ForeColor Бяло
    Размер 200, 80
    FlatStyle Апартамент
    Текст Тъмно
    Видими Невярно
  4. Щракнете двукратно върху Теми бутон. Това ще създаде метод за обработка на събитието „on click“. Методът ще се стартира, когато потребителят щракне върху този бутон.
  5. По подразбиране темите „Светли“, „Природа“ и „Тъмни“ няма да се виждат. Във функцията добавете функционалността за превключване на видимостта на бутоните за показване или скриване.
    private void btnThemeSettings_Click(object sender, EventArgs e) 
    {
    btnNatureTheme.Visible = !btnNatureTheme.Visible;
    btnLightTheme.Visible = !btnLightTheme.Visible;
    btnDarkTheme.Visible = !btnDarkTheme.Visible;
    }
  6. Стартирайте приложението, като щракнете върху зеления бутон за възпроизвеждане в горната част на прозореца на Visual Studio.
  7. По време на изпълнение приложението ще скрие бутоните за всяка от трите теми по подразбиране.
  8. Кликнете върху Теми бутон за превключване на темите за показване. Можете да продължите да натискате Теми бутон за превключване на тяхната видимост.

Как да управлявате своите теми

Създайте речници за всяка тема, за да съхранявате различните цветове, които ще използва. Това е така, че да съхранявате всичките си цветове на темата на едно място, в случай че трябва да ги използвате няколко пъти. Освен това улеснява, ако искате да актуализирате тема с нови цветове в бъдеще.

  1. В горната част на по подразбиране Form1.cs C# файл и вътре в форма клас, създайте глобално enum. Това преброяване ще съхранява различните типове цветове, които ще използвате в тема.
    enum ThemeColor 
    {
    Primary,
    Secondary,
    Tertiary,
    Text
    }
  2. Отдолу декларирайте три глобални речника, по един за всяка от трите теми. Можете да прочетете повече за речниците, ако не сте запознати с това как да използвате a речник в C# .
    Dictionary<ThemeColor, Color> Light = new Dictionary<ThemeColor, Color>(); 
    Dictionary<ThemeColor, Color> Nature = new Dictionary<ThemeColor, Color>();
    Dictionary<ThemeColor, Color> Dark = new Dictionary<ThemeColor, Color>();
  3. Вътре в конструктора инициализирайте речниците. Добавете стойности за различните цветове, които всяка тема ще използва.
    public Form1() 
    {
    InitializeComponent();
    // Add dictionaries here
    Light = new Dictionary<ThemeColor, Color>() {
    { ThemeColor.Primary, Color.WhiteSmoke },
    { ThemeColor.Secondary, Color.Silver },
    { ThemeColor.Tertiary, Color.White },
    { ThemeColor.Text, Color.Black }
    };
    Nature = new Dictionary<ThemeColor, Color>() {
    { ThemeColor.Primary, Color.DarkSeaGreen },
    { ThemeColor.Secondary, Color.AliceBlue },
    { ThemeColor.Tertiary, Color.Honeydew },
    { ThemeColor.Text, Color.Black }
    };
    Dark = new Dictionary<ThemeColor, Color>() {
    { ThemeColor.Primary, Color.DimGray },
    { ThemeColor.Secondary, Color.DimGray },
    { ThemeColor.Tertiary, Color.Black },
    { ThemeColor.Text, Color.White }
    };
    }

Как да промените темата

Създайте функции за управление на темата на приложението. Тези функции ще променят цвета на фона или цвета на текста на елементите на потребителския интерфейс върху платното.





какво да правите, когато iphone е заседнал върху логото на apple
  1. Създайте нова функция, наречена Промяна на темата() . Функцията ще приеме цветовете за дадена тема като аргументи.
  2. Вътре във функцията променете свойствата на цвета на фона на елементите на потребителския интерфейс. Новите цветове на фона ще използват цветове за избраната тема.
    private void ChangeTheme(Color primaryColor, Color secondaryColor, Color tertiaryColor) 
    {
    // Change background color of buttons
    btnThemeSettings.BackColor = primaryColor;
    button1.BackColor = primaryColor;
    button2.BackColor = secondaryColor;
    button3.BackColor = secondaryColor;
    this.BackColor = tertiaryColor;
    }
  3. Създайте нова функция, наречена ChangeTextColor() . Можете да използвате това, за да промените цвета на текста между тъмен и светъл. Това е, за да се гарантира, че текстът на тъмен фон ще бъде четим.
    private void ChangeTextColor(Color textColor) 
    {
    // Change color of text
    button1.ForeColor = textColor;
    button2.ForeColor = textColor;
    button3.ForeColor = textColor;
    label1.ForeColor = textColor;
    btnThemeSettings.ForeColor = textColor;
    }
  4. От дизайнера щракнете двукратно върху контролата на бутона 'Светлина'. Това ще отвори файла със задния код и ще генерира манипулатор на събития, когато потребителят щракне върху бутона.
  5. Вътре в манипулатора на събития използвайте Промяна на темата() и ChangeTextColor() функции. Въведете цветовете, които използва темата. Можете да извлечете тези цветове от речника на темата 'Light'.
    private void btnLightTheme_Click(object sender, EventArgs e) 
    {
    ChangeTheme(Light[ThemeColor.Primary], Light[ThemeColor.Secondary], Light[ThemeColor.Tertiary]);
    ChangeTextColor(Light[ThemeColor.Text]);
    }
  6. Върнете се в дизайнера и кликнете върху бутоните 'Nature' и 'Dark'. Използвай Промяна на темата() и ChangeTextColor() функции и в техните манипулатори на събития.
    private void btnNatureTheme_Click(object sender, EventArgs e) 
    {
    ChangeTheme(Nature[ThemeColor.Primary], Nature[ThemeColor.Secondary], Nature[ThemeColor.Tertiary]);
    ChangeTextColor(Nature[ThemeColor.Text]);
    }
    private void btnDarkTheme_Click(object sender, EventArgs e)
    {
    ChangeTheme(Dark[ThemeColor.Primary], Dark[ThemeColor.Secondary], Dark[ThemeColor.Tertiary]);
    ChangeTextColor(Dark[ThemeColor.Text]);
    }
  7. По подразбиране темата трябва да бъде зададена на „Светла“, когато потребителят отвори приложението за първи път. В конструктора, под речниците, използвайте Промяна на темата() и ChangeTextColor() функции.
    ChangeTheme(Light[ThemeColor.Primary], Light[ThemeColor.Secondary], Light[ThemeColor.Tertiary]); 
    ChangeTextColor(Light[ThemeColor.Text]);
  8. Стартирайте приложението, като щракнете върху зеления бутон за възпроизвеждане в горната част на прозореца на Visual Studio.
  9. По подразбиране приложението използва темата „Light“ и прилага сивата цветова схема към контролите на потребителския интерфейс. Превключете бутона за теми, за да видите списъка с теми.
  10. Кликнете върху темата Природа.
  11. Кликнете върху тъмната тема.

Създаване на приложения чрез Windows Forms

Много приложения позволяват на потребителя да превключва между множество теми. Можете да добавите теми към приложение на Windows Forms, като създадете опции, които потребителят да избира.

Когато потребителят щракне върху тема, можете да промените цвета на фона, текста или други свойства, за да съответстват на цветовете, използвани в избраната тема.





Цветовете за всяка от темите използват вградените цветове на Visual Studio. Ще трябва да използвате подходяща цветова схема, за да предоставите на потребителите по-добро изживяване. Можете да научите повече за различните начини, по които можете да изберете цветова схема за вашето приложение.