Перечисление записей в метафайле в C#

Когда вы вводите имя метафайла и нажимаете кнопку Enumerate, следующий код перечисляет записи метафайла в ListBox слева от программы.
Программа очищает ListBox, делает Bitmap подходящей для области рисования и очищает ее. Затем открывается метафайл.
Обычно вы используете класс Graphics для рисования метафайла. Этот класс предоставляет метод EnumerateMetafile, поэтому программа создает объект Graphics и вызывает EnumerateMetafile, передавая ему метафайл, точку, в которой метафайл должен использовать как источник (который на самом деле не используется, пока мы просто перечисляем записи), и метод обратного вызова. Метод EnumerateMetafile вызывает метод обратного вызова ListRecords для каждой записи метафайла.
Следующий код показывает метод ListRecords.
PythonЭтот код просто добавляет имя каждой записи метафайла в ListBox программы. Он возвращает true, чтобы продолжить перечисление. (Если метод возвратил false, перечисление остановится, прежде чем перечислять все записи.)
После того, как вы перечислите записи, вы можете выбрать некоторые из них в ListBox. Затем, когда вы нажимаете кнопку «Рисовать», программа снова перечисляет записи метафайла, на этот раз используя следующий метод DrawRecords в качестве метода обратного вызова.
PythonПеременная NextRecordNumber отслеживает индекс следующей записи метафайла. Метод DrawRecords начинается с проверки того, выбран ли этот номер записи в ListBox. Если запись выбрана, метод отображает сообщение в окне консоли и пропускает его.
Если запись метафайла не выбрана, код использует метод PlayMetafile метафайла для рисования текущей записи метафайла. (Переменные NextRecordNumber и TheMetafile инициализируются в коде, который вызывает EnumerateMetafile.)
Это позволяет вам изучить метафайл, чтобы узнать, какие записи он содержит.
Источник: http://csharphelper.com/blog/2016/12/enumerate-the-records-in-a-metafile-in-c/
Отзывы (через Facebook):
Оставить отзыв с помощью аккаунта FaceBook:
До версии .NET Framework 4.0 вы не смогли бы передать ToString структуру TimeSpan структуры формата, поэтому результат всегда был в форме hh: mm: ss .fffff...
25 02 2021 1:43:28
Класс File имеет три конструктора и ряд полезных методов. Ниже перечислены три конструктора: Для создания файла используйте метод File.createNewFile(). Это...
24 02 2021 14:24:17
Пример Получить системные показатели на C# показывает, как получить систему метрики, но краткие имена метрик затрудняют понимание результатов. В этом приме...
23 02 2021 16:33:39
В этом примере показано, как получить серийные номера системной платы и идентификаторы Ц П. WMI ( Инструмент управления Windows) позволяет использовать SQL-п...
22 02 2021 17:12:47
Свойство Window.navigator только для чтения возвращает ссылку на объект Navigator, который может быть запрошен для получения информации о приложении, выпол...
21 02 2021 7:19:47
В этом примере отображаются доступные системные значки. Следующий способ DrawIconSample отображает значок и его название. Код вызывает метод Graphics объек...
20 02 2021 1:44:43
Принятие решений является важной частью программирования. Он используется для указания порядка выполнения операторов. На этом уроке вы узнаете, как создава...
19 02 2021 11:36:30
В этом примере показано, как загрузить изображение во время выполнения в программе WPF. Как это часто бывает с WPF, это легко, когда вы знаете, что делать....
18 02 2021 21:48:39
Что такое интерфейс? Интерфейс похож на чистый абстрактный класс, который содержит только абстрактные методы Детский класс должен обеспечить реализацию для...
17 02 2021 15:17:44
В этом примере показано, как вы можете манипулировать пикселями в растровом файле WPF. Одна из вещей, которые мне меньше всего нравятся в WPF, - это то, ка...
16 02 2021 6:34:45
В этом примере показано, как вы можете принудительно собрать сборку мусора на C#. Языки .NET используют схему сбора мусора управления памятью. Есть несколь...
15 02 2021 7:48:39
В этом примере показано, как вы можете создать общие методы Min и Max, чтобы найти минимальное и максимальное значения в последовательности параметров. Мет...
14 02 2021 10:27:10
Как быстро научиться программировать? Чтобы облегчить обучение программированию и хорошо усвоить основы, необходимо правильно выбрать темп работы и использовать некоторые способы....
13 02 2021 18:39:24
В этом примере показано, как можно привязать элемент DataGrid к DataSet, загруженному из файла MDB во время выполнения. Когда форма загружается, следующий...
12 02 2021 0:20:52
Класс InputStreamReader считывает символы из байтового входного потока. Он считывает байты и декодирует их на символы с использованием указанной кодировки....
11 02 2021 12:45:52
Когда программа загружается, следующий код генерирует некоторые случайные данные. Этот код создает новый объект Random и использует его для заполнения масс...
10 02 2021 2:45:10
FileReader - это характерно-ориентированный класс, который используется для обработки файлов в Java. Он предназначен для чтения потоков символов. Один симв...
09 02 2021 10:43:52
Пример Сравните скорости условного оператора (тройной оператор? :) и оператор if-else в C# сравнивает производительность двух видов условных тестов. Джонни...
08 02 2021 18:38:35
Конкатенация строк - это процесс объединения двух или более маленьких строк для создания большей строки. В Java вы можете комбинировать строку несколькими...
07 02 2021 16:19:30
Какие существуют виды языков программирования? Какое у них назначение? Существует большое количество языков программирования, которые активно применяются для решения как некоторого узкого круга задач, так и во многих довольно широких сферах деятельности....
06 02 2021 14:36:38
Класс StringFormat имеет свойства Alignment и LineAlignment, которые позволяют рисовать выравниваемый текст. Они позволяют указать, как вы хотите выравнива...
05 02 2021 13:27:18
В этой статье мы напишем программу на C# для выполнения преобразования из двоичного числа в десятичное. Вывод: ...
04 02 2021 17:43:40
Сериализация в Java - это механизм записи состояния объекта в поток байтов, а десериализация - это процесс преобразования потока байтов обратно в копию исх...
03 02 2021 23:28:27
Это более графическая версия примера Рассчитайте значение ежемесячной инвестиции в C# . Вместо добавления значений в элемент управления ListView этот приме...
02 02 2021 15:57:31
Свойство ActiveControl дает ссылку на текущий активный элемент контейнера. Для формы ActiveControl не учитывает меню, поэтому элемент меню может использова...
01 02 2021 1:45:54
PyCharm – интегрированная среда разработки для Python. Разрабатывалась компанией JetBrains. За основу взята другая интегрированная среда разработки Intelli...
31 01 2021 21:30:16
В этом примере показано, как вы можете получить имя метода для текущего исполняемого метода. Обычно вам не нужно получать это имя (вы можете просто посмотр...
30 01 2021 3:38:58
Кортеж представляет собой совокупность неизменных Python объектов, разделенных запятыми. Кортежи похожи на списки, но мы не можем изменить элементы кортежа...
29 01 2021 4:22:58
Java нельзя понять, взглянув на него только как на коллекцию некоторых характеристик, - необходимо понять задачи этого языка как частные задачи программиро...
28 01 2021 6:26:54
При написании такого многопоточного кода вы должны уделять особое внимание при одновременном доступе к совместно используемым изменяемым переменным из неск...
27 01 2021 7:24:33
Числовое продвижение, также известное как « Неявное преобразование» или «автоматическое преобразование Java», где автоматическое преобразование значения мен...
26 01 2021 21:39:32
Концепция загрузчика классов, один из краеугольных камней виртуальной машины Java (JVM). В нем описывается поведение преобразования именованного класса в б...
25 01 2021 17:39:33
Многопользовательские игры. Разработка сетевых приложений: Сетевые многопользовательские игры — это многомиллиардный бизнес, привлекающий десятки миллионов...
24 01 2021 19:28:33
Eclipse — бесплатная IDE модульных кроссплатформенных приложений. В первую очередь служит для разработки расширений, в чем и заключается главное её преимущ...
23 01 2021 20:21:37
Создание масштабируемой карты с горячими точками на удивление легко, хотя получить правильные детали немного сложно. Программа отображает карту в нескольки...
22 01 2021 18:27:22
Java instanceof - это ключевое слово. Это двоичный оператор, используемый для проверки, является ли объект (экземпляр) подтипом данного типа. Он возвращает...
21 01 2021 4:19:15
Как следует из названий, HashMap является ассоциативной Map, а HashSet - это просто Set. Но они совершенно разные конструкции. HashMap - это реализация инт...
20 01 2021 11:44:28
Подстрока является частью строки. Метод String substring() Java String возвращает новый строковый объект из данной строки. Синтаксис String str = "Java Str...
19 01 2021 15:25:28
Пример Выполнение бинарного усиления контрастности на образ в C# выполняет бинарное усиление контрастности, устанавливая каждый пиксель на черный или белый...
18 01 2021 20:37:42
Вы можете использовать функцию API GetShortPathName для преобразования от длинного к коротким именам файлов. Следующий код объявляет функцию API. Следующий...
17 01 2021 4:43:25
Когда я пишу книги, обычно существует максимальный размер, который может быть снят с экрана. Я написал эту программу, чтобы упростить установку примерной п...
16 01 2021 3:25:43
FileReader - это характерно-ориентированный класс, который используется для обработки файлов в Java. Он предназначен для чтения потоков символов. Один симв...
15 01 2021 19:47:40
В сообщении Отображение индексов и надстроек в текстовом блоке WPF в C# < / a> Я упомянул, что вы можете создавать индексы и надстрочные индексы в коде WPF...
14 01 2021 5:10:22
Привет! Любишь компьютерные игрушки? А хочешь попробовать написать что-нибудь сам? Представь, как зауважают тебя друзья, когда ты покажешь им игру своей со...
13 01 2021 23:53:27
В этом примере показано, как заставить C# создать документ Word. Сначала откройте диалоговое окно « Добавить ссылки». На вкладке COM выберите « Библиотека об...
12 01 2021 0:24:31
Ошибки « Не удается найти символ» обычно возникают, когда вы пытаетесь ссылаться на необъявленную переменную в коде. Ошибка « Не удается найти символ» означа...
11 01 2021 7:49:39
Python имеет отладчик, который доступен как модуль под названием pdb. Он поддерживает установку условных точек останова, одновременное переключение по исхо...
10 01 2021 13:58:33
Parse error: syntax error, unexpected ',' in /home/users/9/9165884745/domains/flash-mx.ru/lessons/926.php on line 69