Поделиться через


Программирование графики в .NET Compact Framework

Обновлен: Ноябрь 2007

При помощи платформы .NET Compact Framework можно создавать надежные и визуально привлекательные приложения. Можно также использовать вызовы неуправляемого кода для получения специальных эффектов из машинного кода. В .NET Compact Framework, версия 2.0.и более поздних версиях можно программировать приложения с использованием Direct3D. Дополнительные сведения о DirectX и Direct3D в .NET Compact Framework см. в разделе Windows Mobile DirectX и Direct3D.

При программировании графических объектов в .NET Compact Framework следует учитывать следующие моменты:

  • Платформа .NET Compact Framework не поддерживает GDI+. Не поддерживаются некоторые методы класса Graphics, которые выполняют операции сложного рисования, заливки и преобразования. Отсутствует поддержка путей, дуг, двухмерной и трехмерной графики.

    Тем не менее, платформа .NET Compact Framework поддерживает основные примитивы рисования и соответствующие им методы заполнения: эллипсы, линии, изображения, прямоугольники, строки и области.

  • Можно разрабатывать код для приложений с высоким разрешением. Дополнительные сведения о высоком разрешении см. в разделе Практическое руководство. Поддержка изменений ориентации и разрешения экрана.

  • Поддерживается только прозрачность, основанная на цветовых ключах. Альфа-смешение и поточечное смешение данных исходного и фонового цветов не поддерживается. Соответственно, параметры colorLow и colorHigh метода SetColorKey должны иметь один и тот же цвет.

  • В платформе .NET Compact Framework и полной платформе .NET Framework сравнение известных цветов производится по-разному. В платформе .NET Compact Framework при сравнении известного цвета, например Aquamarine, с цветом, имеющим те же значения RGB, что и Aquamarine, результатом будет равенство. Полная платформа .NET Framework рассматривает эти цвета как разные, поскольку известные цвета содержат не только значения RGB, но и другую идентификационную информацию.

  • Платформа .NET Compact Framework не поддерживает конструктор класса Font, который использует существующий объект Font.

  • Метод CreateGraphics можно использовать только применительно к объекту Form или Control.

  • Если изображение не удается загрузить, убедитесь, что в каталоге Windows на устройстве находится библиотека imgdecmp.dll.

  • Методы Clone и FromHandle объекта Icon могут использоваться на устройствах, работающих под управлением Windows Mobile версии 5.0. Платформа .NET Compact Framework поддерживает значки с высоким разрешением, но значки High Color не поддерживаются.

  • Платформа .NET Compact Framework не поддерживает градиентные кисти. Тем не менее, можно осуществлять взаимодействие со встроенными функциями, чтобы обеспечить градиентное отображение. Пример см. в разделе Пошаговое руководство. Отображение градиентной заливки.

Повышение скорости рисования

Для повышения скорости отрисовки при использовании объектов Graphics рекомендуются следующие способы кодирования:

  • Используйте только один объект Graphics или же используйте объект из PaintEventArgs в методе OnPaint.

  • Выполняйте отрисовку во внеэкранном растровом изображении, после чего выводите на экран сразу все изображение. Пример кода см. в разделе Практическое руководство. Рисование изображений вне экрана.

  • Перерисовывайте только изменившиеся части изображения.

  • Используйте при рисовании одни и те же размеры для исходного и целевого изображений, по возможности избегая масштабирования.

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

См. также

Другие ресурсы

Мобильное программирование Direct3D в .NET Compact Framework

Взаимодействие в платформе .NET Compact Framework

Графика и рисование в .NET Compact Framework