从ListView中删除选择边框

时间:2015-02-21 20:16:38

标签: wpf xaml

enter image description here我无法删除列表视图上的边框。

我搜索了很多链接但仍然无法移除此边框。

的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>

样式:

    <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>

1 个答案:

答案 0 :(得分:1)

  1. 你的&#34;风格&#34;包含两个用于&#34;模板&#34;属性。为什么?这是错误吗?
  2. 来自&#34; Style&#34;的ListViewItem样式在ListView.ItemContainerStyle中重新定义。要继承样式,您应该写:

    样式TargetType =&#34; {x:Type ListViewItem}&#34; BasedOn =&#34; {StaticResource {x:Type ListViewItem}}&#34;

  3. 删除选择颜色:

  4. {

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

    }

    来源:Disable blue border for selected Listview item