簡體   English   中英

XAML(WPF)命名空間?

[英]XAML (WPF) Namespace?

我一直在嘗試閱讀XAML命名空間和xlmnr的用法,這有點模糊。 它要么太技術性,要么太簡單化。

我的問題與此處提出的問題有點相似,但我的問題更多地是與附加到它的x部分有關。

所以:

  1. xmlns:x是否表示輔助名稱空間? 即非默認值? 我可以有多個以上的人嗎?如果可以,搜索正確的班級的順序是什么? 當然,這假定xmlns是默認值。
  2. x:name而不是name附加到標簽的含義和區別是什么?

編輯:

原來,我想我完全誤解了它。 沒有像C# using語句或Java的import這樣的搜索層次。 xmlns:<name>更像是一種定義名稱的方法,您可以訪問整個類樹。 另一方面, x是定義XMAL相關內容的常規方法,但不是必需的。

誰能確認?

由於使用了底層XML技術,因此必須在XAML中使用XML名稱空間。

xmlns:x確實創建了另一個名為x命名空間。 您可以使用x:...從中引用屬性等。

如果僅使用name而不是x:name則它將引用默認名稱空間。

您可以根據需要在XAML中聲明盡可能多的名稱空間。

標准的x名稱空間公開了XAML的常用功能-基本上是各種在代碼中實現的事物的映射,以使它們在XAML上下文中具有含義。 對於x:Name (與x:name無關),XAML編譯過程將基於x:Name值創建一個代碼隱藏字段。 非-X Name屬性是代表一個屬性Name上WPF屬性FrameworkElement基類,在大多數情況下,以同樣的方式設置x:名稱,你不能在相同的元素分配兩者。 有關更多信息,請參見此問題

對於問題的第一部分:您可以將x更改為所需的任何值,但不應該保持一致性,並且還可以(並且將在實踐中)添加其他xmlns:聲明,主要用於訪問代碼中實現的其他功能。 例如,如果您在Blend中工作,通常會看到添加了xmlns:d ,其中包含了一堆設計師特定的屬性。 您需要引用的任何代碼,例如數據類型,轉換器等,通常都將使用xmlns clr-namespace指定了clr-namespaceassembly以映射到代碼中的.NET命名空間:即xmlns:local="clr-namespace:WpfApplication1"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM