"Тег 'MenuItem' не существует в пространстве имен XML 'clr-namespace: System.Windows.Controls; Assembly = System.Windows.Controls.Input.Toolkit'" ошибка - PullRequest
10 голосов
/ 23 декабря 2010

Я получаю сообщение об ошибке при попытке создать приложение Silverlight на новом компьютере. (Silverlight 4, Visual Studio 2010) Это приложение без ошибок компилируется на четырех других компьютерах.

Ошибка:

the tag 'MenuItem' does not exist in XML namespace 'clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit'. 

Похоже, что ссылки указывают на правильные сборки. У кого-нибудь еще была такая проблема?

Ответы [ 5 ]

3 голосов
/ 06 марта 2011

Другая причина, по которой может возникнуть эта проблема, заключается в отсутствии ссылки на все «три» сборки, необходимые для использования частей элементов управления Toolkit.

Убедитесь, что у вас есть ссылки на следующие сборки, если вы пытаетесь использовать входные данные Toolkit (и допускаете, что темы также возможны).

System.Windows.Controls
System.Windows.Controls.Toolkit
System.Windows.Controls.Input.Toolkit

Это решило проблему, с которой я столкнулся в связи с ошибкой.

2 голосов
/ 21 июля 2011

http://marktinderholt.wordpress.com/2011/07/12/silverlight-toolkit-for-silverlight-5-beta

это перекомпилированный инструментарий в SL5, просто ссылайтесь на него и все готово

1 голос
/ 10 марта 2012

Вы всегда можете вернуться к созданию контекстного меню в коде.

public LedgerEntryControl()
{
    InitializeComponent();

    ContextMenu contextMenu = new ContextMenu();
    MenuItem voidMenuItem = new MenuItem() { Header = "Void" };
    voidMenuItem.SetBinding(MenuItem.CommandProperty, new Binding("Void"));
    contextMenu.Items.Add(voidMenuItem);
    ContextMenuService.SetContextMenu(this, contextMenu);
}
0 голосов
/ 20 февраля 2017

По какой-то причине набор инструментов SilverLight из NuGet Package Manager предназначен для SL4, даже если для проекта установлено значение SL5. Вы можете загрузить версию SL5 непосредственно из CodePlex. Обратите внимание: дата декабря 2011 вместо февраля 2011, как в версии SL4.

Если по какой-то причине MSI не устанавливается (что случилось со мной), вы можете извлечь файлы, содержащиеся в MSI, используя 7-zip . Все, что мне нужно было сделать, это вручную добавить ссылку на System.Windows.Controls.Input.Toolkit.dll из извлеченных файлов, и мой проект SL5 теперь успешно компилируется с его элементом управления NumericUpDown. К счастью, теперь моя программа компилируется как в режиме выпуска, так и в режиме отладки.

Кроме того, для тех, кто еще этого не сделал, вам может понадобиться ссылка в XAML на правильный инструментарий. Я использовал следующее:

<sdk:Page xmlns:input="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit" ... >

Обратите внимание, что первая часть, где написано input, - это то, что необходимо ввести в XAML для использования элемента управления:

<input:NumericUpDown x:Name="myControl" ... />
0 голосов
/ 23 декабря 2010

похоже, что вам не хватает Silverlight Toolkit на этом компьютере, но оно установлено на четырех других.

...