无法使用silverlight命名空间

时间:2010-08-18 15:46:38

标签: silverlight xaml reference

每当我尝试在我的XAML中引用以下命名空间时,代码都会编译并启动项目,但InitializeComponent方法会抛出错误。这是XAML参考:

xmlns:ei =“http://schemas.microsoft.com/expression/2010/interactions”

这里是使用ExtendedVisualStateManager

<ei:ExtendedVisualStateManager/>

错误是这样的:

The type 'ExtendedVisualStateManager' was not found because 'http://schemas.microsoft.com/expression/2010/interactions' is an unknown namespace. [Line: 19 Position: 37]

我需要使用新的命名空间来使用此控件吗?

5 个答案:

答案 0 :(得分:6)

以下是一些事实。

  1. Microsoft.Expression.Interactions.dll版本4.0.5.0包含名称空间Microsoft.Expression.Interactivity.Core
  2. Microsoft.Expression.Interactivity.Core包含ExtendedVisualStateManager类型。
  3. Microsoft.Expression.Interactions.dll版本4.0.5.0带有XmlnsDefinition,用于将网址“http://schemas.microsoft.com/expression/2010/interactions”映射到命名空间Microsoft.Expression.Interactivity.Core
  4. 因此,引用Microsoft.Expression.Interactions.dll版本4.0.5.0的项目可以使用xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"包含Xaml,然后可以包含ei:ExtendedVisualStateManager

    你会注意到我重复了几次版本号。如果您确实在Silverlight 4项目中引用了交互dll,但您的代码不起作用,则可能是错误的版本。但是在那种情况下,Dan的答案应该仍然有效。

答案 1 :(得分:2)

确保您的Silverlight应用程序具有对Microsoft.Expression.Interactions程序集的引用。

<UserControl
    xmlns:ei="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions"
    ...other namespaces... />
    <VisualStateManager.CustomVisualStateManager>
        <ei:ExtendedVisualStateManager/>
    </VisualStateManager.CustomVisualStateManager>
</UserControl>

答案 2 :(得分:2)

根据其他答案,我认为一切都是正确的,就像你一样,问题仍然存在。它在运行时在我的项目中的用户控件上失败了(该项目确实引用了Microsoft.Expression.Interactions)。

但是,该用户控件正在另一个项目的表单上使用。一旦我将Microsoft.Expression.Interactions的引用添加到外部项目,就解决了运行时错误。我没有动态加载程序集,因此我不能100%确定为什么这是一个问题。

答案 3 :(得分:1)

我认为您应该查看项目的属性。找到您可能使用的引用(Microsoft.Expression.Interactions或/和其他“Expression”程序集,并将“Copy Local”属性设置为TRUE并再次尝试。

答案 4 :(得分:-1)

这些答案都没有解决我这个令人费解的问题。

显然我需要Microsoft Expression Blend SDK for Silverlight 4

安装它解决了这个问题。