Как сделать так, чтобы цвет элемента списка менялся динамически
Привет,
Я изучаю WPF atm, я хотел бы сделать listbox, чтобы его цвет элементов списка устанавливался действиями мыши. У меня есть несколько этикеток, которые имеют цвет. На событии mouse down я хочу захватить цвет метки, а на элементе Mouse up элемента Listbox изменить цвет фона. Я использую .NET 4.5 WPF в VS 2015. Как бы мне это сделать, пожалуйста?
Что я уже пробовал:
<Style TargetType="{x:Type ListBoxItem}"> <Setter Property="Background" Value="Silver"/> <Style.Triggers> <Trigger Property="IsSelected" Value="True"> <Setter Property="Background" Value="Red"/> </Trigger> </Style.Triggers> </Style> </ListBox.Resources> <!--</ListBox.Resources>--> </ListBox> <Button x:Name="button" Content="Button" HorizontalAlignment="Left" Height="29" Margin="55,475,0,0" VerticalAlignment="Top" Width="214" Click="button_Click" Grid.ColumnSpan="2"/> <StackPanel HorizontalAlignment="Left" Height="362" Margin="169,76,0,0" VerticalAlignment="Top" Width="79" Grid.Column="1"> <Label x:Name="label1" MouseDown="label1_MouseDown" Content="" HorizontalAlignment="Left" Height="51" Width="79" Background="Red"/> <Label x:Name="label2" MouseDown="label2_MouseDown" Content="" HorizontalAlignment="Left" Height="51" Width="79" Background="Green"/> <Label x:Name="label3" MouseDown="label3_MouseDown" Content="" HorizontalAlignment="Left" Height="51" Width="79" Background="Yellow"/> <Label x:Name="label4" MouseDown="label4_MouseDown" Content="" HorizontalAlignment="Left" Height="51" Width="79" Background="Blue"/> <Label x:Name="label5" MouseDown="label5_MouseDown" Content="" HorizontalAlignment="Left" Height="51" Width="79" Background="Magenta"/> <Label x:Name="label6" MouseDown="label6_MouseDown" Content="" HorizontalAlignment="Left" Height="51" Width="79" Background="Cyan"/> <Label x:Name="label7" DragOver="label7_DragLeave" DragLeave="label7_DragLeave" Content="Random" HorizontalAlignment="Left" Height="51" Width="79" Background="White" FontSize="18" BorderThickness="1,0,1,1" BorderBrush="Black"/> </StackPanel> </Grid> </Window>