我已定义以下ListBox并使用找到here的ShinyRed主题。但是,我发现如果我将鼠标悬停在标签的文本上,行颜色只会在鼠标悬停时发生变化。如果我在列表项目的任何位置,我想让行改变颜色。我该如何解决这个问题?
<ListBox Grid.Row="1" ItemsSource="{Binding Categories}" ScrollViewer.CanContentScroll="False">
<ListBox.ItemTemplate>
<DataTemplate>
<Label Content={Binding DisplayName}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
答案 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}}那个主题的控制模板有点打击)