繁体   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