Je pense que la meilleure façon d'y parvenir est probablement de lier la largeur et la hauteur de l'image à deux propriétés. Si vous souhaitez modifier la largeur et la hauteur de toutes les images, vous pouvez utiliser deux propriétés dans le code et, si vous voulez être capable de le faire individuellement, faites la même chose en associant les propriétés dans les éléments de la collection.
<ListBox name="myListBox">
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding Path=Image}"
Width="{Binding ElementName=myWindow,
Path=ListBoxTemplateWidth}"
Height="{Binding ElementName=myWindow,
Path=ListBoxTemplateHeight}"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
et dans le code derrière vous définissez deux propriétés
private double m_listBoxTemplateHeight;
public double ListBoxTemplateHeight
{
get
{
return m_listBoxTemplateHeight;
}
private set
{
m_listBoxTemplateHeight = value;
OnPropertyChanged("ListBoxTemplateHeight");
}
}
private double m_listBoxTemplateWidth;
public double ListBoxTemplateWidth
{
get
{
return m_listBoxTemplateWidth;
}
private set
{
m_listBoxTemplateWidth = value;
OnPropertyChanged("ListBoxTemplateWidth");
}
}
if (someCondition == true)
{
ListBoxTemplateHeight = 200;
ListBoxTemplateWidth = 200;
}
De cette façon, les ListBoxItems augmenteront/diminution de la taille à la largeur/hauteur des images.
la hauteur et la largeur de la zone de liste ou de l'élément de zone de liste? –