2010-01-17 9 views
5

sto creando un'applicazione WPF con una casella di riepilogo che sto vincolanti per proiettare i nomi. Come elemento decorativo, voglio mettere una piccola icona accanto a ogni elemento della lista, simile al modo in cui Outlook fa nella sua lista delle cartelle personali. Per cominciare, ho intenzione di usare la stessa immagine per tutti gli elementi della lista.WPF: Aggiunta di un'immagine a un ListBox ItemTemplate

Ecco il markup che ho finora (mi sposterò in un dizionario risorse dopo che è di lavoro):

<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> 

Ho un errore nella risorsa immagine, ma io non sono sicuro come risolvere il problema. Eventuali suggerimenti? Grazie.

risposta

11

La Source proprietà di un Image è di tipo non ImageSourceImageBrush. Il seguente dovrebbe funzionare:

<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> 
+0

Ha funzionato perfettamente - grazie ancora! –