WP7 - 图像点击事件?

时间:2011-01-26 04:49:59

标签: silverlight windows-phone-7

有没有办法为图片分配点击事件?我想将事件分配给列表框中显示我的数据的删除和搜索按钮。有没有办法使用图像控件执行此操作,还是必须在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>

6 个答案:

答案 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");
    }