选择要在WinPhone中处理的正确事件类型

时间:2014-02-02 06:22:48

标签: wpf windows-phone-7 windows-phone-8 windows-phone

我在页面中有一个游戏板:

<ItemsControl x:Name="Squares"
                      ItemsSource="{Binding Squares}">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <toolkit:WrapPanel/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Border 
                            Background="{Binding Status, 
                                    Converter={StaticResource SquareStatusToBrushConverter}}"
                            Tag="{Binding StraightCoord}"
                            micro:Message.Attach="[Event MouseEnter] = [Action HandleMouseEnterOnCell($source)]">
                        <TextBlock 
                                   Text="{Binding Letter}" />
                    </Border>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>

它由边框呈现的正方形(包含文本块)组成。我需要能够让用户选择一个手指在屏幕上的正方形序列(没有单独的点击)。

为了实现这一点,我决定处理MouseEnter事件并且发生了一些奇怪的事情。 当我在MouseEnter事件处理程序的开头设置断点时,我到达它并按F5。一切正常。当我关闭该断点时,似乎MouseEnter开始被触发两次并且我收到了我自己的验证异常,该异常表示用户不能多次选择相同的方块。我当然会处理这个例外。但在描述的情况下,我甚至不希望它被解雇!

我做错了什么?有没有办法用其他事件完成这样的任务?如果您有一个建议,MouseEnter事件在没有断点的情况下触发了两次?

1 个答案:

答案 0 :(得分:1)

只需将UIElement.IsHitTestVisible设置为false,即可触发