我有一个UserControl
,它基本上包含了ListBox
这样的内容 -
<ListBox x:Name="lb" ItemsSource="{Binding ElementName=UC,Path=Pages}"
Background="{Binding ElementName=UC,Path=Background}"
BorderBrush="Transparent"
ScrollViewer.CanContentScroll="False"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.VerticalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" IsItemsHost="True"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Width="{Binding ElementName=UC,Path=ActualWidth}">
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="20"/>
<ColumnDefinition/>
<ColumnDefinition MinWidth="20"/>
</Grid.ColumnDefinitions>
<ContentPresenter Grid.Column="1" Content="{Binding}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我需要将FocusVisualStyle
设置为{x:Null}
以隐藏此功能,但无论我在何处应用它,我仍然会获得默认的蓝色选择颜色。我已经尝试在ListBox,StackPanel和Grid上设置它,但无济于事。
任何帮助都会很棒。感谢。
答案 0 :(得分:10)
FocusVisualStyle在聚焦元素周围应用“行进蚂蚁”,而不是背景颜色。要更改所选ListBox项的背景颜色,请执行以下操作:
<ListBox>
<ListBox.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Value="Red"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Value="Black"/>
</ListBox.Resources>
</ListBox>
答案 1 :(得分:2)
肯特是正确的当使用Tab键选择控件时,FocusVisualStyle仅与键盘焦点相关。
如果您只是尝试显示没有任何选择功能的列表,您可能只能将ListBox降级为ItemsControl
<ItemsControl x:Name="lb" ItemsSource="{Binding ElementName=UC,Path=Pages}"
Background="{Binding ElementName=UC,Path=Background}"
BorderBrush="Transparent" ScrollViewer.CanContentScroll="False"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.VerticalScrollBarVisibility="Disabled">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" IsItemsHost="True"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<!-- others -->
</ItemsControl>