演练:实现新样式

更新:2007 年 11 月

对于大多数 ASP.NET 移动控件而言,Style 基类提供的属性样式已足够。但是,个别控件可能需要一些专用样式类,以提供特定于控件的附加属性。

所有专用样式类都必须从 Style 基类继承。该基类自动支持状态管理和继承。为使用这些功能,专用样式类必须在由该基类提供的属性中定义并存储所有新属性。

添加专用样式类的属性支持

  1. 编写一个从 Style 基类继承的专用样式类。

  2. 重写控件的 CreateStyle 方法,并返回专用样式类的一个实例。

    protected override Style CreateStyle()
    {
        return new NewStyle();
    }
    
  3. 还可以在控件上创建一个新属性,将 Style 属性设置为强类型。这个新属性可在下面的步骤(第 4 步)中使用。

    protected NewStyle NewStyle
    {
        get
        {
            return (NewStyle)Style;
        }
    }
    
  4. 对于专用类中的每个新属性,在控件类本身中提供一个属性。这些属性将成为样式属性的公共访问器。这些属性的实现可调用样式对象。

    protected String ThemeName
    {
        get
        {
            return NewStyle.ThemeName;
        }
        set
        {
            NewStyle.ThemeName = value;
        }
    }
    

添加新样式

  1. 将一个公共 static string 声明为成员字段,该字段被初始化为在调用基类定义的 RegisterStyle 方法时的返回值。下面的代码示例创建一个支持继承的 string 属性,其默认值为空 string ("")。

    public static String ThemeNameKey = 
        RegisterStyle(ThemeName, typeof(String), String.Empty, true);
    

    RegisterStyle 方法注册新的样式属性,并返回可用于在该属性中引用该样式的唯一键。RegisterStyle 方法的参数定义该属性的名称、数据类型和默认值,以及它的继承行为。

    此键应是公共的,因为控件适配器也要使用它来访问该属性的识别继承的值。

  2. 使用基类的默认索引器属性创建一个公共属性,该公共属性的实现访问该属性。

    public String ThemeName
    {
        get
        {
            return (String)this[ThemeNameKey];
        }
        set
        {
            this[ThemeNameKey] = value;
        }
    }
    

请参见

概念

样式

访问设备适配器中的样式属性

其他资源

创建新样式