我想别名XAML资源,如下所示:别名资源(WPF)
<UserControl.Resources>
<StaticResourceExtension x:Key="newName" ResourceKey="oldName"/>
</UserControl.Resources>
oldName
仅仅指的是Image
类型的资源,在App.xaml
定义。
据我所知,这是做到这一点的正确方法,应该可以正常工作。但是,XAML代码给我的寄望无益的错误:
"The application XAML file failed to load. Fix errors in the application XAML before opening other XAML files."
这时候我悬停在代码中StaticResourceExtension
线(其中有一个波浪下划线)出现。在实际的错误列表中生成了其他几个错误,但似乎是相当不相关的和无用的(“名称'InitializeComponent'在当前上下文中不存在”等消息),因为它们在删除该行时都消失了。
我完全难住了。为什么WPF抱怨这个代码?任何想法的决议请?
注意:我在.NET 3.5 SP1中使用WPF。
更新1:
我应该clairfy我做收到编译器错误(错误列表上述消息),所以它不只是一个设计师的问题。
更新2:
下面是完整的相关代码...
在App.xaml中(Application.Resource
下):
<Image x:Key="bulletArrowUp" Source="Images/Icons/bullet_arrow_up.png" Stretch="None"/>
<Image x:Key="bulletArrowDown" Source="Images/Icons/bullet_arrow_down.png" Stretch="None"/>
而且在MyUserControl.xaml(UserControl.Resources
下):
<StaticResourceExtension x:Key="columnHeaderSortUpImage" ResourceKey="bulletArrowUp"/>
<StaticResourceExtension x:Key="columnHeaderSortDownImage" ResourceKey="bulletArrowDown"/>
这些是生成错误的行,当然。
感谢您的回复。不,不幸的是,会产生实际的编译器错误(如果我没有定义别名,所有的废话都会消失)。不知道它是否有所作为,但您是否注意到我使用的资源是“Image”元素? – Noldorin 2009-07-20 22:36:53
你能发布你的完整代码吗? – 2009-07-21 08:29:42