zoukankan      html  css  js  c++  java
  • 如何使用户控件应用主题

    Q: 用户控件没有“主题”属性,如何才能应用主题和皮肤?

    A: 用户控件不包含主题属性,但使可以为页面指定主题,这样主题就会应用于页面上的所有控件,用户控件也会应用页面的主题

    如果一个主题包含css文件,则ASP.NET会指向css文件。用户控件中如果使用了该css文件中的样式,则也会应用这些样式

    如果主题内使用了皮肤,并且用户控件内包含了皮肤所要应用的控件,那么这些控件也会应用皮肤。举例:为定义一个日历控件的皮肤,如果你的用户控件内包含了日历控件,那你用户控件里的日历控件也会应用这个皮肤

    如果要为用户控件直接制定皮肤,那就需要些技巧了。先定义一个简单的用户控件:MyWidget,MyWidget包含Message属性

    <%@ Control Language="C#" CodeFile="MyWidget.ascx.cs" Inherits="MyWidget" %>
    <h1><%= Message %></h1>

    类文件内需要声明这个属性,但更重要的使为控件添加Themeable属性

    using System;
    using System.Web.UI;

    [
    Themeable(true)]
    public partial class MyWidget : System.Web.UI.UserControl
    {
        
    private string _message;
        
    public string Message
        {
            
    get { return _message; }
            
    set { _message = value; }
        }
       
    }

    最后,需要一个.skin文件,并且需要在.skin中添加Register,这样就可以书写使用皮肤文件了

    <%@ Register Src="~/MyWidget.ascx" TagName="MyWidget" TagPrefix="otc" %>

    <otc:MyWidget Message="Sahil Looks Funny" runat="server" />

    现在将MyWidget拖拽到页面上,皮肤文件就会制定Message属性了(如果页面应用了主题)


    原文地址:http://odetocode.com/Blogs/scott/archive/2006/06/26/4679.aspx

    并感谢saucer神仙的指点

    注:如果要为服务器控件制定主题,则需要再.skin文件中注册该服务器控件,方法和在页面文件注册服务器控件相同

    示例程序下载.rar

  • 相关阅读:
    RecyclerView+CardView简单使用
    Android六大进程间通信方式总结之一:基本知识
    前台服务
    Notification
    SQLite的基本用法
    SharePreferences基本用法
    自定义控件和使用的两种基本方法
    AsyncTask的简单使用
    Java Servlet调用数据库复习
    JDBC数据源(DataSource)的简单实现
  • 原文地址:https://www.cnblogs.com/stswordman/p/480060.html
Copyright © 2011-2022 走看看