开发者

Silverlight: Make the listbox background transparent?

I have a ListBox. It has a white background. How can I get rid of it?

Here is the XAML I'm trying. Whatever I do, I can't get rid of that background. (I'm not sure if it's on each item, which happen to take up all the space in the ListBox, or if it's on the background of the ListBox itself.)

<ListBox x:Name="topThreeHits" ItemsSource="{Binding TopThreeHits}" Margin="0,10,0,0">
                <ListBox.ItemContainerStyle>
                    <Style TargetType="ListBoxItem">
                        <Setter Pro开发者_运维技巧perty="Background" Value="Transparent" />
                    </Style>
                </ListBox.ItemContainerStyle>
                <ListBox.ItemsPanel>
                    <ItemsPanelTemplate>
                        <StackPanel Orientation="Horizontal" Background="Transparent"/>
                    </ItemsPanelTemplate>
                </ListBox.ItemsPanel>
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Margin="10,0" Background="Transparent">
                            <Image Source="{Binding Image, FallbackValue=/PlumPudding;component/Images/file.png}" />
                            <TextBlock>
                            <Run Text="{Binding Name, FallbackValue='File Name'}" FontWeight="Bold" />
                            <Run Text="." Foreground="#787878" FontWeight="Light" />
                            <Run Text="{Binding TypeExtension, FallbackValue='type'}" Foreground="#787878" FontWeight="Light" />
                            </TextBlock>
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

I'm using Silverlight 4.


Your code is working fine, and properly setting the background style. I am assuming what you want to do is blow away the default item container completely so there is no background, including rollovers, etc.

The best way to do that is like this:

     <ListBox.ItemContainerStyle>
      <Style TargetType="ListBoxItem">
        <Setter Property="Template" >
          <Setter.Value>
            <ControlTemplate TargetType="ListBoxItem">
              <ContentPresenter Content="{TemplateBinding Content}" />
            </ControlTemplate>
          </Setter.Value>
        </Setter>
      </Style>
    </ListBox.ItemContainerStyle>


I tried to add a Border around the ListBox with a Green Background and set the Background to Transparent for your ListBox and it seems to be working fine.

<Border Background="Green">
    <ListBox x:Name="topThreeHits"
             Background="Transparent"
             ItemsSource="{Binding Customers}" Margin="0,10,0,0">
        <ListBox.ItemContainerStyle>
            <Style TargetType="ListBoxItem">
                <Setter Property="Background" Value="Transparent" />
            </Style>
        </ListBox.ItemContainerStyle>
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal" Background="Transparent"/>
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Margin="10,0" Background="Transparent">  
                    <Image Source="{Binding Image, FallbackValue=/PlumPudding;component/Images/file.png}" />  
                    <TextBlock>  
                    <Run Text="{Binding Name, FallbackValue='File Name'}" FontWeight="Bold" />  
                    <Run Text="." Foreground="#787878" FontWeight="Light" />  
                    <Run Text="{Binding TypeExtension, FallbackValue='type'}" Foreground="#787878" FontWeight="Light" />  
                    </TextBlock>  
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Border>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜