2010-08-18 11 views
7

Cada vez que intento hacer referencia al siguiente espacio de nombres en mi XAML, el código se compila y el proyecto se inicia, pero el método InitializeComponent arroja un error. Aquí está la referencia XAML:No se puede usar el espacio de nombre silverlight

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

y aquí está el uso de ExtendedVisualStateManager

<ei:ExtendedVisualStateManager/> 

El error es esto:

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

¿Hay un nuevo espacio de nombres que necesito usar para usar este control?

Respuesta

6

He aquí algunos datos.

  1. Microsoft.Expression.Interactions.dll versión 4.0.5.0 contiene el espacio de nombres Microsoft.Expression.Interactivity.Core.
  2. Este Microsoft.Expression.Interactivity.Core contiene el tipo ExtendedVisualStateManager.
  3. Microsoft.Expression.Interactions.dll versión 4.0.5.0 lleva un XmlnsDefinition que asigna la dirección URL "http://schemas.microsoft.com/expression/2010/interactions" al espacio de nombres Microsoft.Expression.Interactivity.Core.

De ahí que un proyecto hace referencia a la versión 4.0.5.0 de Microsoft.Expression.Interactions.dll pueden contener Xaml usando xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" que luego pueden contener ei:ExtendedVisualStateManager.

Notarás que he repetido el número de versión varias veces. Si tiene una dll de interacciones a la que se hace referencia en un proyecto de Silverlight 4 pero su código no funciona, quizás sea la versión incorrecta. Sin embargo, en ese caso, la respuesta de Dan debería haber funcionado.

2

Asegúrese de que su aplicación Silverlight tenga una referencia al ensamblado 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

Ya hice referenciar ese ensamblado e intenté utilizar su estilo para hacer referencia al ensamblado, pero se produjo un error nuevo: No se encontró el tipo 'ExtendedVisualStateManager' porque 'clr-namespace: Microsoft.Expression.Interactivity.Core; assembly = Microsoft.Expression.Interactions 'es un espacio de nombre desconocido. [Línea: 19 Posición: 37] – Josh

1

Creo que deberías consultar las propiedades de tu proyecto. Busque las referencias (Microsoft.Expression.Interactions y/u otros ensambles "Expression" que pueda usar, y establezca la propiedad "Copy Local" en TRUE e inténtelo de nuevo.

2

Tenía todo correcto por las otras respuestas y me gusta usted, el problema todavía existía. Estaba fallando en el tiempo de ejecución en un usercontrol en mi proyecto (y ese proyecto hizo referencia Microsoft.Expression.Interactions).

Sin embargo, ese usercontrol se estaba utilizando en un formulario en otro proyecto. Una vez que agregué la referencia a Microsoft.Expression.Interactions para el proyecto externo, se solucionó el error de tiempo de ejecución. No estaba cargando ensamblados dinámicamente y por lo tanto no estoy 100% seguro de por qué esto era un problema.

-1

Ninguna de las respuestas me resolvió este problema desconcertante.

Aparentemente necesitaba Microsoft Expression Blend SDK for Silverlight 4.

Su instalación ha resuelto el problema.

+0

Bueno, si crees que la respuesta es mala, podrías comentar sin -1. De todos modos, encontré que todas las respuestas aquí son muy raras y que la respuesta mejor valorada me parece inútil, no conduce a ninguna solución. –

Cuestiones relacionadas