Всякий раз, когда я пытаюсь сослаться на следующее пространство имен в моем 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]
Нужно ли мне новое пространство имен использовать для использования этого элемента управления?
Вот некоторые факты.
Microsoft.Expression.Interactivity.Core
. Microsoft.Expression.Interactivity.Core
содержит тип ExtendedVisualStateManager
. 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
.
Вы заметите, что я несколько раз повторил номер версии. Если в проекте Silverlight 4 есть ссылка на взаимодействующую dll, но ваш код не работает, возможно, это неправильная версия. Однако в этом случае ответ Дэна все равно должен был сработать.
Убедитесь, что ваше приложение 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>