【问题标题】:Differentiate between x:Name and Name in Wpf application [duplicate]在 Wpf 应用程序中区分 x:Name 和 Name [重复]
【发布时间】:2013-12-27 09:33:04
【问题描述】:

我是Wpf编程的初学者,我需要知道Namex:Name之间的区别

<label Name="lab" ></label>

<label x:Name="lab" ></label>

上面两行之间有什么区别?在后面的代码中,我如何区分 Namex:Name

【问题讨论】:

标签: c# .net wpf xaml tags


【解决方案1】:

请见this:

它们指的是同一个东西,但是在定义 UserControl 时必须使用 x: 前缀。

In WPF, what are the differences between the x:Name and Name attributes?

Is there any difference in x:name and name for controls in xaml file?

来自Microsoft

任何 WPF 应用场景都可以避免任何使用 x:Name 属性,因为在 几个重要基类的默认 XAML 命名空间,例如 因为 FrameworkElement 和 FrameworkContentElement 也同样满足 目的。仍然存在一些常见的 XAML 和 WPF 场景,其中代码 在框架级别访问没有 Name 属性的元素是 重要的。例如,某些动画和故事板支持 类不支持 Name 属性,但它们通常需要 在代码中引用以控制动画。你应该 将 x:Name 指定为时间轴和转换的属性 在 XAML 中创建,如果您打算稍后从代码中引用它们。如果 Name 可用作类的属性,Name 和 x:Name 可以是 可互换用作属性,但会导致解析异常 如果两者都在同一个元素上指定。如果 XAML 是标记 编译时,标记编译时会发生异常,否则 发生在负载。可以使用 XAML 属性语法设置名称,并在 使用 SetValue 的代码;但是请注意,将 Name 属性设置为 代码不会在 XAML 名称范围在已加载 XAML 的大多数情况下。 与其尝试在代码中设置名称,不如使用来自的 NameScope 方法 代码,针对适当的名称范围。名称也可以使用 带有内部文本的属性元素语法,但这并不常见。在 相反,x:Name 不能在 XAML 属性元素语法中设置,或者在 使用 SetValue 的代码;它只能使用属性语法设置 对象,因为它是一个指令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 2011-05-31
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    相关资源
    最近更新 更多