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" />
否。在XML中,名称空间前缀定义了名称空间,你不能只是把东西粘在上面。你需要在父元素中添加完整的CLR名称空间作为XML名称空间声明:
xmlns:ctb="clr-namespace:Predefined.Controls.CustomTextBoxes;assembly=UIControls"
并在XAML中实例化该元素/控件时使用该前缀:
<ctb:MyCustomTextBox />