这是一个noob问题,但我刚刚意识到如果我创建一个UserControl并选择命名它的一些子元素la -
<UserControl x:Class="UserControls.uControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="300" Width="300">
<Grid x:Name="maingrid">
</Grid>
然后我可以在消费XAML的代码隐藏中引用命名元素。所以对于上面的例子我可以写
uControl.mainGrid = new Grid();
我很好奇为什么会这样,更重要的是,我如何安全地封装这些控件。
像往常一样,任何帮助都会非常感激。
答案 0 :(得分:2)
您想要的是x:FieldModifier
属性:
<UserControl x:Class="UserControls.uControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="300" Height="300">
<Grid x:Name="maingrid" x:FieldModifier="private">
</Grid>
</UserControl>
由于某种原因,默认为内部。您可以阅读更多相关信息here。