События мыши не запускаются в Windows WPF - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть простое приложение WPF

<Grid>
    <Border BorderBrush="Black" BorderThickness="1" 
            HorizontalAlignment="Left" Height="388" Margin="10,10,0,0" VerticalAlignment="Top" Width="329"/>
    <Image x:Name="PreviewImg" HorizontalAlignment="Left" Height="400" Margin="10,10,0,0" VerticalAlignment="Top" Width="329"       MouseDown="PreviewImgMouse" AllowDrop="True" PreviewMouseWheel="PreviewImg_PreviewMouseWheel" MouseEnter="Entered"       Focusable="True"></Image>
    <Label Content="Matched Products" HorizontalAlignment="Left" Margin="344,10,0,0" VerticalAlignment="Top" Width="290"/>
    <Label Content="Unknown Products" HorizontalAlignment="Left" Margin="661,10,0,0" VerticalAlignment="Top" Width="290"/>
    <TextBlock x:Name="MatchedProducts" HorizontalAlignment="Left" Margin="349,36,0,0" TextWrapping="Wrap" Text="TextBlock"           VerticalAlignment="Top" Height="362" Width="295"/>
    <TextBlock x:Name="UnknownProducts" HorizontalAlignment="Left" Margin="666,36,0,0" TextWrapping="Wrap" Text="TextBlock"           VerticalAlignment="Top" Height="362" Width="295"/>
    <Grid HorizontalAlignment="Left" Height="50" Margin="10,410,0,0" VerticalAlignment="Top" Width="957">
        <Button x:Name="FinalizeBtn" Content="Finalize" HorizontalAlignment="Left" Margin="826,10,0,0" VerticalAlignment="Top"        Width="120" Height="30"/>
        <Button x:Name="NewEntryBtn" Content="Create new entry" HorizontalAlignment="Left" Margin="701,10,0,0"
                VerticalAlignment="Top" Width="120" Height="30"/>
        <Button x:Name="FreeBtn" Content="Free Button" HorizontalAlignment="Left" Margin="576,10,0,0" VerticalAlignment="Top"        Width="120" Height="30"/>
    </Grid>
</Grid>

Все события, определенные в компоненте Image, не запускаются, я попробовал все поиски первой страницы Google, но ни одно из них не работает.

Я прочитал о разнице событий Routed в моем приложении, и MouseDown и PreviewMouseDown должны работать.

Единственное, что может блокировать изображение - это Border компонент, но я пробовал без него и до сих пор ничего, и поскольку оно объявлено первым, изображение должно наложить его ...?

Все имена функций верны, так как они были сгенерированы автоматически.

Я могу вставить в файл .cs, если это поможет.

Спасибо

E1: Каким-то образом это работает сейчас, но я понятия не имею, что это исправило ... Одним из изменений, которое я сделал, стало изменение изображения внутри рамки:

<Border BorderBrush="Black" BorderThickness="1" HorizontalAlignment="Left" Height="388" Margin="10,10,0,0" VerticalAlignment="Top" Width="329">
    <Image x:Name="PreviewImg" Height="400" Margin="0" VerticalAlignment="Center" HorizontalAlignment="Center" Width="329" MouseDown="PreviewImgMouse" AllowDrop="True" PreviewMouseWheel="PreviewImg_PreviewMouseWheel" MouseEnter="Entered" Focusable="True"/>
</Border>

Но я не могу представить, что это исправило это.

Ответы [ 3 ]

0 голосов
/ 01 сентября 2018

Один из способов добиться того, чего вы хотите, - поместить изображение в кнопку и удалить стили кнопки. Здесь отличный пример:

Управление изображениями WPF с событием Click

0 голосов
/ 01 сентября 2018

Для продвинутых пользователей

Для начинающих

  • Компонент Image нуждается в источнике для запуска событий, отправленных @ Örvar. Добавление прозрачного источника - решение, хотя и хакерское.

Если я или кто-то еще найду лучшее решение, я обновлю этот ответ. (Или проголосуй вниз и уйди, что тоже помогло ...)

0 голосов
/ 01 сентября 2018

Вам необходимо определить источник для вашего изображения, например <Image Source="image.jpg". Без изображения события не будут срабатывать.

...