#c# #wpf #material-design-in-xaml
#c# #wpf #material-design-in-xaml
Вопрос:
Я использовал 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. каждый из них в другом listview.
я хочу, чтобы при нажатии пользователем на Icon
событие обрабатывалось в PackIconMember_MouseDown
В моем коде выше нет ошибки, проблема иногда в том, что код работает. Я имею в виду, что когда пользователь нажимает на значок, он обрабатывает событие. но иногда пользователю нужно щелкнуть несколько раз, чтобы обработать событие. Я не знаю, почему это происходит.
Есть идеи о том, что я должен с этим делать? или любое предложение по замене MouseDown
события.
это работает только тогда, когда я нажимаю на значок синего цвета. это не работает, когда я нажимаю на пробел, который я показываю стрелкой. как я могу сделать, чтобы это работало, когда пользователь нажимает в любом месте на значок? возможно ли это?
если я нажимаю внутреннюю кнопку, значок пакета не отображается
<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>
Комментарии:
1. почему бы вам не обернуть значок внутри кнопки? и использовать реальное событие щелчка?
2. Если щелкнуть в том же месте, событие всегда должно вызываться. Что вы делаете в обработчике событий?
3. @ mm8 работает только тогда, когда я нажимаю на значок с синим пятном. дескриптор события — это событие для перехода к другому представлению
Ответ №1:
Установите Background
свойство PackIcon
в Transparent
:
<materialDesign:PackIcon Kind="CardMembership" MouseDown="PackIconMember_MouseDown" Height="40" Width="25" Foreground="#FF0959A8"
Background="Transparent" />
Это также должно фиксировать щелчки по «пустым» частям значка.
Ответ №2:
Сделайте Значок как часть кнопки, как:
<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
Но вы должны установить маржу