ListBox content not completely stretching across listbox

北战南征 提交于 2019-12-24 09:49:47

问题


I am trying to make a list box where I have complete control over the look of each item in the list box.

I can make the item horizontally stretch. However, there's this thin sliver of blue to the left of a selected item. (In the picture, the middle item is selected).

Can I make this blue strip go away?

alt text http://img44.imageshack.us/img44/949/boundlistboxdisplay.jpg

Here's the complete code.

<Window x:Class="SimpleListTemplate.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     >
    <Window.Resources>
        <XmlDataProvider x:Key="DcCharacters">
            <x:XData>
                <Characters xmlns="">
                    <Character HeroName="Catwoman" Identity="Selina Kyle" />
                    <Character HeroName="Batman" Identity="Bruce Wayne" />
                    <Character HeroName="Starman" Identity="Jack Knight" />
                </Characters>
            </x:XData>
        </XmlDataProvider>
    </Window.Resources>
    <Grid>
        <ListBox 
             ItemsSource="{Binding Source={StaticResource DcCharacters}, XPath=//Characters/*}" 
             HorizontalContentAlignment="Stretch">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Label 
                        Content="{Binding XPath=@HeroName}" 
                        Height="40" 
                        VerticalContentAlignment="Center"
                        Background="LightGreen"
                        BorderThickness="2"
                        BorderBrush="DarkGreen"/>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    </Grid>
</Window>

回答1:


Here is an update for your code.

<Window x:Class="SimpleListTemplate.Window1"     
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
 <Window.Resources>
    <XmlDataProvider x:Key="DcCharacters">
        <x:XData>
            <Characters xmlns="">
                <Character HeroName="Catwoman" Identity="Selina Kyle" />
                <Character HeroName="Batman" Identity="Bruce Wayne" />
                <Character HeroName="Starman" Identity="Jack Knight" />
            </Characters>
        </x:XData>
    </XmlDataProvider>
    <Style TargetType="{x:Type ListBoxItem}" x:Key="ContainerStyle">
        <Setter Property="Padding" Value="0,0,0,0"/>
    </Style>
</Window.Resources>
<Grid>
    <ListBox 
        ItemsSource="{Binding Source={StaticResource DcCharacters}, XPath=//Characters/*}"
        ItemContainerStyle="{StaticResource ContainerStyle}" 
        HorizontalContentAlignment="Stretch">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Label 
                    Content="{Binding XPath=@HeroName}"
                    Height="40"
                    VerticalContentAlignment="Center"
                    Background="LightGreen"
                    BorderThickness="2"
                    BorderBrush="DarkGreen"/>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Grid>
</Window>

This may solve your problem.



来源:https://stackoverflow.com/questions/1409842/listbox-content-not-completely-stretching-across-listbox

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!