有没有办法为图片分配点击事件?我想将事件分配给列表框中显示我的数据的删除和搜索按钮。有没有办法使用图像控件执行此操作,还是必须在BLEND中为按钮创建样式?
<ListBox x:Name="lbPills" ItemsSource="{Binding pillItemsCollection}" SelectionChanged="lbPills_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel x:Name="DataTemplateStackPanel" Orientation="Horizontal">
<TextBlock FontFamily="Segoe WP Semibold" FontWeight="Bold" FontSize="30" VerticalAlignment="Top" Margin="20,0">*</TextBlock>
<StackPanel>
<TextBlock x:Name="ItemText" Text="{Binding Name}" Margin="-2,-13,0,0" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
</StackPanel>
<Image Source="Images/delete.png" Margin="10,0"/>
<Image Source="Images/search.png" Margin="10,0"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
答案 0 :(得分:13)
据我所知,图像本身没有用于点击和手势事件的监听器(它们必须通过如前所述的手势附加)。解决这个问题的一种方法是重新模板按钮:
<Button>
<Button.Template>
<ControlTemplate>
<Image Source="Images/delete.png" Margin="10,0"/>
</ControlTemplate>
</Button.Template>
</Button>
在按钮上设置模板时,您将覆盖手机使用的默认模板(具有额外的填充,粗边框等)。使用此方法将允许您绑定按钮单击事件。
答案 1 :(得分:9)
您可以使用手势监听器来检测点击(点击)事件。这是一个演练。
WP7 Tip of the Day: Silverlight Toolkit: Gestures
或者,您可以将图像放入Button控件中并在混合中重新模板化以获得所需的外观。
答案 2 :(得分:2)
处理ManipulationCompleted
事件(任何点击,双击,轻扫,爱抚或抚弄)到您的图像。所以:
<Image Source="Images/delete.png" Margin="10,0"/>
变为<Image x:Name="ImageDelete" ManipulationCompleted="ImageDelete_ManipulationCompleted" Source="Images/delete.png" Margin="10,0"/>
。然后在ImageDelete_ManipulationCompleted
处理程序中跟踪它从sender
进来并做你的事情。
如果您只想跟踪滑动而不是点击,只需在e.IsInertial
ManipulationCompletedEventArgs
上执行if语句。
答案 3 :(得分:0)
如果您的ListBox
不在Panorama
控件中,那么您只需处理列表框的SelectionChanged
事件,然后在{{1}中显示删除和搜索选项对于页面。
答案 4 :(得分:0)
我使用MouseLeftButtonDown和MouseLeftButtonUp。它取代了标签或点击设备,就像你用鼠标在电脑上点击事件一样。它适用于我的应用程序。试试这个,我想你会很高兴。
答案 5 :(得分:0)
它以这种方式为我工作(使Padding =“ - 10”删除按钮边框和按钮内的填充)
<Button x:Name="Channells" Click="Thumb_Click" Padding="-10" >
<Image
VerticalAlignment="Center"
Source="Assets/Images/thumb2.jpg"/>
</Button>
* CS
void Thumb_Click(object sender, RoutedEventArgs e)
{
Debug.WriteLine("Thumb Clicked");
}