这是一个有点noob问题,但我刚刚意识到,如果我创建了一个用户控件,并选择一些命名的子元素一拉 -

<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();

我很好奇,为什么是这样的话,更重要的是,我怎么能安全地封装这些控件。

和往常一样,任何帮助,将真正理解。

有帮助吗?

解决方案

您需要的是 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>

默认为的内部下,由于某种原因。你可以阅读更多关于它这里

scroll top