XAML中未准确定义访问命名空间

本文关键字:定义 访问 命名空间 XAML | 更新日期: 2023-09-27 17:57:42

让我们假设我的XAML是用mycontrols中导入的命名空间定义的,如下所示。

<Grid x:Class="LayoutGrid"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"         
    xmlns:mycontrols="clr-namespace:Predefined.Controls;assembly=UIControls"  
    >

如果我要使用在名称空间Predefined.Controls中定义的东西,那么我会简单地用它的别名mycontrols 引用它

示例:

<mycontrols:MyCustomButton Name="SubmitButton" />

现在,如果名称空间Predefined.Controls.CustomTextBoxes也存在,是否有一种方法可以在该名称空间内使用控件,而不必将其添加到顶部的XAML定义中?

像这样的东西??

<mycontrols.CustomTextBoxes:MyCustomTextBox Name="TextBox1" />

XAML中未准确定义访问命名空间

否。在XML中,名称空间前缀定义了名称空间,你不能只是把东西粘在上面。你需要在父元素中添加完整的CLR名称空间作为XML名称空间声明:

xmlns:ctb="clr-namespace:Predefined.Controls.CustomTextBoxes;assembly=UIControls"

并在XAML中实例化该元素/控件时使用该前缀:

<ctb:MyCustomTextBox />