次のように、XAML でリソースのエイリアスを作成しようとしています。
<UserControl.Resources>
<StaticResourceExtension x:Key="newName" ResourceKey="oldName"/>
</UserControl.Resources>
oldNameImageは、 で定義されたタイプ のリソースを参照するだけ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"/>
もちろん、これらはエラーを生成する行です。