Не могу использовать пространство имен silverlight - PullRequest
7 голосов
/ 18 августа 2010

Всякий раз, когда я пытаюсь сослаться на следующее пространство имен в моем 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 голосов
/ 18 августа 2010

Вот некоторые факты.

  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.

Следовательно, проект, ссылающийся на версию 4.0.5.0 файла Microsoft.Expression.Interactions.dll, может содержать Xaml с использованием xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions", который может содержать ei:ExtendedVisualStateManager.

Вы заметите, что я повторил версиюномер несколько раз. Если у вас есть dll взаимодействия, на который есть ссылка в проекте Silverlight 4, но ваш код не работает, то, возможно, это неправильная версия. Однако в этом случае ответ Дэна все же должен был сработать.

2 голосов
/ 29 июня 2011

У меня все было правильно по другим ответам, и, как и у вас, проблема все еще существовала.Это сбой во время выполнения пользовательского контроля в моем проекте (и этот проект ссылался Microsoft.Expression.Interactions).

Однако этот пользовательский контроль использовался в форме в другом проекте.Как только я добавил ссылку на Microsoft.Expression.Interactions во внешний проект, ошибка во время выполнения была решена.Я не загружал сборки динамически, поэтому не уверен на 100%, почему это было проблемой.

2 голосов
/ 18 августа 2010

Убедитесь, что в приложении 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 голос
/ 19 ноября 2010

Я думаю, вы должны посмотреть в свойствах вашего проекта.Найдите ссылки (Microsoft.Expression.Interactions и / или другие сборки «Expression», которые вы можете использовать, и установите для свойства «Copy Local» значение TRUE и повторите попытку.

0 голосов
/ 09 мая 2014

Ни один из ответов не решил для меня эту загадочную проблему.

Очевидно, мне нужен Microsoft Expression Blend SDK для Silverlight 4 .

Установка позволила решить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...