Scott Nimrod
Scott Nimrod

Reputation: 11595

Remove selection border from ListView

enter image description hereI am unable to remove the borders on my listview.

I have searched numerous links and still cannot remove this border.

ListView:

    <ListView x:Name="ConsoleView" Grid.Row="1" Grid.Column="0" ItemsSource="{Binding ConsoleLines}"
              ClipToBounds="True" SelectedItem="{Binding ConsoleLine}" Margin="5"
              Background="Black" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch"
              VerticalAlignment="Stretch" VerticalContentAlignment="Stretch" BorderThickness="0" Focusable="False">
        <ListView.ItemTemplate>
            <DataTemplate>
                <TextBox Style="{StaticResource TextBoxCommandStyle}" Text="{Binding Content, UpdateSourceTrigger=PropertyChanged}"
                         TextChanged="OnTextChanged" Loaded="OnCommandLineLoaded" BorderThickness="0" />
            </DataTemplate>
        </ListView.ItemTemplate>

        <ListView.ItemContainerStyle>
            <Style TargetType="{x:Type ListViewItem}">
                <Setter Property="Background" Value="{x:Null}" />
                <Setter Property="BorderBrush" Value="{x:Null}" />
                <Setter Property="Focusable" Value="False" />
            </Style>
        </ListView.ItemContainerStyle>

        <ListView.Resources>
            <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
            <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent"/>
        </ListView.Resources>
    </ListView>

Style:

    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
    <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent"/>

    <Style TargetType="{x:Type ListViewItem}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ListViewItem}">
                    <Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
                        <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsEnabled" Value="false">
                            <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>


<Style x:Key="TextBoxCommandStyle" TargetType="TextBox">
            <Setter Property="HorizontalAlignment" Value="Stretch" />
            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
            <Setter Property="Padding" Value="5" />
            <Setter Property="Margin" Value="5" />
            <Setter Property="Background" Value="Black" />
            <Setter Property="Foreground" Value="Cyan"/>
            <Setter Property="FontSize" Value="20" />

            <Style.Triggers>
                <DataTrigger Binding="{Binding Status}" Value="{x:Static viewModels:CommandStatus.Succeeded}">
                    <DataTrigger.EnterActions>
                        <BeginStoryboard Storyboard="{StaticResource Storyboard1}"/>
                    </DataTrigger.EnterActions>
                </DataTrigger>
            </Style.Triggers>
        </Style>

Upvotes: 0

Views: 2561

Answers (2)

yahalo
yahalo

Reputation: 13

I have had the same problem, this code fixed it for me:

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="Padding" Value="0"/>
        <Setter Property="Margin" Value="0"/>
        <Setter Property="BorderThickness" Value="0"/>
    </Style>
</ListView.ItemContainerStyle>

It still has a tiny border. I have not figured out the solution to that yet.

Picture of said tiny border

I hope I can help you with this, also sorry for any incorrect grammar, english is not my first language.

Upvotes: 0

keymusicman
keymusicman

Reputation: 1291

  1. Your "Style" contains two setters for "Template" property. Why? Is it mistake?
  2. Your ListViewItem style from "Style" is redefined in ListView.ItemContainerStyle. To inherit style, you should write:

    Style TargetType="{x:Type ListViewItem}" BasedOn="{StaticResource {x:Type ListViewItem}}"

  3. To remove selection color:

{

<ListView.Resources>
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" 
                 Color="Transparent"/>
</ListView.Resources>

}

Source: Disable blue border for selected Listview item

Upvotes: 1

Related Questions