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