2010-08-18 5 views
7

Всякий раз, когда я пытаюсь ссылаться на следующее пространство имен в своем XAML, компиляция кода и запуск проекта, но метод InitializeComponent вызывает ошибку. Вот ссылка XAML:Нельзя использовать пространство имен silverlight

XMLNS: е = "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] 

Есть ли новое пространство имен, которое мне нужно использовать для использования этого элемента управления?

ответ

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.

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

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

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: Microsoft.Expression.Interactivity.Core; = Microsoft.Expression.Interactions '- неизвестное пространство имен. [Line: 19 Position: 37] – Josh

1

Я думаю, вы должны посмотреть в свойствах вашего проекта. Найдите ссылки (Microsoft.Expression.Interactions или/или другие «Выражения», которые вы можете использовать, и установите для свойства «Копировать местность» значение «ИСТИНА» и повторите попытку.

2

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

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

-1

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

Возможно, мне нужен Microsoft Expression Blend SDK for Silverlight 4.

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

+0

Ну, если вы считаете, что ответ плох, вы можете прокомментировать без -1. В любом случае, я нашел здесь все ответы очень странно, и самый лучший ответ выглядит бесполезным для меня, не приводит к решению вообще. –

Смежные вопросы