我创建了一个带有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 .. 的
有什么想法吗?
答案 0 :(得分:1)
此错误表示属性已应用于无效的属性元素。在您的情况下,这是x:Key
元素上的controlsInputToolkit:ContextMenuService.ContextMenu
属性。您需要将其删除。
您可以通过元素名称中包含的句点来标识XAML中的属性元素。句点之前的名称部分是类的名称,后面的部分是该类的属性。这些元素中不允许使用属性。
您的XAML非常紧凑,我可以轻松找到问题所在。如果在更大的XAML文件中发生此错误,则可以在Visual Studio中使用以下正则表达式来查找问题。只需确保选中“查找和替换”对话框中的“使用”复选框,然后在组合框中选择“正则表达式”。
\&lt;:Al @:Al @:Al @ = \“。@ \”:b @&gt;
如果您需要调整表达式,那么MSDN documentation on regular expression syntax将非常有用。