我在Visual Studio中使用“WPF用户控件库”模板制作了一个项目 . 该项目包含一个主要用户控件以及其他Windows / Usercontrols .
如何“隐藏”这些额外的Windows / Usercontrols,以便用户只能从程序集中导入主用户控件(我想用屏幕截图来说明我的问题但不幸的是,我的“声誉”太低了!) .
大家好弗雷德
使这些控件内部化 . 如果你有XAML和代码隐藏的经典UserControls,你需要将 x:ClassModifier="internal" 添加到XAML中的根元素:
x:ClassModifier="internal"
<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>
也许属性的使用将解决您的问题 . ComponentModel命名空间中有一个属性“DesignTimeVisible” . 如果将此类属性放在类实现的正上方并将其设置为false,则相应的控件不应在设计器工具箱中可见 .
我相信 x:ClassModifier="internal" 将使整个用户控制内部 . 这可能是不可取的 .
相反,如果将 x:FieldModifier="private" 添加到用户控件中不希望 UserControl 使用者可访问的那些控件,则生成的C#将这些控件设置为私有 . 注意使用小写字母,这对于C#字段修饰符是正确的 .
x:FieldModifier="private"
UserControl
3 回答
使这些控件内部化 . 如果你有XAML和代码隐藏的经典UserControls,你需要将
x:ClassModifier="internal"
添加到XAML中的根元素:也许属性的使用将解决您的问题 . ComponentModel命名空间中有一个属性“DesignTimeVisible” . 如果将此类属性放在类实现的正上方并将其设置为false,则相应的控件不应在设计器工具箱中可见 .
我相信
x:ClassModifier="internal"
将使整个用户控制内部 . 这可能是不可取的 .相反,如果将
x:FieldModifier="private"
添加到用户控件中不希望UserControl
使用者可访问的那些控件,则生成的C#将这些控件设置为私有 . 注意使用小写字母,这对于C#字段修饰符是正确的 .