如何在TMS WEB Core中将TWebImageControl的SVG改为白色
解决TMS WEB Core中TWebImageControl加载SVG改色问题
方法1:直接修改SVG文件源码
打开你的SVG文件,找到定义颜色的fill或stroke属性,将其值改为#ffffff或white。比如把:
<path fill="#000000" d="M10 10..." />
替换成:
<path fill="#ffffff" d="M10 10..." />
修改后重新用TWebImageControl加载即可显示白色图标。
方法2:通过CSS滤镜实现改色
无需修改SVG文件,直接给TWebImageControl添加CSS滤镜样式:
- 在Object Inspector中找到控件的
Style属性,添加:filter: invert(1) brightness(2); - 或者在代码中动态设置:
WebImageControl1.ElementHandle.style.setProperty('filter', 'invert(1) brightness(2)');
invert(1)会反转颜色(黑色转白色),brightness(2)用于修正亮度,确保颜色纯净。
方法3:改用TWebSVG组件实现动态改色
如果需要更灵活的颜色控制,可以替换为TWebSVG组件,直接操作SVG内部元素:
var TargetElement: TJSHTMLElement; begin // 根据SVG内实际元素标签(如path、circle等)选择目标元素 TargetElement := TWebSVG1.ElementHandle.querySelector('path'); if Assigned(TargetElement) then TargetElement.style.setProperty('fill', '#ffffff');
这种方法支持动态切换颜色,适合需要根据场景调整图标的需求。
内容的提问来源于stack exchange,提问作者Puffer Fish
相关产品推荐
相关产品推荐

