我有一个包含许多面板控件的用户控件。用户控件具有根据用户控件中包含的某些变量的值设置每个面板的可见性的逻辑。
我想通过添加以下枚举来增强此功能:
public enum Visibility
{
Default,
Always,
Never
}
其中Default
将使用当前逻辑来设置面板的可见性,但Always
会(显然)使面板始终可见,Never
将始终隐藏面板。
我还想添加一个名为PanelVisiblity
的“嵌套”设计时属性,开发人员可以扩展,并查看下面列出的面板名称,并允许他们从{{{ 1}}每个枚举。
如果我添加这样的属性:
Visibility
public partial class MyControl : UserControl
{
public Visibility ActivePanel { get; set; }
public Visibility CodePanel { get; set; }
}
和ActivePanel
属性出现在Visual Studio的“属性”窗口中,我可以将它们设置为枚举中的三个值之一。但是,当我重构我的代码以尝试创建这样的嵌套属性时:
CodePanel
我没有得到可扩展的public partial class MyControl : UserControl
{
public class PanelVisibility
{
public enum Visibility
{
Default,
Always,
Never
}
public Visibility ActivePanel { get; set; }
public Visibility CodePanel { get; set; }
}
}
属性,我得到一个禁用的PanelVisiblity
属性,其中值是类的名称空间,加上'PanelVisibility'。
我用Google搜索了一些用于表示此搜索的变体,但未能找到类似我正在寻找的内容。
任何方向都会受到高度赞赏。
答案 0 :(得分:0)
您似乎正在寻找与DockPanel提供的功能相同的功能。
我建议你不要重新发明轮子,而应该使用一个可用的实现,例如:
http://msdn.microsoft.com/en-us/library/system.windows.controls.dockpanel.aspx