Заголовок ListView с интерактивными изображениями

#wpf #xaml #listview

#wpf #xaml #listview

Вопрос:

Я создал следующий заголовок для ListView в WPF, но события наведения курсора мыши из обоих изображений не запускаются, и я думаю, это потому, что заголовок обрабатывает мышь. Могу ли я отключить заголовок? Или как-то заставить изображения управлять мышью?

Пример приложения

XAML:

 <ListView>
    <ListView.View>
        <GridView>
            <GridViewColumn>
                <GridViewColumn.Header>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="Colmun1" VerticalAlignment="Center"/>
                        <Image Source="Edit.png" Width="24" Height="24" MouseUp="Image_MouseUp"/>
                        <Image Source="Cancel.png" Width="24" Height="24" MouseUp="Image_MouseUp"/>
                    </StackPanel>
                </GridViewColumn.Header>
            </GridViewColumn>
        </GridView>
    </ListView.View>
    <ListViewItem Content="Test"/>
    <ListViewItem Content="Test"/>
    <ListViewItem Content="Test"/>
    <ListViewItem Content="Test"/>
    <ListViewItem Content="Test"/>
</ListView>
  

Комментарии:

1. Скорее всего, событие up обрабатывается до того, как оно попадет на изображение. Попробуйте наведение курсора мыши и посмотрите, сработает ли он. Поймите, теперь вы можете захотеть обработать наведение курсора мыши — это просто для отладки.

2. Я могу обработать событие наведения курсора мыши. Я могу использовать это, конечно, но, если возможно, я предпочитаю наведение курсора мыши…

Ответ №1:

Попробуй Мышкой.Предварительный просмотр Прикрепленного события

Обновить

Вы правы. Это работает, только если вы обернете Image в Button .

 <Button PreviewMouseUp="Image_MouseUp">
    <Image Source="Edit.png" Width="24" Height="24" />
</Button>
  

Может быть, у кого-то другого есть еще лучшее решение.

Комментарии:

1. Изменение изображения на <Image Source="Edit.png" Width="24" Height="24" Mouse.PreviewMouseUp="Image_MouseUp"/> не помогает…