Я думаю, что самый простой способ добиться этого - связать ширину и высоту изображения с двумя свойствами.Если вы хотите изменить ширину и высоту всех изображений, вы можете использовать два свойства в коде позади, и если вы хотите сделать это по отдельности, просто сделайте то же самое, но связывайтесь со свойствами в элементах коллекции.
<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>
и в коде позади вы определяете два свойства
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;
}
Таким образом, ListBoxItems будет увеличиваться / уменьшаться в размере с шириной / высотой изображений.