1

我创建了一个带有 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 ::= 中出现意外的属性。物业内容?结束标签..

任何的想法?

4

1 回答 1

1

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

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

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

\<:Al@.:Al@ :Al@=\".@\":b@>

启用正则表达式的查找和替换对话框

如果您需要调整表达式,则有关正则表达式语法的 MSDN 文档将很有用。

于 2011-09-08T07:10:49.930 回答