im on написать большое приложение C#. Дело в том, что цвета элементов управления должны регулироваться пользователем приложения. Было бы очень приятно, если бы было какое-либо решение переопределить (только для контекста этого приложения) System.Drawing.SystemColors, так что мне не нужно устанавливать значение каждого отдельного элемента управления вручную. Неужели кто-нибудь знает решение моей проблемы, которое так просто? ThanksC# Применение широкого управления цветом
ответ
Вам не нужно переопределять системные значения по умолчанию, но вы можете определить свои собственные цвета.
Color NastyColour = Color.FromArgb(1, 2, 3);
1 = Красный 2 = Зеленый 3 = Синий
Посмотрите приложений Настройка привязок. Не уверен, как вы это сделаете для всех элементов управления, но достаточно просто выполнить рекурсию через дерево управления.
К сожалению, изменить цветовую схему Windows невозможно только для вашего приложения.
Winforms позволяет изменять такие вещи, как цвет фона для всех элементов управления на форме, но для многих областей (например, цветов скоса на кнопках или оконных заголовков) вам, вероятно, придется прибегнуть к рисованию контролировать себя.
Я думаю, что ваш лучший подход был бы наследовать каждый элемент управления и устанавливать его свойства отображения по умолчанию. Это даст вам библиотеку стандартных элементов управления WinForms, которые вы можете легко настроить и повторно использовать. Дополнительная информация here (в VB я не нашел примеров на C#).
Я написал код ниже, чтобы сделать что-то вроде этого. Я не очень доволен этим, так как он нуждается в специализированной обработке для любых элементов управления, которые необычны, но он выполнял эту работу. Я сохраняю экземпляр Painter и вызываю Apply каждый раз, когда я создаю форму, передавая форму в качестве аргумента. Она рекурсивно через все контроли ребенка, изменяя их внешний вид
public class Painter
{
Color foreColor;
Color backColor;
Color altBackColor;
Color buttonColor;
Font font;
public Painter(Color foreColor, Color backColor, Color altBackColor, Color buttonColor, Font font)
{
this.foreColor=foreColor;
this.backColor=backColor;
this.altBackColor=altBackColor;
this.buttonColor=buttonColor;
this.font=font;
}
public void Apply(Control c)
{
if(c==null)
return;
c.ForeColor = foreColor;
c.BackColor = (c is Button) ? buttonColor
: backColor;
if (c is DataGridView)
{
var dgv = (DataGridView) c;
dgv.BackgroundColor = BackColor;
dgv.AlternatingRowsDefaultCellStyle.BackColor = altBackColor;
dgv.ColumnHeadersDefaultCellStyle.BackColor = buttonColor;
}
c.Font = font;
foreach(Control child in c.Controls)
Apply(child);
}
}
потратить $ 1000 и получить копию DevExpress. Мы пишем большое приложение, используя их фреймворк, и способность скининга великолепна.
Я знаю, что это не похоже на лучший ответ, но если вы ищете широкую скинируемость приложения, может потребоваться сторонняя библиотека.
- 1. Применение широкого использования последовательного порта
- 2. коллекции и применение широкого использования?
- 3. Применение широкого обмена сообщениями ... без одиночек?
- 4. Применение перехватчиков широкого метода в Java
- 5. Objective-C Удалить коды управления цветом ANSI
- 6. PyQt Matplotlib управления цветом
- 7. Каков правильный способ управления цветом управления XAML с помощью C#?
- 8. Применение широкого цвета фона для LinearLayout с конструкцией материала
- 9. Цветные коды управления цветом Netbeans?
- 10. UIPageViewController страница управления цветом фона
- 11. Применение Bootstrap стиль Asp.net управления
- 12. C#: проблема с цветом фона
- 13. Применение некоторых стилей для управления
- 14. Применение powershell вне ИТ-управления
- 15. Применение CQRS для управления запасами
- 16. Применение фильтров на элементах управления
- 17. Применение Временной диапазон управления Android
- 18. Получение широкого диапазона ошибок типа в C++
- 19. C++: получение значения ascii для широкого символа
- 20. Работа с фильтрами и управления цветом
- 21. VBA Изменение формы управления цветом фона
- 22. Кнопка слияния источника управления выделена серым цветом?
- 23. Как добавить элемент управления цветом в WPF?
- 24. Как изменить цвет управления цветом управления в FireMonkey?
- 25. несбалансированное dataframe от долго широкого
- 26. Перестройка dataframe от долго широкого
- 27. Mysql широкого поиск
- 28. Быстрое применение векторных операций xts через объекты широкого зоопарка в R
- 29. Создание широкого приложения (с плагинами)
- 30. Применение LinkedList C++ vs C#
Я предполагаю, что это Winforms, а не WPF, поскольку вы упомянули System.Drawing.SystemColors –