什么意思在xaml根元素中有一个x:Name元素?

时间:2016-01-14 10:33:34

标签: c# wpf xaml

我在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中的变量声明符指定名称,以便能够从代码或xaml本身引用它。

鉴于这是根元素,我不知道为什么我会使用此名称(在代码中我会使用this,在xaml中我可以使用RelativeSource等)。

任何提示?

1 个答案:

答案 0 :(得分:3)

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

  

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

     

(...)

     

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

这比使用RelativeSource更有效,并且还在代码隐藏中创建变量。

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