我想別名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