Как использовать событие click в MaterialDesign: PackIcon в WPF? - PullRequest
0 голосов
/ 23 апреля 2019

Я использовал materialDesign:PackIkon в своем приложении WPF.

это мой код в xaml для PackIcon

<ListViewItem Background="White" Height="55" >
         <StackPanel Orientation="Horizontal">
             <materialDesign:PackIcon Kind="CardMembership" MouseDown="PackIconMember_MouseDown" Height="40" Width="25" Foreground="#FF0959A8" />
             <Button  x:Name="btnMember" Click="btnMember_Click" Content="Member" Background="{x:Null}" BorderBrush="{x:Null}" Foreground="Black" FontSize="10" />
           </StackPanel>
  </ListViewItem>

У меня есть несколько PackIcon в моем xaml. каждый из них в отдельном списке.

я хочу, чтобы, когда пользователь щелкнул по Icon, он обработал событие в PackIconMember_MouseDown

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

Есть идеи, что мне с этим делать? или любое предложение заменить событие MouseDown.

its only work when I click on icon with the blue color

это работает, только когда я нажимаю на иконку с синим цветом. это не работает, когда я нажимаю на пустое пространство, которое я показываю стрелкой. Как я могу сделать, чтобы он работал, когда пользователь нажимает в любом месте на иконку? это возможно?

если я делаю внутри кнопки, packIcon не появляется

 <Button Background="{x:Null}" BorderBrush="{x:Null}" Foreground="Black" Height="20" Width="25" Margin="10">
    <materialDesign:PackIcon MouseDown="PackIconMember_MouseDown" TouchDown="PackIconMember_MouseDown" Kind="CardMembership" />
 </Button>

Ответы [ 2 ]

1 голос
/ 23 апреля 2019

Установите для свойства Background PackIcon значение Transparent:

<materialDesign:PackIcon Kind="CardMembership" MouseDown="PackIconMember_MouseDown" Height="40" Width="25" Foreground="#FF0959A8"
                         Background="Transparent" />

Это должно также захватывать клики на «пустых» частях иконки.

0 голосов
/ 23 апреля 2019

Сделать иконку как часть кнопки, например:

<Button  x:Name="btnMember" Click="btnMember_Click" Content="Member" Background="{x:Null}" BorderBrush="{x:Null}" Foreground="Black" FontSize="10" >
     <materialDesign:PackIcon Kind="CardMembership" Height="40" Width="25" Foreground="#FF0959A8" />
</Button

Но вы должны установить поле

...