我在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
等)。
任何提示?
答案 0 :(得分:3)
当您想直接引用该对象时,可以使用x:Name:
唯一标识用于访问实例化的对象元素 来自代码隐藏或通用代码的对象。一旦应用到背衬 编程模型,x:可以认为名称等同于变量 持有对象引用,由构造函数返回。
(...)
指定的x:Name将成为在其中创建的字段的名称 处理XAML时的底层代码,该字段包含 引用该对象。
这比使用RelativeSource
更有效,并且还在代码隐藏中创建变量。
在您的示例中,如果您不想使用RelativeSource
来导航层次结构,并且您也不会在代码隐藏中使用它,则可以将其删除。