我有一个 C# 应用程序,其中有多个位置,每个位置都有多个节点。我对每个位置执行 ping 操作,如果有响应,则显示为绿色,绿色的深浅取决于响应时间;响应越短,颜色越绿。
如果未收到对 ping 的响应,则颜色将为红色。
基于每个位置的节点数量以及每个节点可能的不同颜色,我想为该位置提供一种颜色,该颜色源自所有子节点颜色,即其子节点颜色的混合。
我该怎么做?
该控件是一个TreeView。
看到你在这里并没有真正的答案,这是我在 JavaScript 中的做法。
我希望您转换为 C# 不会太难。
// Accepts two hex colors and returns a blended RGB color.
function BlendColors(C1,C2){
var R1=parseInt(C1.substring(1,3),16), G1=parseInt(C1.substring(3,5),16), B1=parseInt(C1.substring(5,7),16);
var R2=parseInt(C2.substring(1,3),16), G2=parseInt(C2.substring(3,5),16), B2=parseInt(C2.substring(5,7),16);
return 'rgb('+Math.round((R1+R2)/2)+','+Math.round((G1+G2)/2)+','+Math.round((B1+B2)/2)+')';}
注意:未考虑 Alpha 通道。