可以将WP7 Silver Light Gesture Listener添加到StackPanel吗?

时间:2012-07-13 19:20:28

标签: c# silverlight windows-phone-7 windows-phone-7.1

我正在开发一款小型Windows Phone 7 Silver Light应用。当用户点击并保持相应的条目时,我只想要一个上下文菜单弹出列表框中的项目。我已阅读了几篇文章,最常见的答案是使用Silverlight工具包。我很兴奋,因为我已经将它设置好并在应用程序中用于其他一些事情。所以我找到了一个教程,解释了如何在按钮上设置它。我尝试时失败了,因为我正在为按钮设置两次内容:

    <Button Width="Auto" MinWidth="460" Height="Auto" HorizontalAlignment="Stretch">
        <Button.Content>
            <toolkit:GestureListener Hold="GestureListener_Hold" />
            <StackPanel ..... >
                .......
            </<StackPanel>
        </Button.Content>
    </Button>

它告诉我“属性'内容'不止一次。 所以在再次搜索之后我发现了一篇很好的文章http://forums.create.msdn.com/forums/t/85263.aspx,它表明我可以将语句移动得更像:

    <StackPanel Orientation.....>
        <toolkit:GestureListener Hold="GestureListener_Hold" />  
        <TextBlock
            Text="{Binding ItemName}" FontSize="{StaticResource PhoneFontSizeLarge}"
            HorizontalAlignment="Stretch" VerticalAlignment="Center" Height="40"/>
    </StackPanel>

它告诉我“类型'GestureListener'的值不能添加到'UIElementCollection'类型的集合或字典中。

我很欣赏任何方法或全新方法的帮助。 提前谢谢!

1 个答案:

答案 0 :(得分:0)

您需要将GestureListener设置为GestureService.GestureListener附加属性的值:

<Button Width="Auto" MinWidth="460" Height="Auto" HorizontalAlignment="Stretch"> 
    <Button.Content> 
        <StackPanel ..... > 
            <toolkit:GestureService.GestureListener>
                <toolkit:GestureListener Hold="GestureListener_Hold" />
            </toolkit:GestureService.GestureListener>
            ....... 
        </<StackPanel> 
    </Button.Content> 
</Button> 

对于它的价值,该工具包已经包含了一个ContextMenu帮助器。见here