2010-09-15 77 views
9

我有一个在Visual Studio中由“WPF用户控件库”模板制作的项目。 该项目包含一个主要的用户控制加上额外的Windows/Usercontrols。我怎么能“隐藏”这些额外的Windows /用户控件,以便用户只能从程序集导入主用户控件(我想用屏幕截图来说明我的问题,但不幸的是,我的“声誉”是太低!)。在WPF用户控件库中隐藏控件

THX所有
弗雷德

+0

试图让他们受到保护? – 2010-09-15 11:52:30

+1

我认为@rdkleine意思是“内部”而不是“受保护”。 – 2010-09-15 11:54:05

+0

确实。必须是那些VB项目与我的头拧;) – 2010-09-15 11:58:13

回答

23

使这些控制内部。如果你有经典的用户控件与XAML代码隐藏和你将需要添加x:ClassModifier="internal"到根元素的XAML:

<UserControl 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    x:Class="MyNameSpace.MyUserControl" 
    x:ClassModifier="internal"> 
     <!-- bla --> 
</UserControl> 
+1

这工程像一个魅力!多谢!。 另外,在.cs文件中,我不得不这样声明类: 内部部分类... Thx又一次! – Fred 2010-09-17 11:59:41

0

也许属性的使用将解决您的问题。 ComponentModel命名空间内有一个属性“DesignTimeVisible”。如果您将这样的属性放在类实现的上方并将其设置为false,则相应的控件不应在设计器工具箱中可见。

0

我相信x:ClassModifier="internal"将使整个用户控件内部。这可能不合意。

相反,如果您将x:FieldModifier="private"添加到用户控件中的那些不希望UserControl使用者可访问的控件中,则生成的C#将使这些控件为私有控件。请注意,对于C#字段修饰符,使用小写字母是正确的。