Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 禁用Visual Studio属性面板上的属性_C#_Wpf - Fatal编程技术网

C# 禁用Visual Studio属性面板上的属性

C# 禁用Visual Studio属性面板上的属性,c#,wpf,C#,Wpf,我是wpf的新手。我目前正在开发自定义控件,我希望某些属性严格从xaml定义。我试图实现的示例是Effect属性,它只显示“必须在XAML中设置值”文本。谁能告诉我怎么做,或者我应该使用哪个属性?提前感谢您需要依赖属性 或者只需将效果添加到YUML或新控件的xaml中: <local:NewControl> <local:NewControl.Effect> <DropShadowEffect/> </local:New

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

您需要依赖属性

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

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

如果要从“属性”面板隐藏属性,可以使用BrowsableAttribute实现:

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


我正在使用DependencyProperty。我想要实现的是,用户无法通过Visual Studio属性面板编辑其值。将Browsable设置为false将使其完全隐藏,这意味着在使用designer时,用户可能不知道它存在。我希望它仍然显示在属性面板上,但用户必须输入XAML代码来设置值。Ok。然后需要使用另一个属性来更改设计器,在“属性”面板中编辑属性时将使用该设计器。我过去使用过它,但现在我无法访问该代码库并找到它的名称。我无法在代码中检查它,但据我记忆所及,TypeDescriptionProviderAttribute和CustomTypeDescriptor的组合是一种方法。
<local:NewControl>
    <local:NewControl.Effect>
        <DropShadowEffect/>
    </local:NewControl.Effect>
</local:NewControl>
[Browsable(false)]
public int HiddenProperty {
    get {
        // Insert code here.
        return 0;
    }
    set {
        // Insert code here.
    }
}