原文:
在VisualStudio 工具箱中隐藏用户控件
当我们创建一个用户控件后,VisualStudio会自动将其添加到工具箱中,本来这是一个比较贴心的设计。但是,有的时候,我们并不想将用户控件放到工具箱中。
例如:在WPF中,为了避免一个页面的控件过多,我通常会将每一个Tab页单独设计为一个用户控件,然后统一集中在一个窗口中加载。这些用户控件本身并没有复用性,并且往往是通过直接编写XAML来实现控件的加载,并不需要从工具箱中拖拽。这样的一次性控件一旦过多,都放在工具箱中反而还会影响我们查找那些需要复用的用户控件。
这种时候,我们则需要在工具箱中隐藏这些一次性的用户控件,以前我在WinForm中往往是通过在类前面标注ToolboxItemAttribute属性来实现从工具箱中隐藏该控件(WinFrom中隐藏用户控件的情形很少见,因为它使用的时候往往需要从工具箱中拖拽)。
[ToolboxItem(false)]
在WinFrom中通过这种方式标记的用户控件是不会在工具箱中加载的,但是在WPF中这种方式却失效了,在网上查了一下,正确的做法是用DesignTimeVisibleAttribute属性标记
[DesignTimeVisible(false)]
该标记在WinForm中也可以用,这个才是正统的做法,这里记录一下,以备后续查询。