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

Сделать владельцем рисованные меню в C#


Проще всего использовать меню со стандартным внешним видом, но вы можете сделать владельцы рисованных меню, если хотите. Это не сложно, но вам нужно выполнить несколько шагов.

Сначала во время разработки установите для элемента OwnerDraw элемент управления MenuItem значение true. Затем во время выполнения вы должны ответить на два события для меню: MeasureItem и DrawItem.

Обработчик событий MeasureItem получает в качестве параметра объект типа MeasureItemEventArgs. Код должен устанавливать свойства объекта ItemHeight и ItemWidth этого объекта, чтобы сообщить программе, сколько места требуется для пункта меню.

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

Python

Этот код начинается с некоторых констант, которые определяют шрифт, который программа будет использовать для рисования элемента меню. Обработчик события MeasureItem создает шрифт и использует e.Graphics.MeasureString, чтобы узнать, сколько пространства требуется в этом шрифте для текста. Затем он устанавливает e.ItemHeight и e.ItemWidth соответственно.

Обработчик события DrawItem получает в качестве параметра объект типа DrawItemEventArgs, который имеет свойства и методы, которые позволяют нарисовать элемент меню. Следующий код показывает обработчик события DrawItem в программе примера

.

Python

Обработчик события создает шрифт, а затем проверяет e.State, чтобы увидеть, находится ли мышь над пунктом меню. Если это так, программа рисует фон градиента и текст меню в AliceBlue. Если мышь не находится над пунктом меню, программа рисует простой светло-серый фон с черным текстом.

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

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

Источник: http://csharphelper.com/blog/2015/01/make-owner-drawn-menus-in-c/



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

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

Используйте tristate CheckBox в C#

Обычно CheckBox проверяется или не проверяется. Вы можете поймать обработчик события CheckedChanged, чтобы узнать, когда значение элемента управления было...

13 11 2019 23:39:34

Преобразование между случаем Паскаля, верблюжьим футляром и правильным случаем метод 2 в C#

Как и предыдущий пост, Преобразование между случаем Pascal, верблюжьим футляром и правильным случаем в C# , в этом примере показано, как использовать метод...

12 11 2019 20:59:18

Тип заливки в Java

Изменение значения из одного типа данных в переменную другого типа называется преобразованием типа данных. Существует два типа литья, Примитивное литье тип...

11 11 2019 12:51:31

Сделайте простую гистограмму в C#

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

10 11 2019 15:45:25

Открытие нового окна в JavaScript

Вы можете использовать JavaScript для запуска нового окна. Метод window.open(), который позволяет открыть новое окно браузера без перехода от текущей стран...

09 11 2019 6:43:55

Легко передавать текст в программе WPF с использованием C#

Пример Рендеринг текста в программе WPF с использованием C# объясняет, как рисовать текст в коде WPF. В этом примере используется следующий метод расширени...

08 11 2019 2:43:56

Всплывающие окна в JavaScript

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

07 11 2019 14:51:29

Преобразовать строку в число в Java? String to Int

Преобразование String в int или Integer - очень распространенная операция в Java. Существует несколько простых способов сделать это преобразование. Часто и...

06 11 2019 13:56:47

Метод Split() в Java

Есть ситуация, когда строки содержат несколько фрагментов информации, тогда нам нужно разбить строку, чтобы извлечь отдельные фрагменты. Строки в Java можн...

05 11 2019 17:19:54

Показать соответствия регулярных выражений в C#

Когда вы нажимаете кнопку Go, программа использует следующий код для отображения совпадений регулярных выражений в строке. Код создает объект Regex, переда...

04 11 2019 17:50:42

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

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

03 11 2019 5:48:58

Нарисуйте гистограмму с подсказками в C#

Пример Нарисуйте простую гистограмму в C# , объясните, как нарисовать простую гистограмму. Когда вы нажимаете на панель, эта программа отображает окно сооб...

02 11 2019 5:16:14

Генерация случайных полигонов в C#

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

01 11 2019 22:53:32

Заполните эллипс случайными строками в C#

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

31 10 2019 18:49:21

Что такое package в Java?

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

30 10 2019 3:21:43

Java - нейтральная платформа

Как это работает? Во-первых, вы пишете исходный файл Java и скомпилируете его. Когда вы компилируете исходный код Java, результатом является файл .class, с...

29 10 2019 21:41:59

Список каталогов и файлов Dropbox в C#

Dropbox - это служба обмена файлами. Бесплатная базовая версия позволяет легко разделить до 2 Г Б файлов через Интернет. Версия Pro $ 9,99 в месяц дает вам...

28 10 2019 2:23:41

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

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

27 10 2019 2:24:49

Выбор языка программирования: 6 пунктов при выборе своего языка

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

26 10 2019 19:21:30

PHP 5 для чайников (Джанет Валейд)

Данная книга является введением в область Web-программирования на языке Р Н Р 5. С ее помощью можно быстро написать сценарий для Web, обеспечить взаимодейств...

25 10 2019 22:28:15

Нарисуйте цветное колесо в C#

В программе используется PathGradientBrush, чтобы заполнить цветовое колесо цветовыми образцами. Рисование колеса в основном автоматическое, но прикладывае...

24 10 2019 7:19:24

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

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

23 10 2019 7:52:58

Как инициализировать списки из баз данных без привязки к C#

Обратите внимание, что это очень ручной способ инициализации списков. Часто вы можете легко отображать данные, используя привязку данных. В этом примере я...

22 10 2019 18:17:57

Отображение перспективного изображения в C#

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

21 10 2019 18:15:31

Что такое Java

Java - это язык программирования, который разработчики используют для создания приложений на ваших компьютерных устройствах. Sun Microsystems выпустила пер...

20 10 2019 3:35:51

Длина строки в C#

Свойство Length в String Class возвращает общее количество символов в String. Синтаксис: int string.length Возвращает: Целое число: количество символов в у...

19 10 2019 9:53:36

Разница между system.gc() и runtime.gc() в Java

Типичный алгоритм сбора мусора (GC) в Java идентифицирует мусор, перемещая все ненужные объекты в куче и предполагая, что любой объект, который не был посе...

18 10 2019 8:24:26

Среда разработки Android Studio

Android Studio – интегрированная среда разработки для платформы Android, разработанная компанией Google в 2013 году. Вплоть до 2014 года существовала как п...

17 10 2019 22:54:48

Нарисуйте заполненную картиной гистограмму в C#

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

16 10 2019 10:43:25

Преимущества и недостатки JavaScript

Как и все языки компьютера, JavaScript имеет определенные преимущества и недостатки. Преимущества JavaScript: Быстрый для конечного пользователя: сценарий...

15 10 2019 18:14:24

Сравните скорости LINQ для разных подходов в C#

В этом примере сравниваются скорости LINQ при использовании LINQ различными способами. Чтобы найти минимальные и максимальные значения X в List & lt; Point...

14 10 2019 18:52:20

Добавить варианты ComboBox во время выполнения в C#

В этом примере вы можете добавить ComboBox варианты, когда пользователь выбирает их во время выполнения. Чтобы отслеживать выбор для будущего использования...

13 10 2019 7:28:35

Эндрю Стиллмен - Изучаем C#, 3-е издание - 2014

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

12 10 2019 12:10:28

Дата и время в Python

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

11 10 2019 0:33:50

Нарисуйте анимированный эпитрохоид в C#

В этом примере показан один из способов рисования анимированного эпитрохоида. ( См. Пример Нарисуйте эпитрохоид в C# для объяснения того, как нарисуйте эпит...

10 10 2019 19:23:49

Класс FileReader в Java

FileReader - это характерно-ориентированный класс, который используется для обработки файлов в Java. Он предназначен для чтения потоков символов. Один симв...

09 10 2019 9:50:25

Графические популяции комаров в C#

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

08 10 2019 3:10:22

TreeMap в Java

Класс TreeMap реализует интерфейс карты, аналогичный классу HashMap. Он сохраняет свои записи в порядке возрастания, отсортированные в соответствии с естес...

07 10 2019 14:56:55

Вопросы по Python - 1

Почему язык назывался Python? Python фактически получил свое название от серии комедии BBC с семидесятых годов « Летающий цирк Монти Пайтона». Дизайнеру пон...

06 10 2019 18:44:51

Исключения в Java

Исключение - это событие, которое происходит во время выполнения программы, что нарушает нормальный поток инструкций программы. Он обеспечивает способ пере...

05 10 2019 8:19:55


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