[]
如果属性表示颜色,希望使用颜色编辑器编辑属性,可以通过标注ColorPropertyAttribute 的方式设置。注意,标注ColorPropertyAttribute的属性类型必须是 string。
public class MyPluginCommand : Command
{
[ColorProperty]
public string MyProperty { get; set; }
}
在设计器中效果如下:
如果需要更细致的控制,可以通过ColorPropertyAttribute的其他属性来控制。
1. 控制是否显示无填充色
设置ColorPropertyAttribute的 SupportNoFill属性。
代码:
public class MyPluginCommand : Command
{
[ColorProperty(SupportNoFill = true)]
public string MyProperty { get; set; }
}
效果:
2. 控制支持选择半透明色
设置ColorPropertyAttribute 的 SupportTranslucency 属性。
代码:
public class MyPluginCommand : Command
{
[ColorProperty(SupportTranslucency = true)]
public string MyProperty { get; set; }
}
效果:
说明:本特性要求活字格版本大于等于9.0.100.0。
在活字格中,所有颜色都使用字符串处理,颜色分为两类:
普通颜色普通颜色采用ARGB表示法,使用井号加8位16进制数字表示 (例如:#FFFFFFFF) ,八位16进制数字分为4组,第一组表示透明度,第二组表示红色值(R值)第二组表示绿色值(G值)最后一组表示蓝色值(B值)。
主题颜色主题颜色表示法为 颜色名称+主题色序号+亮度变化值。示例:Accent 1 40 50 表示色表中的第5列主色,亮度增加 40%,透明度为 50%
在活字格的色表中,共有10列,对应的主题色名称加序号分别是 Background 1,Background 2,Text 1,Text 2,Accent 1,Accent 2,Accent 3,Accent 4, Accent 5,Accent 6。
第三位表示亮度,取值范围在 -100到100之间,正数为亮度增加,负数为亮度减少,数值为增加或减少的百分比,为0时可以省略。
通过分析字符串可以得到用户设置的值,通常情况下,开发者不需要自行分析字符串,因为活字格已经提供了工具方法Forguncy.ConvertToCssColor来转换活字格的颜色表示法到浏览器中的 CSS 颜色表示法。
示例代码:
class MyPluginCommand extends Forguncy.Plugin.CommandBase{
execute() {
const propValue = this.CommandParam.MyProperty;
const cssColor = Forguncy.ConvertToCssColor(propValue);
document.body.style.backgroundColor = cssColor;
}
}
Forguncy.Plugin.CommandFactory.registerCommand("MyPlugin.MyPluginCommand, MyPlugin", MyPluginCommand);