1

我可以使用背景属性将图像设置为列表框。但是如何将理想的图像设置为列表框项目的背景?

谢谢。

4

2 回答 2

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 都会显示一只考拉。

于 2012-05-08T13:15:47.387 回答
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>
于 2013-10-22T12:35:13.230 回答