I've a project made from the "WPF User Control Library" Template in Visual Studio. This project contains one main usercontrol plus additional Windows/Usercontrols.
How can I "hide"开发者_C百科 these additional Windows/Usercontrols, so that the user can only import the main usercontrol from the assembly (I wanted to put a screen-shot to illustrate my question but unfortunately, my "reputation" is too low!).
Thx All
FredMake those controls internal. If you have classic UserControls with XAML and codebehind you will need to add x:ClassModifier="internal"
to the root element in the 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>
Maybe the usage of attributes will solve your problem. There is one attribute "DesignTimeVisible" inside the ComponentModel namespace. If you put such an attribute right above your class implementation and set it to false, the corresponding control should not be visible in the designers toolbox.
I believe that x:ClassModifier="internal"
will make the entire user control internal. This may not be desirable.
Instead if you add x:FieldModifier="private"
to those controls within the user control that you don't wish to be accessible to the UserControl
consumer, the generated C# will have those controls as private. Note the use of lower case which is correct for a C# field modifier.
精彩评论