当鼠标悬停时,为什么ListBoxItem不会突出显示?

时间:2012-03-14 21:03:09

标签: wpf listbox themes mousehover

我已定义以下ListBox并使用找到here的ShinyRed主题。但是,我发现如果我将鼠标悬停在标签的文本上,行颜色只会在鼠标悬停时发生变化。如果我在列表项目的任何位置,我想让行改变颜色。我该如何解决这个问题?

<ListBox Grid.Row="1" ItemsSource="{Binding Categories}" ScrollViewer.CanContentScroll="False">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <Label Content={Binding DisplayName}"/>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

1 个答案:

答案 0 :(得分:1)

使用ListBox.ItemContainerStyle拉伸项目。

<ListBox.ItemContainerStyle>
    <Style TargetType="{x:Type ListBoxItem}" BasedOn="{StaticResource {x:Type ListBoxItem}}">
        <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
    </Style>
</ListBox.ItemContainerStyle>

(如果它仍然只对文本做出反应,请尝试将Label.Background设置为Transparent进行点击测试。如果仍然不能正常工作{{ 1}}那个主题的控制模板有点打击)