1

我正在扩展我自己的自定义控件,它扩展了 UserControl 类。

我可以在扩展类的设计器中看到所有元素都很好,但是扩展自定义控件的所有属性都显示为禁用,并且在使用鼠标选择其元素时会出现“锁定”图标。

我该如何解决?我希望能够从设计器中修改这些属性。

编辑:自定义控件的定义,它从 UserControl 扩展而来。

namespace Wizard
{
    [Designer(typeof(Wizard.StepDesigner))]
    [DefaultProperty("TitlePanel, NavigationPanel")]
    public partial class Step : UserControl
    {
         public Step()
         {
            InitializeComponent();
         }

         [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
         public Title TitlePanel
         {
              get
              {
                    return this.title1;
              }
              set
              {
                   this.title1 = value;
              }
          }

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public Panel ContentPanel
        {
            get
            {
                 return this.contentPanel;
            }
        }

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public Navigation NavigationPanel
        { 
             get
             {
                 return this.navigation1;
             }
         }
     }

     internal class StepDesigner : ParentControlDesigner
     {
         public override void Initialize(System.ComponentModel.IComponent component)
         {
            base.Initialize(component);

            if (this.Control is Step)
            {
                 Step control = (Step)this.Control;
                 this.EnableDesignMode(control.TitlePanel, "TitlePanel");
                 this.EnableDesignMode(control.ContentPanel, "ContentPanel");
                 this.EnableDesignMode(control.NavigationPanel, "NavigationPanel");
             }
         }  
     }
 }
4

1 回答 1

1

正如我在评论中已经指出的那样,属性的修饰符都设置为私有并将它们更改为受保护并重建解决方案解决了“问题”。

于 2012-10-11T18:42:27.783 回答