10

我在尝试在新机器上构建 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'. 

这些引用似乎是指向正确程序集的指针。有没有其他人遇到过这个问题?

4

5 回答 5

3

可能出现此问题的另一个原因是缺少对使用 Toolkit 控件部分所需的所有“三个”程序集的引用。

如果尝试使用 Toolkit 输入(并且还可能假设主题),请确保您参考了以下程序集。

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

这解决了我遇到的与错误有关的问题。

于 2011-03-06T15:40:34.140 回答
2

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

它是 SL5 中重新编译的工具包,只需参考这些工具包就可以了

于 2011-07-21T14:27:18.903 回答
1

您总是可以依靠在代码中创建上下文菜单。

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);
}
于 2012-03-10T17:02:50.477 回答
0

看起来您在该机器上缺少Silverlight Toolkit,但它已安装在其他四台机器上。

于 2010-12-22T23:06:53.103 回答
0

出于某种原因,来自 NuGet 包管理器的 SilverLight 工具包适用于 SL4,即使项目设置为 SL5。您可以直接从 CodePlex下载 SL5 版本。请注意,日期是2011 年12月,而不是 2011 年2月,如 SL4 版本。

如果由于某种原因 MSI 没有安装(这发生在我身上),您可以使用7-zip提取 MSI 中包含的文件。我所要做的就是System.Windows.Controls.Input.Toolkit.dll从提取的文件中手动添加对的引用,我的 SL5 项目现在可以使用其 NumericUpDown 控件成功编译。令人高兴的是,我的程序现在可以在 Release 和 Debug 模式下编译。

另外,对于尚未这样做的人,您可能需要在 XAML 中引用正确的工具包。我使用了以下内容:

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

请注意,第一部分(即表示input)是需要在 XAML 中键入以使用控件的内容:

<input:NumericUpDown x:Name="myControl" ... />
于 2017-02-20T04:23:47.230 回答