WPF ListBox项目样式 - 水平对齐问题

时间:2015-05-26 23:34:11

标签: wpf

Here's the list I'm creating

您可以看到每个列表项周围都有边框。由于某种原因,边框不会水平拉伸。

这是ListBox XAML:

    <ListBox Grid.Row="3"
             Grid.Column="0"
             BorderBrush="SteelBlue"
             ItemsSource="{Binding Devices}"
             SelectedItem="{Binding SelectedDevice}"
             MaxWidth="350">

        <ListBox.Resources>
            <Style TargetType="ListBoxItem">
                <Style.Resources>
                    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
                    <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent"/>
                    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/>
                </Style.Resources>
            </Style>
        </ListBox.Resources>

        <ListBox.ItemTemplate>
            <DataTemplate>

                <Border HorizontalAlignment="Stretch"
                        BorderBrush="SteelBlue"
                        CornerRadius="3"
                        MinHeight="65"
                        Margin="3">

                    <Border.Style>
                        <Style TargetType="Border">
                            <Setter Property="BorderThickness" Value="0" />
                            <Style.Triggers>
                                <Trigger Property="IsMouseOver" Value="True">
                                    <Setter Property="BorderThickness" Value="1" />
                                </Trigger>
                            </Style.Triggers>
                        </Style>
                    </Border.Style>

                    <Grid>

                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                        </Grid.RowDefinitions>

                        <Image Grid.Row="0" 
                               Grid.RowSpan="2"
                               Grid.Column="0"
                               Source="/DFT.Falcon6.UI.Desktop;component/Media/Images/fc6logo.png"
                               Height="50"
                               Width="50"
                               Margin="5"/>
                        <TextBlock Grid.Row="0"
                                   Grid.Column="1"
                                   Text="{Binding UnitIdentifier}"
                                   Style="{StaticResource devicetextStyle}"
                                   Margin="2"/>
                        <TextBlock Grid.Row="1"
                                   Grid.Column="1"
                                   Text="{Binding IPAddress}"
                                   Style="{StaticResource devicetextStyle}"
                                   Margin="2"/>

                    </Grid>

                </Border>

            </DataTemplate>
        </ListBox.ItemTemplate>

    </ListBox>

我已将边框的Horizo​​ntalAlignment设置为Stretch.Anyone看到了什么问题?

由于

1 个答案:

答案 0 :(得分:1)

您在ListBox上寻找的是HorizontalContentAlignment="Stretch"

<ListBox Grid.Row="3"
             Grid.Column="0"
             BorderBrush="SteelBlue"
             ItemsSource="{Binding Devices}"
             SelectedItem="{Binding SelectedDevice}"
             HorizontalContentAlignment="Stretch"
             MaxWidth="350">