[]
        
(Showing Draft Content)

字符串属性

默认情况下,如果一个属性的类型是 string 那么这个属性会被自动识别为字符串属性,不需要做任何额外的事情。

    public class MyPluginServerCommand : Command, ICommandExecutableInServerSideAsync
    {
        public string MyProperty { get; set; }

        public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext)
        {
            return new ExecuteResult();
        }

        public override CommandScope GetCommandScope()
        {
            return CommandScope.ExecutableInServer;
        }
    }

在设计器中效果如下:


如果需要更细致的控制,需要使用 TextPropertyAttribute 标注来控制。

注意:标注TextPropertyAttribute的属性类型必须是 string。

1.添加水印。

  1. 设置TextPropertyAttribute 的 Watermark 属性。

  2. 代码如下:

        public class MyPluginServerCommand : Command, ICommandExecutableInServerSideAsync
        {
            [TextProperty(Watermark = "请输入名称...")]
            public string MyProperty { get; set; }
    
            public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext)
            {
                return new ExecuteResult();
            }
    
            public override CommandScope GetCommandScope()
            {
                return CommandScope.ExecutableInServer;
            }
        }
  3. 效果如下:

    image

  4. 本特性要求活字格版本大于等于10.0.0.0。

2.支持输入多行文本。

  1. 设置TextPropertyAttribute 的 AcceptsReturn属性。

  2. 代码如下:

        public class MyPluginServerCommand : Command, ICommandExecutableInServerSideAsync
        {
            [TextProperty(AcceptsReturn = true)]
            public string MyProperty { get; set; }
    
            public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext)
            {
                return new ExecuteResult();
            }
    
            public override CommandScope GetCommandScope()
            {
                return CommandScope.ExecutableInServer;
            }
        }
  3. 效果如下:

    image

  4. 本特性要求活字格版本大于等于10.0.0.0。

3.支持多语言功能。

  1. 设置TextPropertyAttribute 的 CanSelectResource 属性。

  2. 代码如下:

        public class MyPluginServerCommand : Command, ICommandExecutableInServerSideAsync
        {
            [TextProperty(CanSelectResource = true)]
            public string MyProperty { get; set; }
    
            public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext)
            {
                // 通过代码 this.GetApplicationResource(MyProperty) 可以获取当前语言对应的值
                var strValue = GetApplicationResource(MyProperty);
                return new ExecuteResult()
                {
                    Message = strValue,
                };
            }
    
            public override CommandScope GetCommandScope()
            {
                return CommandScope.ExecutableInServer;
            }
        }

    type=warning

    this.GetApplicationResource(Key) 可以在多语言情况下把key替换为当前语言的字符串,在非多语言环境下,会返回原始的key字符串。

  3. 效果如下:

    image

  4. 本特性要求活字格版本大于等于10.0.0.0,并开启了多语言功能。