ContextMenu静态资源编译错误

时间:2011-06-27 08:47:43

标签: silverlight contextmenu staticresource

我创建了一个带有ContextMenu属性的Silverlight控件。我还创建了一个ContextMenu静态资源,我要将其添加到控件中,但是我收到了编译错误。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:controlsInputToolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit" >
    <controlsInputToolkit:ContextMenuService.ContextMenu x:Key="FilterableTreeViewContextMenu">
        <controlsInputToolkit:ContextMenu>
            <controlsInputToolkit:MenuItem Header="New" />
        </controlsInputToolkit:ContextMenu>
    </controlsInputToolkit:ContextMenuService.ContextMenu>
</ResourceDictionary>

错误: 解析规则PropertyElement :: =中的意外ATTRIBUTE。 PROPERTYELEMENT内容? ENDTAG ..

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

此错误表示属性已应用于无效的属性元素。在您的情况下,这是x:Key元素上的controlsInputToolkit:ContextMenuService.ContextMenu属性。您需要将其删除。

您可以通过元素名称中包含的句点来标识XAML中的属性元素。句点之前的名称部分是类的名称,后面的部分是该类的属性。这些元素中不允许使用属性。

您的XAML非常紧凑,我可以轻松找到问题所在。如果在更大的XAML文件中发生此错误,则可以在Visual Studio中使用以下正则表达式来查找问题。只需确保选中“查找和替换”对话框中的“使用”复选框,然后在组合框中选择“正则表达式”。

\&lt;:Al @:Al @:Al @ = \“。@ \”:b @&gt;

Find and Replace Dialog with Regular Expressions Enabled

如果您需要调整表达式,那么MSDN documentation on regular expression syntax将非常有用。