无法使用Silverlight命名空间。

7
每当我尝试在我的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个回答

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,将URL " http://schemas.microsoft.com/expression/2010/interactions"映射到命名空间Microsoft.Expression.Interactivity.Core。
因此,引用Microsoft.Expression.Interactions.dll 4.0.5.0版本的项目可以包含使用xmlns:ei =“http://schemas.microsoft.com/expression/2010/interactions”的Xaml,然后可以包含ei:ExtendedVisualStateManager。
您会注意到我重复了几次版本号。如果在Silverlight 4项目中引用了交互式dll但代码不起作用,则可能是错误的版本。但是在这种情况下,丹的答案仍然应该有效。

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>

1
我已经引用了该程序集并尝试使用您的程序集引用方式,但是出现了一个新错误: 类型“ExtendedVisualStateManager”未找到,因为“clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions”是一个未知的命名空间。[行:19 位置:37] - Josh

2
我已经按照其他答案提供的方法正确地进行了一切操作,但和你一样,问题仍然存在。我的项目中有一个用户控件在运行时失败(该项目确实引用了 Microsoft.Expression.Interactions)。然而,该用户控件是在另一个项目的表单中使用的。一旦我在外部项目中添加了对 Microsoft.Expression.Interactions 的引用,运行时错误就得到解决。由于我没有动态加载程序集,所以我不完全确定为什么会出现这个问题。

1
我认为你应该查看项目属性。找到引用的 Microsoft.Expression.Interactions 或其他可能使用的“Expression”程序集,并将“复制本地”属性设置为 TRUE,然后再试一次。

-1

如果你认为答案不好,你可以在不打负一的情况下发表评论。无论如何,我发现这里所有的答案都很奇怪,而且最高评分的答案对我来说毫无用处,根本没有解决问题。 - Valentin Kuzub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接