2010-08-18 4 views
7

Chaque fois que j'essaie de référencer l'espace de noms suivant dans mon code XAML, le code se compile et le projet démarre, mais la méthode InitializeComponent génère une erreur. Voici la référence XAML:Impossible d'utiliser l'espace de noms silverlight

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

et est ici l'utilisation de ExtendedVisualStateManager

<ei:ExtendedVisualStateManager/> 

L'erreur est :

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

Y a-t-il un nouvel espace de noms que je dois utiliser pour utiliser ce contrôle?

Répondre

6

Voici quelques faits.

  1. La version 4.0.5.0 de Microsoft.Expression.Interactions.dll contient l'espace de noms Microsoft.Expression.Interactivity.Core. Ce numéro Microsoft.Expression.Interactivity.Core contient le type ExtendedVisualStateManager.
  2. La version 4.0.5.0 Microsoft.Expression.Interactions.dll porte un XmlnsDefinition qui mappe l'URL «http://schemas.microsoft.com/expression/2010/interactions» à l'espace de noms Microsoft.Expression.Interactivity.Core.

Par conséquent une version référencement projet 4.0.5.0 de Microsoft.Expression.Interactions.dll peut contenir Xaml en utilisant xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" qui peuvent alors contenir ei:ExtendedVisualStateManager.

Vous remarquerez que j'ai répété le numéro de version plusieurs fois. Si vous avez une interaction dll référencée dans un projet Silverlight 4 mais que votre code ne fonctionne pas, alors c'est peut-être la mauvaise version. Cependant, dans ce cas, la réponse de Dan aurait quand même dû marcher.

2

Assurez-vous que votre application Silverlight a une référence à l'assembly 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

J'ai déjà fait référence à cet assembly et essayé d'utiliser votre style de référencement de l'assembly, mais une nouvelle erreur a été levée: Le type 'ExtendedVisualStateManager' n'a pas été trouvé car 'clr-namespace: Microsoft.Expression.Interactivity.Core; assembly = Microsoft.Expression.Interactions 'est un espace de noms inconnu. [Ligne: 19 Position: 37] – Josh

1

Je pense que vous devriez regarder dans les propriétés de votre projet. Recherchez les références (Microsoft.Expression.Interactions ou d'autres assemblages "Expression" que vous pouvez utiliser et définissez la propriété "Copy Local" sur TRUE et réessayez.)

2

J'ai eu tout correct par les autres réponses et comme Le problème existait toujours: il échouait à l'exécution sur un contrôle utilisateur dans mon projet (et ce projet faisait référence Microsoft.Expression.Interactions)

Cependant, ce contrôle utilisateur était utilisé sur un formulaire dans un autre projet. Microsoft.Expression.Interactions au projet externe, l'erreur d'exécution a été résolue Je ne chargeais pas les assemblages dynamiquement et donc je ne suis pas sûr à 100% pourquoi cela était un problème

-1

Aucune des réponses ne m'a permis de résoudre ce problème déroutant. J'ai besoin de Microsoft Expression Blend SDK for Silverlight 4.

L'installation a résolu le problème.

+0

Eh bien, si vous pensez que la réponse est mauvaise, vous pouvez commenter sans -1. Quoi qu'il en soit, j'ai trouvé toutes les réponses ici très étrange et la réponse la mieux notée semble inutile pour moi, ne mène pas à la solution du tout. –

Questions connexes