Josh
Josh

Reputation: 10624

Can't use silverlight namespace

Whenever I try to reference the following namespace in my XAML, the code compiles and the project starts, but the InitializeComponent method throws an error. Here's the XAML reference:

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

and here's the use of ExtendedVisualStateManager

<ei:ExtendedVisualStateManager/>

The error is this:

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

Is there a new namespace I need to use to use this control?

Upvotes: 7

Views: 8832

Answers (5)

Valentin Kuzub
Valentin Kuzub

Reputation: 12093

None of the answers solved this puzzling problem to me.

Apparently I needed Microsoft Expression Blend SDK for Silverlight 4.

Installing it has solved the issue.

Upvotes: -1

Ewart Maclucas
Ewart Maclucas

Reputation: 865

I had everything correct per the other answers and like you, the problem still existed. It was failing at runtime on a usercontrol in my project (and that project did reference Microsoft.Expression.Interactions).

However, that usercontrol was being used on a form in another project. Once I added the reference to Microsoft.Expression.Interactions to the outer project, the runtime error was solved. I was not loading assemblies dynamically and so I'm not 100% certain why this was a problem.

Upvotes: 2

Radu
Radu

Reputation: 11

I think you should look in your project's properties. Find the references (Microsoft.Expression.Interactions or/and other "Expression" assemblies you may use, and set the "Copy Local" property to TRUE and try it again.

Upvotes: 1

AnthonyWJones
AnthonyWJones

Reputation: 189535

Here are some facts.

  1. The Microsoft.Expression.Interactions.dll version 4.0.5.0 contains the namespace Microsoft.Expression.Interactivity.Core.
  2. This Microsoft.Expression.Interactivity.Core contains the type ExtendedVisualStateManager.
  3. The Microsoft.Expression.Interactions.dll version 4.0.5.0 carries a XmlnsDefinition that maps the URL "http://schemas.microsoft.com/expression/2010/interactions" to the namespace Microsoft.Expression.Interactivity.Core.

Hence a project referencing version 4.0.5.0 of Microsoft.Expression.Interactions.dll can contain Xaml using xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" that can then contain ei:ExtendedVisualStateManager.

You'll note I've repeated the version number a few times. If you do have an interactions dll referenced in a Silverlight 4 project but your code doesn't work then perhaps its the wrong version. However in that case Dan's answer should still have worked.

Upvotes: 6

Dan Auclair
Dan Auclair

Reputation: 3617

Make sure your Silverlight application has a reference to the Microsoft.Expression.Interactions assembly.

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

Upvotes: 2

Related Questions