将背景图像设置为列表框项

时间:2012-05-08 10:43:58

标签: windows-phone-7 listbox listboxitem

我可以使用background属性将图像设置为Listbox。 但是,如何将所需图像设置为列表框项目的背景?

感谢。

2 个答案:

答案 0 :(得分:2)

您必须重新定义ListBox的ItemTemplate属性。如果你对XAML没有信心,你应该尝试使用Expression Blend。

以下是您如何看待XAML的示例。我使用Pivot Template应用程序创建了一个新的应用程序。

        <ListBox x:Name="FirstListBox" Margin="0,0,-12,0" ItemsSource="{Binding Items}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                  <StackPanel Margin="0,0,0,17" Width="432" Height="78">
                    <StackPanel.Background>
                        <ImageBrush Stretch="Fill" ImageSource="/Koala.jpg"/>
                    </StackPanel.Background>
                      <TextBlock Text="{Binding LineOne}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
                      <TextBlock Text="{Binding LineTwo}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
                  </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

因此默认的ItemTemplate使用StackPanel作为主容器。你想在这里做的是将图像设置为StackPanel的背景。这就是以下几行代表的内容:

                <StackPanel.Background>
                    <ImageBrush Stretch="Fill" ImageSource="/Koala.jpg"/>
                </StackPanel.Background>

使用上面的代码,您将ImageBrush设置为StackPanel的Background属性。

使用该代码,每个ListBoxItem将显示一个考拉。

答案 1 :(得分:1)

使用边框包装列表框项目并设置背景可能会有所帮助。请遵循此示例

  <Border Width="380" Height="60" Margin="0,0,0,10" >
       <Border.Background>
          <ImageBrush ImageSource="Images/menu_bg.png" />
       </Border.Background>
       <TextBlock  Foreground="Black" FontSize="22" Text="{Binding}" HorizontalAlignment="Center" VerticalAlignment="Center"  />
   </Border>