禁用列表框选择的项目颜色

时间:2014-01-26 18:26:54

标签: wpf xaml listbox

我正在使用istBox,我希望在你使用时禁用它的颜色 选中的项目(默认为蓝色)我是这样尝试过的 但是当你选择项目时你没有看到它...,任何想法如何禁用颜色/

<ListBox.Resources>
            <!-- Background of selected item when focussed -->
            <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
                     Color="Transparent" />


        </ListBox.Resources>

更新      

            x:Name="LstUsers" Height="115" Width="150" 

            ItemsSource="{Binding UsersCollectionView}" 
                 AllowDrop="True" 
                  PreviewKeyDown="ListBoxPreviewKeyDown"  
                 PreviewDrop="ListBox_PreviewDrop"
                 PreviewMouseDown="listBox_PreviewMouseMove"
                 Margin="45,119,805,445"
                 MouseUp="listBox_MouseUp"
                 PreviewMouseLeftButtonDown="listBox_PreviewMouseLeftButtonDown"


                  Drop="ListBox_Drop">


        </ItemsControl>

1 个答案:

答案 0 :(得分:0)

使用ItemsControl代替ListBox

它没有列出ListBox的所有精美模板(包括没有高亮颜色)。


正如您在评论中提到的那样,您希望SelectionChanged事件不幸发生not in ItemsControl。只有禁用选择突出显示颜色的其他方法是 覆盖ListBoxItem的模板 。你就是这样做的:

<ListBox>
   <ListBox.ItemContainerStyle>
      <Style TargetType="ListBoxItem">
         <Setter Property="Template">
            <Setter.Value>
               <ControlTemplate TargetType="ListBoxItem">
                   <ContentPresenter
                       Content="{TemplateBinding ContentControl.Content}"
                       ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}"
                       ContentStringFormat="{TemplateBinding ContentControl.ContentStringFormat}"
                       HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"
                       VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}"
                       SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}" />
                </ControlTemplate>
            </Setter.Value>
         </Setter>
      </Style>
   </ListBox.ItemContainerStyle>
</ListBox>