在xaml根元素中有一个x:Name元素意味着什么



我在xaml中由其他人完成了以下UserControl声明:

<core:UserControlBase x:Class="xxxx"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:core="clr-namespace:Agn.Word.AddIn.Core.Presentation;assembly=Agn.Word.AddIn.Core" 
             x:Name="aName">

据我所知,x:Name属性用于为xaml中的变量declarer命名,以便能够从代码或xaml本身引用它。

既然这是我不知道的根元素,我为什么要使用这个名称(在后面的代码中,我将使用this,在xaml中,我可以使用RelativeSource,等等)。

有什么提示吗?

当您想要直接引用对象时,可以使用x:Name:

唯一标识用于访问实例化的对象元素来自代码隐藏或通用代码的对象。一旦应用于背衬编程模型,x:Name可以被认为等价于变量持有由构造函数返回的对象引用。

(…)

指定的x:Name将成为在中创建的字段的名称处理XAML时的底层代码,并且该字段包含对对象的引用。

这比使用RelativeSource更有效,而且还会在后面的代码中创建变量。

在您的示例中,如果您不想使用RelativeSource来导航层次结构,并且也不在后面的代码中使用它,则可以简单地将其删除。

最新更新