Как удалить левую синюю линию на выбранных элементах списка? - PullRequest
1 голос
/ 08 мая 2009

Я нашел этот код, который заменяет стиль выбора по умолчанию на собственный стиль для элемента ListBoxItem в ListBox. Однако слева от стиля по умолчанию все еще есть небольшая синяя линия, которую я не могу удалить ни при каких изменениях отступов или полей.

Как удалить эту синюю линию и полностью определить стиль выбранного ListBoxItem?

альтернативный текст http://tanguay.info/web/external/blueLineLeft.png

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

        <DataTemplate x:Key="ItemTemplate" DataType="{x:Type local:Person}">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="Auto" />
                </Grid.ColumnDefinitions>

                <TextBlock Grid.Column="0" Text="{Binding Path=Name, StringFormat=Name: \{0\}}" />
                <TextBlock Grid.Column="1" Text="{Binding Path=Age, StringFormat=Age: \{0\}}" />
            </Grid>
        </DataTemplate>

        <DataTemplate x:Key="SelectedTemplate" DataType="{x:Type local:Person}">
            <Grid Background="Yellow">

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

                <TextBlock Foreground="Black" Grid.Row="0" Grid.Column="0" Text="Person" FontSize="14" FontWeight="Bold" />
                <TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding Path=Name, StringFormat=Name: \{0\}}" />
                <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Path=Age, StringFormat=Age: \{0\}}" />

                <TextBlock Grid.Row="2" Grid.Column="0" Text="Address" FontSize="14" FontWeight="Bold" />
                <StackPanel Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Orientation="Horizontal">
                    <TextBlock Text="{Binding Address}" />
                    <TextBlock Text="{Binding City, StringFormat= \{0\}}" />
                    <TextBlock Text="{Binding State, StringFormat= \{0\}}" />
                    <TextBlock Text="{Binding Zip, StringFormat= \{0\}}" />
                </StackPanel>
            </Grid>
        </DataTemplate>

        <Style TargetType="{x:Type ListBoxItem}" x:Key="ContainerStyle">
            <Setter Property="ContentTemplate" Value="{StaticResource ItemTemplate}" />
            <Setter Property="Margin" Value="5" />
            <Style.Triggers>
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="ContentTemplate" Value="{StaticResource SelectedTemplate}" />
                </Trigger>
            </Style.Triggers>
        </Style>

    </Window.Resources>

    <ListBox HorizontalContentAlignment="Stretch" Margin="10" x:Name="lstPeople" ItemsSource="{Binding People}" ItemContainerStyle="{StaticResource ContainerStyle}" />

</Window>

Ответы [ 2 ]

4 голосов
/ 08 мая 2009

Я почти уверен, что это ошибка, поскольку у некоторых людей была эта проблема с шаблоном ListBoxItem.

Чтобы исправить, просто добавьте:

<Setter Property="Padding" Value="0,0,0,0"/>

к вашему ContainerStyle шаблону. Первоначально 2,0,0,0.

1 голос
/ 08 мая 2009

Посмотрите на этот ответ на похожий вопрос . По сути, если вы хотите изменить стиль ListBox, чтобы выбранные элементы имели другой цвет фона, проще просто изменить цвет «HighlightBrush», чтобы выбранный элемент использовал нужный вам цвет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...