Search code examples
wpfbackgrounddatatemplatelistboxitem

Change ListBoxItem Background Color when mouse is over on the listBoxItem


I need to set change background color for list item when mouse is over. Here is my code:

    <DataTemplate x:Key="ListBoxSubCategoryListTemplate" DataType="{x:Type ListBoxItem}">
        <StackPanel>
            <Button x:Name="btnSubCategoryList" Template="{StaticResource subCategoryListItems}" 
                    Content="{Binding Path=sub_category_name}" 
                    Background="Transparent"
                    Height="25"/>
        </StackPanel>
    </DataTemplate>

    <ControlTemplate x:Key="subCategoryListItems" TargetType="{x:Type Button}">
        <StackPanel FlowDirection="LeftToRight" Orientation="Horizontal" >
            <TextBlock Width="150" 
                       Height="{TemplateBinding Button.Height}" 
                       x:Name="textBlockSubCategoryName" 
                       Background="{TemplateBinding Button.Background}" 
                       Text="{TemplateBinding Button.Content}" 
                       FontWeight="Bold" />
            <Image x:Name="img" Width="15" Height="15" Source="/ExpressFurnitureSystem;component/Images/edit.png" ToolTip="Click to edit"></Image>
        </StackPanel>
    </ControlTemplate>

Please help...How??


Solution

  • How about a Trigger such as:

    <DataTemplate x:Key="ListBoxSubCategoryListTemplate" DataType="{x:Type ListBoxItem}"> 
        <StackPanel> 
            <Button x:Name="btnSubCategoryList" Template="{StaticResource subCategoryListItems}"  
                    Content="{Binding Path=sub_category_name}"  
                    Background="Transparent" 
                    Height="25"/> 
        </StackPanel> 
        <DataTemplate.Triggers> 
            <Trigger Property="IsMouseOver" Value="True"> 
                <Setter TargetName="btnSubCategoryList" Property="Background" Value="Blue" /> 
            </Trigger> 
        </DataTemplate.Triggers> 
    </DataTemplate>