簡體   English   中英

XAML中的命名空間

[英]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。

流動此鏈接http://www.wpf-tutorial.com/wpf-application/resources/

使用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.

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