【问题标题】:User control attributes at design-time设计时的用户控制属性
【发布时间】:2014-08-02 11:24:49
【问题描述】:

我正在 Visual Studio 2008 中测试一个简单的用户控件:一个名为 Wrapper 的面板,其中包含一些控件。 Visual Studio 可以在设计时处理这个问题吗?

public partial class TestControl : System.Web.UI.UserControl
{
    [Description("Css class of the div around the control.")]
    [CssClassProperty]
    public string CssClass
    {
        get { return Wrapper.CssClass; }
        set { Wrapper.CssClass = value; }
    }
}

设置 CssClass 属性时,它不会在设计时更新 Panel 的 css。我是不是希望太大了?

【问题讨论】:

    标签: css visual-studio-2008 user-controls design-time


    【解决方案1】:

    我认为您必须检查父级并进行转换

    if(this.Parent is Panel)
    {
       ((Panel)this.Parent).CssClass = value;
    }
    

    或类似的。

    【讨论】:

      【解决方案2】:

      在 VS IDE 中设计页面可能是一件令人头疼的事情,因为当通过代码隐藏或整个网站继承的全局页眉(例如,通过PAGE 的子类化。)使用 VS IDE 来设计那些子页面/控件等变得非常困难。将 CSS 插入子文档或控件不是一种选择,因为编译后的页面通常会包含重复的对样式表的引用,并且很可能在声明之前提供第一个引用。

      这是让 Visual Studio 在 IDE 中使用任意 CSS 的一种方法,可以克服此问题,因此您可以使用设计人员不知道服务页面中存在的 CSS 来设计控件。因此,您可以使用它在编辑器中的设计时使 CSS 可用,但在调试或运行时不可用。我很确定这也适用于您的场景。

      插入:

      <% 
      #If 0 Then
      %>    
          <link rel='stylesheet' href='mycss.css' type='text/css' />        
      <%
      #End If
      %>
      

      这只会在 IDE 的 html 设计器中加载您的样式表。

      【讨论】:

        猜你喜欢
        • 2010-09-05
        • 1970-01-01
        • 2015-01-03
        • 1970-01-01
        • 2011-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多