Путь разработчика    

Сохранение цветовой палитры в настройках программы на C#

Пример Сделать постоянную цветовую палитру в C# показывает, как программа может использовать настройки для сохранения и восстановления цветовой палитры. Программа сохраняет цвета палитры как список значений цвета ARGB, хранящихся в строке, и разделяется запятыми.
фактически
Этот метод работает, но кажется немного неудовлетворительным. Было бы неплохо, если бы настройки могли просто удерживать значения цвета вместо строки, представляющей массив значений.

Есть несколько способов, которыми вы можете приблизиться к идеальным решениям. Во-первых, вы можете создать собственный тип, чтобы обернуть массив Color, а затем создать конвертер типов для сохранения и восстановления значений этого типа. С некоторыми усилиями вы можете получить это для работы, но это достаточно сложно, что я предпочел бы просто придерживаться строки, представляющей массив.

Лучшим решением было бы сделать настройку, содержащую массив Color. К сожалению, это непросто, потому что настройки должны быть сериализованы и десериализованы как строки XML, а Цвет не является сериализуемым. (Я понятия не имею, почему Microsoft не сделала сериализуемым Color сериализуемым. Это было бы легко для них и было бы полезно при многих обстоятельствах.)

Одно из решений, которое фактически работает, - создать параметр, содержащий массив целых чисел, представляющих значения ARGB значений цвета. Это немного лучше, чем единственная строка, содержащая все значения, разделенные запятыми, так что это решение, продемонстрированное в этом примере. Вы также можете найти другие примеры, в которых вы хотите сохранить массив целых чисел в настройке.

Чтобы начать работу, откройте «Обозреватель решений» и дважды щелкните элемент «Свойства». На вкладке «Настройки» создайте параметр Argbs и введите его int.

К сожалению, вкладка настроек не позволит вам выбрать массив int, но система настроек может обрабатывать такой массив, если вы создаете его «вручную». Для этого закройте Свойства и разверните его в обозревателе решений. Затем щелкните правой кнопкой мыши запись Settings.settings, выберите Open With и выберите один из текстовых редакторов, таких как XML Editor.

Найдите определение параметра внутри редактора. Он должен выглядеть примерно так:

Python

Просто измените тип параметра на System.Int32 [] и измените его значение по умолчанию на пустое значение. Результат должен выглядеть следующим образом:

Python

Теперь вы можете использовать параметр Args в качестве массива в программе. При запуске программы выполняется следующий код.

Python

Этот код проверяет, установлен ли этот параметр, если он null или массив пуст. В этих случаях он устанавливает значение, равное массиву, возвращаемому методом DefaultColors. (Загрузите пример, чтобы увидеть этот метод.)

Следующий код показывает, как программа рисует цветовую палитру, представленную настройкой.

Python

Код проходит через массив настроек. Для каждого целочисленного значения оно преобразует это значение в Цвет, использует Цвет для создания кисти, а затем рисует образец кисти.

Следующий код выполняется, когда пользователь нажимает на образец цвета.

Python

Этот код показывает, какой образец цвета был нажат, и отображает ColorDialog, чтобы пользователь мог выбрать новый цвет. Если пользователь выбирает цвет и нажимает ОК, код обновляет соответствующую запись в массиве параметров.

Следующий код выполняется, когда форма закрывается.

Python

Метод SaveColors вызывает Properties.Settings.Default.Save, чтобы сохранить текущие значения настроек.

Источник: http://csharphelper.com/blog/2015/11/save-a-color-palette-in-a-programs-settings-in-c/



Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:

Сравнение строк в Java

Класс Java String имеет ряд методов сравнения строк. Ниже приведены некоторые из часто используемых методов: Операторы == для сравнения, а не значения, рав...

10 08 2020 9:47:15

Использование веб-браузера в Python

Модуль webbrowser предоставляет интерфейс высокого уровня, позволяющий пользователям просматривать веб-документы. В большинстве случаев простое вызов функц...

09 08 2020 23:28:11

Где разместить JavaScript в HTML-файле?

Существует гибкость, предоставляемая для включения кода JavaScript в любом месте документа HTML. Код JavaScript может быть встроен в: Заголовок страницы ме...

08 08 2020 19:35:18

Слияние видео в C#

( Обратите внимание, что этот пример был написан в Visual Studio 2010.) Моя первоначальная проблема заключалась в том, что я создал кучу видео и вам нужно б...

07 08 2020 13:37:36

Обучение мобильной разработке на Delphi (В. Леонов)

Основной целью данной книги является наглядная демонстрация приёмов создания программ в одной из самых популярных и доступных сред разработки Delphi/C++Bui...

06 08 2020 15:16:59

Секреты профессиональной работы с «1С:Бухгалтерией 8». БАНК и КАССА (С. Харитонов , Д. Чистов)

В книге " Секреты профессиональной работы с «1 С: Бухгалтерией 8». Б А Н К и К А С С А" рассматривается порядок учета банковских и кассовых операций, расчетов с подо...

05 08 2020 23:31:18

Разница между памятью Stack and Heap в Java

Модель Java Heap и Stack Memory определяет, как и когда разные потоки могут видеть значения, записанные в общие переменные другими потоками, и как синхрони...

04 08 2020 3:19:26

Как сравнить производительность методов сравнения строк в C#

В этом примере используется следующий код для создания четырех строк: Затем он использует несколько методов для сравнения первой строки с другими. Например...

03 08 2020 13:18:14

Выполнить анимацию свойств Windows Forms в C#

Изменение свойств элемента управления со временем называется анимацией свойств. Отслеживание того, где свойства элемента управления, например, его положени...

02 08 2020 4:49:18

Как программировать на Visual C# 2012 (Пол Дейтел, Харви Дейтел)

Эта книга, выходящая уже в пятом издании, является одним из самых популярных в мире учебников по программированию на платформе Microsoft .NET на языке Visu...

01 08 2020 6:20:53

Определить настраиваемые классы исключений в C#

Пример Выброс стандартного исключения в C# объясняет, как бросить исключения, чтобы сообщить программе о неожиданных ошибках. Пример См. Иерархию классов и...

31 07 2020 14:44:11

Как создать каталог и промежуточные каталоги в C#

Метод System.IO.Directory класса CreateDirectory класса создает каталог. Если путь каталога содержит отсутствующие промежуточные каталоги, он также создает...

30 07 2020 2:44:28

Программирование для Android 5 (Денис Колисниченко)

Рассмотрены все основные аспекты создания приложений для платформы Android 5 (API 21): установка необходимого программного обеспечения (JDK, Eclipse и Andr...

29 07 2020 8:47:47


Parse error: syntax error, unexpected ',' in /home/users/9/9161484547/domains/flash-mx.ru/lessons/926.php on line 69