2016-07-19 64 views
0

讓我們假設我的XAML定義如下,使用mycontrols中的導入命名空間。訪問命名空間沒有完全定義在XAML中

<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" /> 

回答

1

不。在XML中,名稱空間前綴定義了名稱空間,您不能僅僅將它粘貼到它上面。你需要完整的CLR命名空間添加爲一個XML命名空間聲明在一個父元素:

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

並使用當實例在XAML中該元素/控制前綴:

<ctb:MyCustomTextBox />