我認爲實現這一目標的最簡單的方法可能是寬度和圖像的高度綁定到兩個屬性。如果你想改變所有圖像的寬度和高度,你可以在後面的代碼中使用兩個屬性,如果你想能夠單獨做到這一點,只需做相同的事情,但綁定到收集項目中的屬性。
<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將增加大小與圖像的寬度/高度/減少。
列表框或列表框項目的高度和寬度? – 2010-11-15 13:57:03