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

Использование полос прокрутки для выбора цветов RGB и HLS в C#


Пример Преобразование между цветами RGB и HLS модели в C# объясняют, как преобразовать цветные модели RGB и HLS. В этом примере используется аналогичный код, позволяющий пользователю манипулировать полосами прокрутки для выбора цветов с использованием любой модели.

Перетащите полосы прокрутки вперед и назад, чтобы настроить выбранный цвет и посмотреть, как результат влияет на значения другой цветовой модели. Например, интересно посмотреть, как изменяются компоненты R, G и B при перетаскивании компонента H взад и вперед.

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

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

Python

Когда пользователь изменяет значение R, G или B, код вызывает SelectRGBColor, чтобы определить цвет, используя эти значения. Когда пользователь изменяет значение H, L или S, код вызывает SelectHLSColor, чтобы определить цвет, используя эти значения.

Программа использует переменную IgnoreEvents, чтобы средства управления не могли создавать рекурсивные вызовы. Например, предположим, что вы изменили значение R, чтобы код вызывал SelectRGBColor. Этот метод устанавливает значения элементов управления H, L и S TextBox. Затем выполняются обработчики событий TextChanged и вызывают метод SelectHLSColor. Этот метод устанавливает значения R, G и B, которые запускают их события, вызывающие SelectRGBColor, и все это начинается снова. Результатом является бесконечная серия событий, которая использует стек вызовов программы, приводящий к сбою программы.

Попробуйте удалить переменную IgnoreEvents и посмотреть, что произойдет, если вы несколько раз измените значение R.

Программа использует переменную IgnoreEvents, чтобы предотвратить этот бесконечный каскад событий. Если он уже обрабатывает событие, код игнорирует события изменений из других элементов управления.

Теперь вернемся к новому примеру. В этом примере выполняется следующий код при изменении значения R, G или B. Код, который обрабатывает значения H, L и S, аналогичен.

Python

Обратите внимание, что этот код не использует переменную IgnoreEvents. Использование этой переменной не повредит, но в этом случае это не обязательно из-за особенностей элементов управления HScrollBar и VScrollBar. Эти элементы управления имеют два события, которые могут возникать при изменении их значений: Прокрутка и ValueChanged. Событие Scroll происходит, когда пользователь меняет значение ScrollBar. Событие ValueChanged происходит всякий раз, когда значение ScrollBar изменяется, было ли оно изменено пользователем или кодом.

Источник: http://csharphelper.com/blog/2016/08/use-scrollbars-to-select-rgb-and-hls-colors-in-c/



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

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

Что такое классы-оболочки в Java

Как сказано в названии, класс-оболочка обертывает (охватывает) вокруг типа данных и дает ему вид объекта. Они используются для преобразования любого примит...

08 12 2019 14:29:43

В чем смысл System.out.println в Java?

System.out.println - это оператор Java, который печатает переданный аргумент, в System.out, который обычно является stdout. System - класс out - это переме...

07 12 2019 0:41:28

Как использовать симбиоз для графического выбора часов в C#

Этот пример изменяет предыдущий пример Графически выбирает часы на C# , поэтому он использует класс симбиот. В этом примере показано, как использовать Pict...

06 12 2019 15:29:45

C++ для чайников (Стефан Рэнди Дэвис)

Научитесь программировать! Полное руководство по C++, с учетом стандартов C++ и C++ 14. Вы всегда хотели научиться программировать, но не знали, какой язык...

05 12 2019 10:42:26

Является ли Python скомпилированным или интерпретированным?

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

04 12 2019 22:52:27

Уникальные слова в файле Microsoft Word в C#

Этот пример является модификацией более раннего сообщения Перечислить уникальные слова в файле Microsoft Word на C# . Эта программа считывает слова в текст...

03 12 2019 2:36:36

Java Autoboxing и Unboxing

Autoboxing и Unboxing - это функции, включенные в Java 1.5, где автоматическое преобразование происходит от примитивного типа до соответствующего класса кл...

02 12 2019 15:40:16

Загрузка статического и динамического класса в Java

Концепция загрузчика классов, один из краеугольных камней виртуальной машины Java (JVM). В нем описывается поведение преобразования именованного класса в б...

01 12 2019 15:54:57

Операторы, типы и переменные в C#

Переменные и типы « Переменные» - это просто места хранения данных.  Вы можете поместить в них данные и получить данные как часть выражения C#. Интерпретация...

30 11 2019 8:55:12

Что такое singleton класс в Java?

В объектно-ориентированном программировании шаблон Singleton ограничивает создание экземпляра класса и гарантирует, что в JVM (виртуальная машина Java) сущ...

29 11 2019 7:14:49

Список языков, которые вы можете компилировать во время выполнения в C#

Пример Запуск введенного пользователем кода в C# показывает как позволить пользователю вводить код C#, компилировать во время выполнения и выполнять резуль...

28 11 2019 3:19:12

Операторы сравнения! = Не равны в Python

Вы можете использовать! = И не для не равной операции в Python. Пример Пример Источник: http://net-informations.com/python/iq/not.htm...

27 11 2019 14:16:18

Современные языки программирования: список 2018

Список современных языков программирования на 2018 год. Чтобы определиться с конкретным языком программирования для изучения (одним или несколькими) нужно для начала ответить себе на вопрос:...

26 11 2019 11:52:43

Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript и CSS (Р. Никсон)

Научитесь создавать современные динамические веб-сайты, даже если у вас нет опыта в программировании. Если вы умеете писать статические сайты на HTML, то с...

25 11 2019 8:45:13

Исключение специальных символов в JavaScript

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

24 11 2019 12:21:50

Использование методов расширения строк для проверки номеров социального обеспечения в C#

В этом примере определяются три метода расширения, возвращающих true, если строки содержат номера социального обеспечения. Вспомните, что вы должны добавля...

23 11 2019 4:24:27

Являются ли полиморфизм, перегрузка и переопределение аналогичных понятий?

Перегрузка - это действие определения нескольких методов с тем же именем, но с разными параметрами. Переопределяющее средство переопределяет тело метода су...

22 11 2019 6:48:24

Как скопировать и вставить объекты в буфер обмена в C#

Очень легко скопировать и вставить объекты в буфер обмена на C#. Единственный реальный трюк - украсить класс, который вы хотите использовать с атрибутом Se...

21 11 2019 9:19:46

Как генерировать случайные целые числа в определенном диапазоне в Java

В Java 1.7 или более поздней версии стандартный способ сделать это выглядит следующим образом: min: минимальное значение max: максимальное значение Пример...

20 11 2019 0:40:35

Класс OutPutStreamWriter в Java

OutPutStreamWriter записывает символы в выходной поток, переводя символы в байты в соответствии с указанной кодировкой символов. Каждый OutputStreamWriter...

19 11 2019 0:11:54

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

Пример Используйте Объект ImageAttributes для регулировки яркости изображения в C# использует объект ColorMatrix для масштабирования красных, зеленых и син...

18 11 2019 15:19:40

Эффективный и современный С++: 42 рекомендации по использованию C++11 и C++14 (Скотт Мейерс)

В этой книге отражен бесценный опыт ее автора как программиста на C++. Новые возможности этого языка программирования, появившиеся в стандартах C++11 и C++...

17 11 2019 22:11:35

Разница между статическими и нестатистическими методами Java

Статический метод принадлежит классу, а нестатический метод принадлежит объекту класса. Статические методы полезны, если у вас есть только один экземпляр,...

16 11 2019 0:56:14

Получите значение автонабора, которое только что было вставлено в C#

Если поле базы данных является полем автонабора, то база данных автоматически генерирует для него значения. Например, предположим, что таблицы Students име...

15 11 2019 11:38:38

Бухгалтерский и налоговый учет в 1С:Бухгалтерии 8 (С.Харитонов)

В пособии " Бухгалтерский и налоговый учет в 1 С: Бухгалтерии 8" рассматривается технология ведения бухгалтерского и налогового учета в программе "1 С: Бухгалте...

14 11 2019 18:57:58

Как создать файл в Java

Класс File имеет три конструктора и ряд полезных методов. Ниже перечислены три конструктора: Для создания файла используйте метод File.createNewFile(). Это...

13 11 2019 18:49:59

Как загрузить и установить Python

Python - очень популярный язык программирования, который можно использовать для создания веб-сайтов, игр, научного программного обеспечения, графики и мног...

12 11 2019 16:54:34

Delphi 6. Учебный курс (В. В. Фаронов)

В книге "Delphi 6. Учебный курс" даются начальные сведения по системе программирования Delphi, разработанной американской корпорацией Borland International...

11 11 2019 22:11:26

Переменные и типы данных JavaScript

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

10 11 2019 14:38:18

Нарисуйте блокированные тетраэдры в клетке «сегментов линии», используя WPF и C#

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

09 11 2019 6:40:11

Основы программирования в Delphi 7 (Н. Б.Культин)

Книга является руководством по программированию в среде Delphi 7. Описывается весь процесс разработки программы: от конструирования диалогового окна до орг...

08 11 2019 0:23:22

Программа Hello World в C#

В этой статье мы узнаем несколько версий программы Hello World на C#. Пример: 1 Обсуждение кода: Каждый Основной метод должен содержаться внутри класса (в...

07 11 2019 22:17:17

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

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

06 11 2019 7:34:52

Циклы в Java Примеры и синтаксис

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

05 11 2019 17:54:10

Сделайте строковые расширения для URL-кодирования и декодирования строк в C#

Следующий код создает методы расширения для строкового класса, который позволяет преобразовывать пробелы в строку «& amp; nbsp;» и этот URL кодировать и де...

04 11 2019 13:40:40


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