在Visual Studio属性面板上禁用属性

时间:2011-04-21 08:45:58

标签: c# wpf

我是wpf的新手。我目前正在开发自定义控件,我希望严格地从xaml定义某些属性。我正在尝试实现的示例是Effect属性,它仅显示“必须在XAML中设置值”文本。有人可以告诉我该怎么做,或者我应该使用哪个属性?提前致谢

2 个答案:

答案 0 :(得分:1)

如果要隐藏属性面板中的属性,可以使用BrowsableAttribute实现它:

BrowsableAttribute Class

可视化设计器通常在“属性”窗口中显示那些没有可浏览属性或使用值为true的BrowsableAttribute构造函数标记的成员。可以在设计时修改这些成员。 使用值为false的BrowsableAttribute构造函数标记的成员不适合设计时编辑,因此不会显示在可视设计器中。默认值为true。

[Browsable(false)]
public int HiddenProperty {
    get {
        // Insert code here.
        return 0;
    }
    set {
        // Insert code here.
    }
}

答案 1 :(得分:0)

您需要依赖属性

http://msdn.microsoft.com/en-us/library/ms752914.aspx

    public static readonly DependencyProperty IsSpinningProperty = 
    DependencyProperty.Register(
    "IsSpinning", typeof(Boolean),...);

public bool IsSpinning
{
    get { return (bool)GetValue(IsSpinningProperty); }
    set { SetValue(IsSpinningProperty, value); }
}

或者只是将效果添加到新控件的xaml中:

<local:NewControl>
    <local:NewControl.Effect>
        <DropShadowEffect/>
    </local:NewControl.Effect>
</local:NewControl>