9

我有一个继承自 UserControl 的用户控件。它是一个按钮,所以我试图让按钮中的文本,通过像真正的按钮一样使用 Text 属性来更改,而不是像 _Text 一样命名我自己的。我有以下代码,但它不起作用(即它没有出现在属性窗口中)。标签的名称是 ContentPresenter

public override string Text
{
    get
    {
        return ContentPresenter.Text;
    }
    set
    {
        ContentPresenter.Text = value;
    }
}
4

1 回答 1

17

UserControl 付出了巨大的努力来隐藏 Text 属性。从元数据:

    [Browsable(false)]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    [EditorBrowsable(EditorBrowsableState.Never)]
    [Bindable(false)]
    public override string Text { get; set; }

您可以通过覆盖代码中的这些属性来使其可见:

    [Browsable(true)]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
    [EditorBrowsable(EditorBrowsableState.Always)]
    [Bindable(true)]
    public override string Text 
    { 
        get { return ContentPresenter.Text; } 
        set { ContentPresenter.Text = value; } 
    } 

我不保证这足以让它工作,但它可能是。

于 2012-04-16T20:14:07.537 回答