【发布时间】:2009-07-17 14:29:37
【问题描述】:
我正在尝试为 XAML 中的资源设置别名,如下所示:
<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:
我应该澄清我确实收到了编译器错误(错误列表中的上述消息),所以这不仅仅是设计师的问题。
更新 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"/>
当然,这些是产生错误的行。
【问题讨论】:
标签: wpf xaml resources antialiasing