如何在WinCe 5.0中使用透明图像?

巨集

找到了将透明度与背景图像配合使用的示例,但此选项不适合我。由于假设背景会因某些操作而改变。

阿兰德

不确定细节,所以您不确定自己在做什么,但是希望这会有所帮助。我们使用具有透明度的图标(.ico)文件,如下所示。这些只是将背景更改为单一颜色。如果您需要更复杂的行为,那么这可能不合适。

  • 将一些图标(具有透明背景)添加到您的项目。将设置Build ActionEmbedded Resource在下面的示例中,我们使用名为的图标ico1.ico

  • 定义一个结构来保存您的图标。根据所需背景颜色的数量,将为您所需的每种图标/颜色组合提供一个实例。如果数量在设计时很大或未知,那么您需要即时创建图标。

    public struct CacheGraphics
    {
        public Bitmap ico1White, ico1Blue;
    }
    public static CacheGraphics cacheGraphics;`
    
  • 缓存图标:

    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;
    }
    
  • 为每个图标定义一个简单的别名:

    // 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);
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Xcode 5中使用最新的GCC?

来自分类Dev

如何在WinCE中捕获未处理的异常?

来自分类Dev

如何在Pygame中动态制作半透明图像

来自分类Dev

如何在Qt 5中使用QMessageBox?

来自分类Dev

使用HTML 5 Canvas时如何在png图像上划定透明区域?

来自分类Dev

如何在Silverlight 5中使用REST Web服务?

来自分类Dev

如何在html5 canvas中使用gif图像?

来自分类Dev

如何在MVC 5中的用户身份中使用角色

来自分类Dev

如何在Laravel 5中使用分页?

来自分类Dev

如何在Laravel 5中使用Bootstrap?

来自分类Dev

如何在laravel 5中使用哨兵?

来自分类Dev

如何在ASP.NET 5中使用SignalR

来自分类Dev

如何在jsdom @ 5中使用jQuery?

来自分类Dev

如何在Laravel 5中使用php DateTime()函数

来自分类Dev

如何在Bootstrap 5中使用推拉?

来自分类Dev

如何在Laravel 5中使用我自己的Jquery

来自分类Dev

如何在jQuery中制作透明图像?

来自分类Dev

如何在TypeScript的ReactiveX / rxjs 5中使用exhaustMap

来自分类Dev

如何在ImageList中使用半透明图像

来自分类Dev

如何在WinCE Compact Framework 3.5中为用户控件标记默认事件

来自分类Dev

如何在Seaborn中使用带有暗网格背景的透明图形?

来自分类Dev

如何在Java中使透明图像不透明?

来自分类Dev

如何在WinCE中捕获未处理的异常?

来自分类Dev

如何在Pygame中动态制作半透明图像

来自分类Dev

如何在半透明图像周围绘制边框?(css)

来自分类Dev

如何在ImageMagick中为橡皮戳创建透明图像

来自分类Dev

如何在ImageList中使用半透明图像

来自分类Dev

如何在角度 5 中使用枚举

来自分类Dev

如何使用BufferedImage在java中绘制透明图像?

Related 相关文章

热门标签

归档