378 Stimmen

Wie man eine ListBox ItemTemplate horizontal die volle Breite der ListBox zu strecken?

Ich möchte, dass sich die ListItems mit ihrem orangefarbenen Hintergrund über die gesamte Breite der Listbox erstrecken.

Derzeit sind sie nur so breit wie der Vorname + Nachname.

Ich habe alle Elemente, die ich kann, eingestellt: HorizontalAlignment="Stretch".

Ich möchte den Hintergrund der ListboxItems zu erweitern, wie der Benutzer die Listbox streckt, so dass ich nicht in absolute Werte setzen möchten.

Was muss ich tun, damit die Hintergrundfarbe der ListBoxItems die Breite der ListBox ausfüllt?

<Window x:Class="TestListBoxSelectedItemStyle.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:TestListBoxSelectedItemStyle"
    Title="Window1" Height="300" Width="300">

    <Window.Resources>
        <local:CustomerViewModel x:Key="TheDataProvider"/>

        <DataTemplate x:Key="CustomerItemTemplate">
            <Border CornerRadius="5" Background="Orange" HorizontalAlignment="Stretch" Padding="5" Margin="3">
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" Width="Auto">
                    <TextBlock HorizontalAlignment="Stretch">
                    <TextBlock.Text>
                        <MultiBinding StringFormat="{}{0} {1}">
                            <Binding Path="FirstName"/>
                            <Binding Path="LastName"/>
                        </MultiBinding>
                    </TextBlock.Text>
                    </TextBlock>
                </StackPanel>
            </Border>
        </DataTemplate>

    </Window.Resources>

    <Grid>
        <ListBox ItemsSource="{Binding Path=GetAllCustomers, Source={StaticResource TheDataProvider}}"
                 ItemTemplate="{StaticResource CustomerItemTemplate}"/>
    </Grid>
</Window>

0voto

Ich hatte auch das gleiche Problem, als schnelle Abhilfe habe ich Blend verwendet, um festzustellen, wie viel Füllung hinzugefügt wurde. In meinem Fall war es 12, so dass ich einen negativen Rand verwendet, um es loszuwerden. Jetzt kann alles richtig zentriert werden

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X