c# - 如何在没有第三方库的情况下在 CF 2.0 中制作透明图像?

标签 c# windows-mobile compact-framework bitmap windows-ce

CF2.0有办法让图片透明吗?我必须在文本框上放置一个小图像,但它必须是透明的,以便用户无论如何都能看到文本。你有好主意吗?

非常感谢

微动

编辑:

感谢您的回答,我会检查这些链接! 为了完成我的帖子,这是我想要做的:

我想显示一个小图像(该图像尚不存在,我必须制作它,所以我对所有格式完全开放)它是文本框右端的 X。通过单击 X,文本框中的文本将被删除......就像在 iPhone 上一样。但是我无法构建自己的控件,因为在我的项目中有太多的文本框已经是带有 Windows 文本框的自定义控件,因此将它们全部切换为自定义控件需要大量的工作和测试。所以我想制作一个位于文本框上方的小面板、图片框等。但它必须是透明的。操作系统是Windows CE 5.0,上面有CF 2.0。

最佳答案

根据您需要的透明度,您可以选择以下任一选项:

1.) 如果你有一个图像的特定部分应该是完全透明的,你可以使用 ImageAttributes.SetColorKey()设置单一透明颜色,然后将其传递给 Graphics.DrawImage。您的图像需要有一种颜色(例如 Color.Cyan),这种颜色将完全透明。

2.) 如果您希望整个图像部分透明,例如对于淡入/淡出效果,您可以 P/Invoke AlphaBlend()功能,如图所示here .

3.) 如果您的图像内置了透明度信息,例如需要在各种背景颜色上渲染的透明PNG图像,以前的这些方法都行不通,您需要使用基于COM的IImage界面。 来自 .NETCF 的 COM 互操作记录在 this page 上(在该页面上搜索“IImage 接口(interface)”)。

选项 3 最灵活,但也涉及最多的实现工作。如果您进一步了解有关要透明绘制的图像类型和目标平台的更多信息,我们可能会提供更多帮助。

关于c# - 如何在没有第三方库的情况下在 CF 2.0 中制作透明图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/873343/

相关文章:

c# - RavenDB 中的自左连接

c# - MySQL 服务器连接在 C# .net 中不起作用

c# - 访问 WinCE ComboBox DroppedDown 属性 (.NET CF 2.0)

.net - .NET CF-Socket.BeginReceive-是否会抛出SocketException?

.net - .NET Compact Framework 是否有流行的单元测试框架?

c# - 如何将其应用于 ASP.net 中的 contentPlaceHolder?

c# - DataGridViewColumn 初始排序方向

unit-testing - 有人成功使用过 NUnitLite 吗?

c# - 如何删除/替换当前使用的字体

c# - 紧凑的框架 - 离线时 HttpWebRequest 资源泄漏