Я пытаюсь создать псевдоним ресурса в 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 жалуется на этот код? Любые идеи относительно резолюции, пожалуйста?
Примечание. Я использую WPF в .NET 3.5 SP1.
Обновление 1:
Я должен подтвердить, что я do получаю ошибки компилятора (вышеупомянутые сообщения в списке ошибок), так что это не просто проблема дизайнера.
Обновление 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"/>
Конечно, это строки, которые генерируют ошибки.