С Новым годом! Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
83 / 27 / 2
Регистрация: 02.09.2019
Сообщений: 276
WPF

Напрягает ошибка XDG0062 Не удается найти ресурс

11.12.2021, 22:04. Показов 3753. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сразу код
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<UserControl x:Class="MyWin.Views.ButtonsPanel"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:viewmodels="clr-namespace:MyWin.ViewModels"
             mc:Ignorable="d" 
             d:DesignHeight="450" d:DesignWidth="800">
    <UserControl.Resources>
        <Style x:Key="ImButPlay" TargetType="Image">
            <Setter Property="Source" Value="pack://application:,,,/Resources/Play.jpg"/>
            <Style.Triggers>                
                <DataTrigger Binding="{Binding RelativeSource=
                                            {RelativeSource Mode=FindAncestor,AncestorType={x:Type Button}}, Path=IsEnabled}"
                        Value="False">
                    <Setter Property="Source" Value="pack://application:,,,/Resources/PlayBW.jpg"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>       
    </UserControl.Resources>
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch"
                            Background="#FFD7ECE9" >
        <Button Width="35" Height="35" Margin="10 0 0 0"
                ToolTip="Воспроизвести"
                IsEnabled="{Binding IsUriValid}"
                Command="{Binding ClickPlayCommand}">
            <Image Style="{StaticResource ImButPlay}"/>
        </Button>
        <Button Width="35" Height="35" Margin="10 0 0 0" />
    </StackPanel>
</UserControl>
Проект компилируется, работает как надо, естественно оба изображения есть в папке Resources, но в режиме редактирования торчит ошибка - Ошибка XDG0062 Не удается найти ресурс "resources/play.jpg".
Запускаю проект, ошибка исчезает, всё работает, закрываю окно, снова высвечивается эта ошибка
Появилась после того как я решил выделить StackPanel с кнопками в отдельный контролл
Ошибка в разметке главного окна вот здесь
XML
1
 <Views:ButtonsPanel  DataContext="{Binding ButtonVM}"/
<Views:ButtonsPanel подчёркнута синим. Если перенести стиль Image в ресурсы главного окна ошибка исчезает. MainWindow и UserControl находятся в одной папке...
Как исправить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.12.2021, 22:04
Ответы с готовыми решениями:

Ошибка: Экземпляру компонента SQL Server Database Engine не удается получить ресурс LOCK в данный момент
Есть хранимая процедура со следующим кодом: USE GO /****** Object: StoredProcedure . Script Date: 07/21/2014 12:06:40...

Не удается найти ресурс с именем "*Name*". Имена ресурсов определяются с учетом регистра
Создал файл &quot;Buttons.xaml&quot; Там расписал стиль кнопки: &lt;Style x:Key=&quot;TabStyle&quot; TargetType=&quot;{x:Type Button}&quot;&gt; ... &lt;/Style&gt; ...

Не удалось найти данный ресурс ошибка iis
насттроил iis запустил по локалке. по ссылке хочу попасть на этот url /Account/Examples/fio.aspx выдает ошибку на эту же страницу...

14
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16118 / 11242 / 2887
Регистрация: 21.04.2018
Сообщений: 33,047
Записей в блоге: 2
11.12.2021, 22:53
Усталый путник, если для Image в окне Свойства выбрать нужную картинку, то какое значение будет вставлено в свойство Source?

Добавлено через 1 минуту
Второй аспект - может быть проблема к самими сеттерами.
Добавьте в ресурсы выше стиля два BitmapImage - для каждого рисунка.
А в стиле задайте ссылку на них через DynamicResource.

Добавлено через 4 минуты
Усталый путник, и привязка в DataTriger выглядит очень криво.
Лучше добавьте в UC булевое DP-свойство и привяжитесь к нему.
А по месту применения, во внешнем контейнере задайте привязку этому свойству к нужному элементу.
0
83 / 27 / 2
Регистрация: 02.09.2019
Сообщений: 276
11.12.2021, 23:20  [ТС]
Элд Хасп,
В свойстве Source из выпадающего списка можно выбрать и /Resources/Play.jpg и /Resources/PlayBW.jpg ошибки в этом случае исчезают
Попробую через DependencyProperty
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16118 / 11242 / 2887
Регистрация: 21.04.2018
Сообщений: 33,047
Записей в блоге: 2
11.12.2021, 23:32
Цитата Сообщение от Усталый путник Посмотреть сообщение
Попробую через DependencyProperty
Это просто совет по улучшению кода, но не относится к вашей ошибке.

А вот BitmapImage и DynamicResource ужн напрямую относятся к вашей проблеме.

Цитата Сообщение от Усталый путник Посмотреть сообщение
В свойстве Source из выпадающего списка можно выбрать и /Resources/Play.jpg и /Resources/PlayBW.jpg ошибки в этом случае исчезают
Вот как вставила Студия, скопируйте это значение и и используйте в ресурсах.
0
83 / 27 / 2
Регистрация: 02.09.2019
Сообщений: 276
12.12.2021, 00:07  [ТС]
Элд Хасп,
так?
XML
1
2
3
4
5
6
7
8
9
10
11
12
<UserControl.Resources>
        <Style x:Key="ImButPlay" TargetType="Image">
            <Setter Property="Source" Value="/Resources/Play.jpg"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding RelativeSource=
                                            {RelativeSource Mode=FindAncestor,AncestorType={x:Type Button}}, Path=IsEnabled}"
                        Value="False">
                    <Setter Property="Source" Value="/Resources/PlayBW.jpg"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </UserControl.Resources>
То же самое, компилируется, работает, но в редакторе, в списке ошибок, та же ошибка
Я писал ранее, что если перенести стиль в разметку гл. окна, ошибка исчезает. Может где-то там собака порылась?

Добавлено через 9 минут
Что ещё странно ошибка высвечивается только в отношении одного рисунка. В свойствах и того и другого в действии при сборке я выставлял и ресурс и содержимое, без разницы. А что правильнее?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16118 / 11242 / 2887
Регистрация: 21.04.2018
Сообщений: 33,047
Записей в блоге: 2
12.12.2021, 00:13
Цитата Сообщение от Усталый путник Посмотреть сообщение
То же самое, компилируется, работает, но в редакторе, в списке ошибок, та же ошибка
Тогда ничего сказать не могу.
Сократите код до минимума достаточного для демонстрации ошибки и выложите архив решения.
Посмотрю завтра.
0
83 / 27 / 2
Регистрация: 02.09.2019
Сообщений: 276
12.12.2021, 20:06  [ТС]
Сделал маленький тестовый проект. Там ошибок не возникает
Смысл простой - пользователь вводит в текстовое поле URI, если он корректен, кнопка становится доступна. Рисунок на кнопке становится цветным, если нет, кнопка не доступна, рисунок, чёрно-белый
В Windows Form "обесцвечивание" рисунка на кнопке происходит автоматом, здесь приходится писать лишний код. Или я ошибаюсь?
Кроме того при получении фокуса, если ссылка не корректна, текстовое поле очищается.
DataTrigger использовал потому что подумал - зачем писать лишний код на c#, если можно сделать то же самое в XAML с помощью триггеров
Образец нашёл здесь

{RelativeSource Mode=FindAncestor,AncestorType={x:Type Button} использовал для того чтоб привязаться к свойству родительской кнопки, так как кнопок будет несколько
С другой стороны для каждой кнопки будут свои иконки, соответственно свой стиль, так что моно написать так, привязываясь к имени конкретной кнопки
XML
1
2
3
4
5
6
7
8
9
10
11
12
<Style x:Key="ImButPlay" TargetType="Image">
            <Style.Triggers>
                <DataTrigger Binding="{Binding ElementName="Имя кнопки", Path=IsEnabled}"
                        Value="True">
                    <Setter Property="Source" Value="pack://application:,,,/Resources/Play.jpg"/>
                </DataTrigger>
                <DataTrigger Binding="{Binding ElementName="Имя кнопки", Path=IsEnabled}"
                        Value="False">
                <Setter Property="Source" Value="pack://application:,,,/Resources/PlayBW.jpg"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
Так лучше?
-------------------------
Возвращаясь к основному проекту, следую вашему совету написал DependencyProperty
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static readonly DependencyProperty ImageButEnProperty =
        DependencyProperty.RegisterAttached("ImageButEn", typeof(bool), typeof(ImageBut),
          new PropertyMetadata(new PropertyChangedCallback(EnabledChanged)));
        private static readonly BitmapImage EnTrue = new(new Uri("pack://application:,,,/Resources/playen.jpg"));
        private static readonly BitmapImage EnFalse = new(new Uri("pack://application:,,,/Resources/PlayBW.jpg"));
        private static void EnabledChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            (d as Image).Source = (bool)e.NewValue ? EnTrue : EnFalse;
        }
        public static void SetImageButEn(UIElement element, bool value)
        {
            element.SetValue(ImageButEnProperty, value);
        }
 
        public static bool GetImageButEn(UIElement element)
        {
            return (bool)element.GetValue(ImageButEnProperty);
        }
    }
Как думаете что произошло?:-) То же самое. Код компилируется, работает, но та же ошибка "отсутствия" рисунка, только уже здесь
XML
1
<Image Views:ImageBut.ImageButEn="{Binding ElementName=PlayBut, Path=IsEnabled}"/>
Сейчас думаю привязать Image Source к ViewModel и передавать соответствующие иконки уже из неё
Вложения
Тип файла: rar Test.rar (178.5 Кб, 2 просмотров)
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16118 / 11242 / 2887
Регистрация: 21.04.2018
Сообщений: 33,047
Записей в блоге: 2
12.12.2021, 20:51
Цитата Сообщение от Усталый путник Посмотреть сообщение
Как думаете что произошло?:-) То же самое. Код компилируется, работает, но та же ошибка "отсутствия" рисунка, только уже здесь
Почти на сто процентов, что то с путями и/или свойствами ресурсов.

В архиве проект с ошибкой?
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16118 / 11242 / 2887
Регистрация: 21.04.2018
Сообщений: 33,047
Записей в блоге: 2
12.12.2021, 20:52
Усталый путник, по интерфейсу Форума:
 Комментарий модератора 
При обращении к другому пользователю указывайте его ник в тегах [NICK][/NICK] или цитируйте часть сообщения на которое отвечаете.
В противном случае ему не придёт уведомление о вашем обращении и вы можете не дождаться ответа на своё сообщение.

Для вставки ника: введите ник, выделите его и нажмите кнопку "Динамик" на панели редактора сообщений.
Или кликните по нику автора сообщения в панели слева от текста его сообщения.

Для вставки цитаты: выделите нужную цитату, должна появиться всплывающая кнопка "Цитировать", нажмите её.
0
83 / 27 / 2
Регистрация: 02.09.2019
Сообщений: 276
12.12.2021, 21:06  [ТС]
Элд Хасп,
Цитата Сообщение от Элд Хасп Посмотреть сообщение
В архиве проект с ошибкой?
Нет. В архиве проект без ошибки. Структура папок та же что и в большом проекте
Ещё странная вещь -ошибка после закрытия приложения появляется не всегда. где-то 1 раз из 4-5 ошибка не появляется.
Я несколько раз очищал решение, удалял рисунок, добавлял снова. Что-то глючит и всё
Главное, проект компилируется и работает
Думаю уже по новой проект пересоздать и скопировать готовые классы
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16118 / 11242 / 2887
Регистрация: 21.04.2018
Сообщений: 33,047
Записей в блоге: 2
12.12.2021, 21:35
Цитата Сообщение от Усталый путник Посмотреть сообщение
Нет. В архиве проект без ошибки. Структура папок та же что и в большом проекте
Ещё странная вещь -ошибка после закрытия приложения появляется не всегда. где-то 1 раз из 4-5 ошибка не появляется.
Бывают такие трудно уловимые баги дизайнера.
Связаны с тем, что он кеширует информацию и не всегда этот кеш соответствует сборке компиляции.
Это можно выявлять и чинить, но очень часто это бывает довольно сложно.
Без исходников примера воспроизводящего баг я ничем в этой ситуации помочь не смогу.
Слишком разные могут причины, и нет какого-то одного универсально способа применимого для всех случаев.

Добавлено через 2 минуты
Усталый путник, если есть интерес к выявлению таких багов, то попробуйте изучить как дебажить Студией другой экземпляр Студии с исходниками.
Это делается, но честно предупреждаю, мне шибко это нужно не было, а с хдоду разобраться у меня не получилось.
0
83 / 27 / 2
Регистрация: 02.09.2019
Сообщений: 276
13.12.2021, 00:33  [ТС]
Элд Хасп,
Уффф. Исчезла ошибка, но боюсь зарекаться
привязал свойство Image Source к ViewModel как и собирался
Тем более в дальнейшем, в зависимости от ситуации на той же кнопке может отображаться другая иконка
Сделал следующим образом в View Model
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        private readonly static BitmapImage EnTrue = new(new Uri("/Resources/Play.jpg", UriKind.Relative));
        private readonly static BitmapImage EnFalse = new(new Uri("/Resources/PlayBW.jpg", UriKind.Relative));
        private BitmapImage _butPlayIm = EnFalse;
        public BitmapImage ButPlayIm
        {
            get => _butPlayIm;
            set => Set(ref _butPlayIm, ref value);
        }
        private bool _isUriValid; //True - введённая ссылка валидна
        public bool IsUriValid //Доступность кнопки воспроизведения
        {
            get => _isUriValid;
            set
            {
                if (_isUriValid != value)
                {
                    _isUriValid = value;
                    ButPlayIm = _isUriValid ? EnTrue : EnFalse;
                    OnPropertyChanged();
                }
            }
        }
Ключевое здесь указание относительности пути UriKind.Relative
Информацию взял отсюда
Для доступа к ресурсу здесь применяется относительный путь с указанием папки и названия файла. Однако в реальности все используемые в xaml пути трансформируются в объекты Uri. Так, если бы нам пришлось устанавливать изображение в коде c#, то нам пришлось бы написать что-то вроде следующего:

myImage.Source = new BitmapImage(new Uri("Images/river.jpg", UriKind.Relative));
А вот в тестовом проекте, который я выше выкладывал та же ошибка вдруг всплыла:-) Я его уже не редактировал
0
83 / 27 / 2
Регистрация: 02.09.2019
Сообщений: 276
13.12.2021, 12:13  [ТС]
Добавлено через 1 минуту
Элд Хасп
Всё же не понятно чем его путь pack://application:,,,/Resources/Play.jpg не устраивает, и относительный путь в XAML
Действительно, трудноуловимый и странный баг. Ну платформа net 5.0 Относительно новая, и, как я читал, слышал, порою глючная
Ну да ладно, исчезла ошибка и хорошо
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16118 / 11242 / 2887
Регистрация: 21.04.2018
Сообщений: 33,047
Записей в блоге: 2
13.12.2021, 12:41
Цитата Сообщение от Усталый путник Посмотреть сообщение
Действительно, трудноуловимый и странный баг. Ну платформа net 5.0 Относительно новая, и, как я читал, слышал, порою глючная
Это не связанно с .Net.
Это проблема Студии.
Если бы проблема была в .Net, то ошибка бы вылазила в рунтайм.

Как я писал выше, Студия (дизайнер XAML) использует не саму сборку (ведь её может и не быть на момент Дизайна), а некое её отражение, кеш.
И пути в этом отражении отличаются от путей в самой сборке при её запуске на исполнение.
Чтобы отлавливать это надо определять режим дизайна и динамически менять пути.
Это сложно, да, и редко кому нужно.
И поэтому мало кто этим занимается и, соответственно, мало информации по этому поводу.
1
83 / 27 / 2
Регистрация: 02.09.2019
Сообщений: 276
13.12.2021, 12:50  [ТС]
Элд Хасп,
Да, вы мне посоветовали изучить как дебажить Студией другой экземпляр и дважды предупредили что это сложно. Ну так как ошибка исчезла, и, надеюсь, нашёлся способ её побороть, пока "дебажничество" отложу до лучших времён. В любом случае - спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.12.2021, 12:50
Помогаю со студенческими работами здесь

Ошибка сервера в приложении '/'. Не удалось найти данный ресурс
Когда перехожу на страницу /home/history, то вылазит такая ошибка. при этом на изначально созданные страницы заходит без проблем. ...

Ошибка: "Не удается запустить программу: Не удается найти указанный файл"
Написал вот такую вот мини програмку ( я только начинаю учиться) #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; ...

Ошибка: "Windows не удается применить конфигурацию. Не удается найти папку WINDOWS"
Прошу помощи. При установки системы Windows 7 на SSD c флешки после этапа распаковки останавливается, не грузится, затем выдает ошибку....

Ошибка "не удается найти представления"
здравствуйте у меня выходить ошибка не удается найти представления как исправить его без переустоновки лотуса

Ошибка: не удается найти файл
Добрый вечер. Создаю проект в VS19, внутри него cpp и txt файлы. Текстовый файл - аргумент командной строки, указываю путь к нему, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru