[英]Namespaces in XAML
如果我在不同的名稱空間中編寫控件,則無法在XAML中顯示名稱空間。 例:
Namespace Sample -> Class A
Namespace Sample.Controls -> Class B
我們可以用XAML編寫:
...
xmlns:sample="clr-namespace:Sample"
xmlns:controls="clr-namespace:Sample.Controls"
...
<sample:A .../>
<controls:B .../>
但這不是:
<sample:Controls.B /> <-- Is not correct! ERROR!
但是,當我們使用expresion blend SDK庫時,是的。 他們能。 它們具有名稱空間並且是正確的。 我們可以用:
<i:Interaction.Behaviors />
<i:Interaction.Triggers />
<i:DependencyObjectHelper.SelfAndAncestors />
...
在名稱空間中寫入“ i:”,然后顯示智能提示組織...
我們如何編寫執行此操作的庫?
聲明名稱空間后,必須從該名稱空間中創建一個類的實例。 因此請使用Windows.ressources。
使用ILSpy,我找到了答案。
在“ i:interaction”中,智能感知顯示名稱空間的圖標,但不是真正的名稱空間,是附加屬性。 交互是一個靜態類,“行為”和“觸發器”是附加的屬性。
然后,當我們寫:
<TextBox>
<i:Interaction.Behaviors> // Is a Attached Property, not an object
...
</i:Interaction.Behaviors>
</TextBox>
我以為屬性和附加屬性的語法是相同的,但是不...是,不是
<TextBox>
<TextBox.Width> // "normal" object property: <object+property>
...
</TextBox.Width>
<i:Interaction.Triggers> // attached property: <attachedProperty>
...
</i:Interaction.Triggers>
</TextBox>
是正確的?!?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.