如何避免在列表框中选择改变数据模板

本文关键字:改变 数据 选择 何避免 列表 | 更新日期: 2023-09-27 18:01:32

我在WPF应用程序中使用VS2012。我在主窗口中有一个列表框。列表框有background = null——这意味着背景等于主窗口的背景。

列表框有一个数据模板,但我有一个问题,即在列表框中最后选择的项目,它改变的背景颜色为白色?我怎样才能避免这种情况呢?

我上传了一张图片作为说明。

*EDIT -这张图说明了这个问题http://i57.photobucket.com/albums/g202/RolleKn/pic2_zps94f2907a.jpg

问候。

如何避免在列表框中选择改变数据模板

要删除SelectedItem的背景变化,您必须覆盖listboxitem的控件模板。

试试这个

<Style  TargetType="{x:Type ListBoxItem}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="HorizontalContentAlignment" Value="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
<Setter Property="VerticalContentAlignment" Value="{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
<Setter Property="Padding" Value="2,0,0,0"/>
<Setter Property="Template">
    <Setter.Value>
        <ControlTemplate TargetType="{x:Type ListBoxItem}">
            <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>