WPF: добавление изображения в шаблон элемента ListBox - PullRequest
5 голосов
/ 17 января 2010

Я создаю приложение WPF со списком, который привязываю к именам проектов. В качестве декоративного элемента я хочу поместить небольшой значок рядом с каждым элементом в списке, аналогично тому, как это делает Outlook в своем списке личных папок. Для начала я собираюсь использовать одно и то же изображение для всех элементов в списке.

Вот разметка, которая у меня есть (я перенесу ее в словарь ресурсов после ее работы):

<ListBox.Resources>
    <ImageBrush x:Key="ProjectIcon" ImageSource="Images/project.png" />
</ListBox.Resources>
<ListBox.ItemTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal">
            <Image Source="{StaticResource ProjectIcon}"/>
            <TextBlock Text="{Binding Path=Name}" />
        </StackPanel>
    </DataTemplate>
</ListBox.ItemTemplate>

У меня ошибка в ресурсе изображения, но я не уверен, как ее исправить. Какие-либо предложения? Спасибо.

1 Ответ

11 голосов
/ 17 января 2010

Свойство Source для Image имеет тип ImageSource, а не ImageBrush. Следующее должно работать:

<ListBox.Resources>
    <BitmapImage x:Key="ProjectIcon" UriSource="Images/project.png" />
</ListBox.Resources>
<ListBox.ItemTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal">
            <Image Source="{StaticResource ProjectIcon}"/>
            <TextBlock Text="{Binding Path=Name}" />
        </StackPanel>
    </DataTemplate>
</ListBox.ItemTemplate>
...