区分Wpf应用程序中的x:Name和Name。
区分Wpf应用程序中的x:Name和Name。
这个问题已经有答案了:
我是WPF编程的新手,我需要知道Name
和x:Name
之间的区别。
还有
上面的两行有什么区别?在代码后台,如何区分Name
和x:Name
?
请查看这个链接: https://stackoverflow.com/questions/1088322/wpf-what-is-difference-between-name-and-xname:\n\n他们指的是同一个东西,但在定义 UserControl 时必须使用 x: 前缀。\n\n在 WPF 中,x:Name 和 Name 属性有什么区别?\n\n在 XAML 文件中的控件中,x:name 和 name 有区别吗?\n\n以下是来自 Microsoft 的说明:\n\n任何 WPF 应用程序场景都可以避免使用 x:Name 属性,因为在多个重要基础类(如 FrameworkElement 和 FrameworkContentElement)中指定了默认 XAML 命名空间中的 Name 依赖属性,以满足同样的目的。但在一些常见的 XAML 和 WPF 场景中,对于没有名称属性的框架级别元素,代码访问是很重要的。例如,某些动画和故事板支持类不支持名称属性,但通常需要在代码中引用它们以控制动画。如果打算稍后从代码中引用时间轴和转换,请在 XAML 中将 x:Name 指定为属性。如果 Name 作为类的属性可用,Name 和 x:Name 可以作为属性交替使用,但如果在同一个元素上指定了两者,会导致解析异常。如果 XAML 是标记编译的,则异常会在标记编译时发生;否则,它会在加载时发生。可以使用 XAML 属性语法和代码的 SetValue 方法设置 Name;但请注意,在大多数情况下,使用代码设置 Name 属性不会在已加载 XAML 的情况下创建 XAML 名称范围内的代表性字段引用。与尝试在代码中设置 Name 不同,可以使用适当名称范围的 NameScope 方法来从代码中设置 Name。可以使用内部文本的属性元素语法设置 Name,但这很少见。相比之下,x:Name 无法在 XAML 属性元素语法或使用 SetValue 的代码中设置;它只能在对象上使用属性语法进行设置,因为它是一个指令。