另类思路解决textbox不支持(半)透明背景颜色的问题

rayyu1989 2012-07-25 11:44:00
由于net平台的普及问题 为了尽可能的增加用户使用量 很多应用基于2.0写的 所以不考虑wpf

众所周知 winform 的textbox的颜色不能使用 带有 Alpha 属性的颜色 即半透明效果 度娘 谷哥 很久后也无法解决了该问题

忽然想到了下面的方法:

半透明的颜色 最终画在画布上叠加后 也是1个rgb颜色 取出来 就是我们要的颜色

仅适用于纯色 如果父标签有背景图片 这个暂时没法实现
有人要问了 既然只适用于纯色 那半透明的效果还有什么意义呢?

答:有的 在制作皮肤的过程中 比如在父标签背景变更的情况下 要让textbox 背景更改为 父标签的 Alpha = 30 ,这种方法就很适用

看效果:




上代码,调用这个静态函数返回的颜色赋值给textbox就可以:

VB.NET:
''' <summary>
''' 将有半透明效果的颜色转成没有半透明的颜色
''' </summary>
''' <param name="backcolor">背景色,一般为白色 Color.White</param>
''' <param name="alphacolor">带alpha的颜色</param>
''' <returns></returns>
''' <remarks></remarks>
Protected Friend Shared Function Alpha2Color(backcolor As Color, alphacolor As Color) As Color
Using bmp As New Bitmap(1, 1)
Using g As Graphics = Graphics.FromImage(bmp)
g.Clear(backcolor)
Using br As New SolidBrush(alphacolor)
g.FillRectangle(br, New Rectangle(0, 0, 1, 1))
End Using
End Using
Return bmp.GetPixel(0, 0)
End Using
End Function


C#:
/// <summary>
/// 将有半透明效果的颜色转成没有半透明的颜色
/// </summary>
/// <param name="backcolor">背景色,一般为白色 Color.White</param>
/// <param name="alphacolor">带alpha的颜色</param>
/// <returns></returns>
/// <remarks></remarks>
protected static internal Color Alpha2Color(Color backcolor, Color alphacolor)
{
using (Bitmap bmp = new Bitmap(1, 1)) {
using (Graphics g = Graphics.FromImage(bmp)) {
g.Clear(backcolor);
using (SolidBrush br = new SolidBrush(alphacolor)) {
g.FillRectangle(br, new Rectangle(0, 0, 1, 1));
}
}
return bmp.GetPixel(0, 0);
}
}


桌控快搜:http://www.370b.com 欢迎体验~
...全文
352 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
rayyu1989 2012-07-25
  • 打赏
  • 举报
回复




木头小菜 2012-07-25
  • 打赏
  • 举报
回复
帮顶。。。。。
rayyu1989 2012-07-25
  • 打赏
  • 举报
回复
难道这不是一种好的解决方案?

或者说大家已经都知道了?

肿么都木有人回复 -_,- 为什么我的输入框没表情
内容概要:本文档详细介绍了PCIe 5.0/6.0内部与外部铜缆(CopprLink)的规范,旨在支持32 GT/s和64 GT/s高速数据传输,解决高带宽应用中因PCB损耗导致的通道距离受限和平台灵活性不足问题。文档涵盖了电缆的电气性能指标,包括插入损耗、回波损耗、串扰(PSNEXT/PSFEXT)、有效内对偏移(EIPS)和线对间偏移等关键参数,并定义了适用于SFF-TA-1016(内部)和SFF-TA-1032(外部)连接器形态的物理层规格。同时,文档还规定了侧带信号的功能与引脚分配,如管理总线(2WCL/2WDA、SCL/SDA)、复位(PERST#)、存在检测(PRPE)以及灵活使用的FLEXIO引脚等,以增强系统可管理性和互操作性。此外,提出了针对反射和串扰影响的评估方法及测试夹具设计指南,确保在高频下实现可靠的信号完整性。 适合人群:从事高速互连设计、服务器平台开发或数据中心硬件架构的工程师,特别是涉及PCIe系统集成、信号完整性分析和电缆组件选型的研发人员。 使用场景及目标:①为数据中心、服务器、存储、网络设备和加速器提供长距离、高带宽的PCIe互连解决方案;②指导内部背板到主板、外部机架内或机架间设备互联的电缆设计与合规性测试;③优化系统拓扑以提升模块化和可维护性,同时满足严格的电气性能要求。 阅读建议:本规范技术性强,建议结合实际应用场景深入理解各项电气参数限值及其测量方法,重点关注不同速率下的PAM4与NRZ信号兼容性、侧带功能配置及测试验证流程,以便在产品设计中正确实施并确保互操作性。

7,776

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧