我正在尝试将contextmenu与silverlight工具包中的菜单项一起使用。我正在使用Silverlight 4.0,工具包是5.0(也许这是问题的开始),它不允许我添加一个简单的上下文菜单。
我添加了对引用文件夹中代码的引用,并选择DLL System.Windows.Controls.Toolkit和System.Windows.Controls.Input.Toolkit。然后我在XAML文件中添加一个引用,如下所示:
xmlns:controlsInputToolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit"
我也尝试过这样:
xmlns:tk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit"
我添加了一个简单的代码:
<navigation:Page x:Class="SilverlightApplication6.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:tk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
d:DesignWidth="640" d:DesignHeight="480"
Title="Page1 Page">
<Grid>
<tk:ContextMenuService.ContextMenu>
<tk:ContextMenu>
<tk:Separator/>
</tk:ContextMenu>
</tk:ContextMenuService.ContextMenu>
</Grid>
</navigation:Page>
我收到此错误:
The tag 'ContextMenu' does not exist in XML namespace 'http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit'
所以,我要么不添加正确的引用,要么在文件或文件版本中存在混乱。
答案 0 :(得分:4)
我也在Silverlight 4工作,我从2010年4月开始使用工具包。它专门用于SL4,你可以在这里找到它:http://silverlight.codeplex.com/releases/view/43528
您可以选择下载.zip或msi。我选择了.msi,因此您的工具包将安装在C:\Program Files (x86)\Microsoft SDKs\Silverlight\v4.0\Toolkit\{release month year}\Bin
中,因此VS会自动选择它。这允许您通过VS中的界面添加引用。
像这样添加xaml名称空间:
xmlns:SLToolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit"
最后,您可以使用contextmenu:
<SLToolkit:ContextMenu>
</SLToolkit:ContextMenu>