Нашли примеры использования прозрачности с фоновым изображением, но этот вариант меня не устраивает. Поскольку предполагается, что фон будет меняться при определенных действиях.Как использовать прозрачное изображение в WinCe 5.0?
ответ
Не уверен, что вы делаете, поскольку детали легкие, но надеюсь, что это будет полезно. Мы используем значки (.ico) с прозрачностью следующим образом. Они просто меняют фон на один цвет. Если вам нужно более сложное поведение, это может оказаться неприемлемым.
Добавить иконки (с прозрачным фоном) в свой проект. Установите
Build Action
какEmbedded Resource
. В приведенном ниже примере мы используем значок под названиемico1.ico
.Определите структуру для хранения ваших значков. В зависимости от количества цветов фона, которые вам нужны, для каждой комбинации значков/цветов вам понадобится экземпляр. Если во время разработки это число очень велико или неизвестно, вам нужно будет создавать значки «на лету».
public struct CacheGraphics { public Bitmap ico1White, ico1Blue; } public static CacheGraphics cacheGraphics;`
Cache иконки:
cacheGraphics.ico1White = new Bitmap(GetIconImage("ico1", Color.White)); cacheGraphics.ico1Blue = new Bitmap(GetIconImage("ico1", Color.Blue));`
Написать вспомогательную функцию, которая изменяет цвет фона:
private static Bitmap GetIconImage(string szIcon, Color clrBackground) { // Convert an embedded icon into an image // Load icon string szImage = ("YOUR-PROJECT.Resources.Icons." + szIcon + ".ico"); Assembly _assembly = Assembly.GetExecutingAssembly(); Stream file = _assembly.GetManifestResourceStream(szImage); Icon icoTmp = new Icon(file); // Create new image Bitmap bmpNewIcon = new Bitmap(icoTmp.Width, icoTmp.Height, PixelFormat.Format32bppRgb); // Create a graphics context and set the background colour Graphics g = Graphics.FromImage(bmpNewIcon); g.Clear(clrBackground); // Draw current icon onto the bitmap g.DrawIcon(icoTmp, 0, 0); // Clean up... g.Dispose(); // Return the new image return bmpNewIcon; }
Define простой псевдоним для каждого значка:
// Alias which goes at the top of any file using icons: using icons = YOUR-PROJECT.CCommon.AppIcons; public enum AppIcons { ICO1_WHITE, ICO1_BLUE }
Написать вспомогательную функцию, чтобы вернуть кэшированные значок по запросу:
public static Image GetCachedIcon(AppIcons eIcon) { // Return a cached icon image. These icons are cached at application startup. Image imgIcon = null; switch (eIcon) { // System Settings > Advanced case AppIcons.ICO1_WHITE: imgIcon = (Image)cacheGraphics.ico1White; break; case AppIcons.ICO1_BLUE: imgIcon = (Image)cacheGraphics.ico1Blue; break; } return imgIcon; }
Используйте значок, когда требуется:
picturebox1.Image = CCommon.GetCachedIcon(icons.ICO1_WHITE); picturebox2.Image = CCommon.GetCachedIcon(icons.ICO1_BLUE);
AlainD Не говорите мне, как исправить ошибку после перезагрузки, потеряв ярлыки с рабочего стола. Поэтому, если вы устанавливаете программу в Program Files, программа также исчезает. Но если программа установлена в системную папку, она сохраняется. Но как обеспечить, чтобы метки все еще не понимали. – Macro
@Macro: устройства Windows CE имеют фиксированный сегмент защиты от записи и пользовательскую область. Вам нужно поместить свои собственные программы и ярлыки в пользовательскую область. Рабочий стол обычно не является областью пользователя, и любые ярлыки, которые вы там помещаете, будут удалены при перезагрузке. Чтобы программа запускалась автоматически, вы можете либо поместить ее в папку 'DEVICE-USER-AREA \ Start', либо в реестр в' HKLM \ init \ LaunchXXX'. Это отдельный вопрос к вашему оригиналу, поэтому вам нужно искать ответы или задавать другой вопрос. Надеюсь, это поможет. – AlainD
AlainD Я создал тему – Macro
- 1. GetDiskFreeSpaceEx в эмуляторе winCE 5.0?
- 2. Приложение Simple WinCE 5.0
- 3. Как зарегистрировать компонент Com в WinCE 5.0?
- 4. Можно ли использовать последовательный порт в эмуляторе WinCE 5.0?
- 5. WinCE 5.0 Как я могу получить справочник
- 6. System.Exception в Microsoft.AGL.Common.MISC.HandleAr() на WinCE 5.0
- 7. Прозрачное изображение в QT
- 8. Прозрачное изображение в JavaScript
- 9. Есть ли способ перезагрузить WinCE 5.0 программно?
- 10. Проверка T-FAT на WinCE 5.0
- 11. C# DataGridView - Прозрачное изображение
- 12. Как сделать прозрачное изображение холста?
- 13. Прозрачное изображение на другое изображение как зависание
- 14. HTML PNG-изображение прозрачное
- 15. Частично прозрачное фоновое изображение
- 16. Прозрачное фоновое изображение наверх
- 17. Изображение фона прозрачное GIMP
- 18. wxWidgets прозрачное фоновое изображение?
- 19. Как добавить частично прозрачное изображение в Tkinter?
- 20. прозрачное изображение на странице
- 21. Добавить прозрачное изображение в JLayeredPane
- 22. Как скомпилировать приложение для wince 5.0 x86 с помощью VS
- 23. Анимированное прозрачное изображение GIF
- 24. Создайте прозрачное изображение в opencv
- 25. Добавление фона в прозрачное изображение
- 26. конвертировать jpeg изображение в прозрачное изображение png
- 27. USB-печать Zebra ZM400 в WINCE 5.0 и VB.NET
- 28. canvas toDataURL() возвращает прозрачное изображение
- 29. Как потрогать прозрачное изображение PNG в iPhone?
- 30. Как создать прозрачное растровое изображение в Direct2D
Какой язык программирования вы используете? Например, C# .NET 2.0/3.5 CompactFramework или встроенный C++. – AlainD
C# 3.5 CompactFramework – Macro
Возможно, добавьте это к вопросу (наряду с моим предположением о Visual Studio 2008), и мы можем удалить эти комментарии. – AlainD