Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Snak2013
0 / 0 / 1
Регистрация: 22.08.2013
Сообщений: 70
#1

Привязка к картинке из файла ресурсов .resx - C# WPF

22.10.2015, 07:46. Просмотров 659. Ответов 4
Метки нет (Все метки)

Доброго времени суток, есть файл ресурсов и картинка добавленная в него пытаюсь отобразить картинку в WPF форме

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
<Window x:Class="Test.View.MainWindow"
                xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 
        xmlns:Res ="clr-namespace:ResourcesDictionaries.Resources;assembly=ResourcesDictionaries"
 
                Title="MainWindow" Height="350" Width="525">
 
 <Window.Resources>
        <Res:ImageResource x:Key="Img"/>
<HierarchicalDataTemplate x:Key="CategoryTemplate" 
                                          ItemTemplate="{StaticResource BDTemplate}" 
                                          ItemsSource="{Binding Tablets}">
            <StackPanel Orientation="Horizontal">
                <Image Width="16"
                           Height="16"
                           Margin="3"
                           VerticalAlignment="Center"
                       Source="{Binding folder_icon, Mode=OneWay, Source={StaticResource Img}}"/><!-- пытаюсь привязать картинку --> 
                <TextBlock Margin="2"
                               VerticalAlignment="Center"
                               Text="{Binding Name}" />
            </StackPanel>
        </HierarchicalDataTemplate>
</Window.Resources>
 
</Window>
Код нормально компилируется но картинка не отображается подскажите пожалуйста что я сделал не так.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2015, 07:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Привязка к картинке из файла ресурсов .resx (C# WPF):

Занести в массив текст их текстового файла находящийся в Resource.resx
У меня есть файл bd.txt, он находится в Resource.resx, а он в свою очередь...

Привязка файла .xaml к DataGrid
Есть файл SampleCustomers.xaml: &lt;local:CustomerCollection ...

Привязка файла с расширением к приложению
Имеется приложение. В приложении сохраняются файлы с расширением, скажем, .ext...

Получение файла из ресурсов
Здравствуйте! Перетащил в Обозреватель решений в свой проект файл. Как теперь...

Сохранение и загрузка файла из ресурсов
Нужна помощь! У меня есть проект с формами(ListBox, TextBox, Button 3х), и мне...

Как извлекать файлы из .resx
Привет :yes: Помогите пожалуйста и расскажите как извлекать файлы из .resx...

4
Martovskij
99 / 39 / 12
Регистрация: 30.01.2011
Сообщений: 129
Завершенные тесты: 4
22.10.2015, 08:50 #2
Картинка в сборке должна компилироваться с атрибутом Resource, проверьте это.

XML
1
2
3
4
5
 <Image Width="16"
                           Height="16"
                           Margin="3"
                           VerticalAlignment="Center"
                       Source="{Binding folder_icon, Mode=OneWay, Source={StaticResource Img}}"/><!-- пытаюсь привязать картинку -->
Следует заменить на
XML
1
2
3
4
5
 <Image Width="16"
                           Height="16"
                           Margin="3"
                           VerticalAlignment="Center"
                       Source="{StaticResource Img}"/> <!-- При условии, что этот ресурс и есть картинка, а не объект, внутри которого лежит картинка -->
1
Snak2013
0 / 0 / 1
Регистрация: 22.08.2013
Сообщений: 70
22.10.2015, 10:12  [ТС] #3
Спасибо за ответ Martovskij я проверил атрибут картинки установил его Resource но картинка все равно не отобразилась. Img это объект
C#
1
2
3
4
public class ImageResource 
{
 
}
Класс создан автоматически при создании файла ресурсов ImageResource.resx в котором и хранится картинка
свойство "folder_icon" на которое выполнена привязка имеет вид:
C#
1
2
3
4
5
public static System.Drawing.Bitmap folder_icon {
            get {
                object obj = ResourceManager.GetObject("folder_icon", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
0
Martovskij
99 / 39 / 12
Регистрация: 30.01.2011
Сообщений: 129
Завершенные тесты: 4
22.10.2015, 10:42 #4
Лучший ответ Сообщение было отмечено Snak2013 как решение

Решение

Неправильный подход для WPF.
System.Drawing.Bitmap (как и вообще складирование картинок в .resx файл) - используется в Winforms.
В WPF данными для Image является объект System.Windows.Media.ImageSource и его наследники.
В WPF картинки слкадываются не в ресурсный файл, а лежат рядом с исходниками (как правило в отдельной папке).
В WPF обращение к картинкам происходит следующим образом:
<BitmapImage x:Key="MyImageSource" UriSource="../Media/Image.png" /> <!--В Вашем случае здесь Uri типа Pack://... -->

<Image Source="{StaticResource MyImageSource}" />
1
Snak2013
0 / 0 / 1
Регистрация: 22.08.2013
Сообщений: 70
23.10.2015, 06:39  [ТС] #5
Martovskij, Спасибо помогло
0
23.10.2015, 06:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2015, 06:39
Привет! Вот еще темы с решениями:

Неудачная запись пользовательских данных в *.resx
Доброго времени суток. Создал пользовательский контрол (назовем его UC), в...

Использование файла ресурсов скомпилированного через csc.exe
Цель создать приложение с внедренными ресурсами, а потом при запуске приложения...

Вставка символов форматирования тескста в строку файла ресурсов
Мне надо именть 1 строку, которая имеет сиволы перехода на новую строку, что-бы...

Можно ли как-то из XAML получить доступ к Resources.resx
Собственно название темы и есть вопрос. На картинке показан файл, про который я...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru