GetPrimaryTouchPoint报ARGUMENTEXCEPTION错误解决方法

来源:互联网 发布:python 日期时间 编辑:程序博客网 时间:2024/04/30 00:49
Windows Phone 7触控操作方案之一便是使用静态全局类Touch。但是,我在使用过程中,发现存在一个问题,描述如下。

我先运行一个PhoneApplicationPage,名叫MenuView。我在其中添加了一个按钮事件,代码如下:

        void btnStartGame_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            NavigationService.Navigate(new Uri("/View/PushBox.xaml", UriKind.Relative));
        }

即点击菜单界面中的一个按钮将导航到另一个PhoneApplicationPage页面PushBox.xaml。

在页面PushBox.xaml中,我想使用触控操作,于是有以下代码:

    public partial class PushBox : PhoneApplicationPage
    {
................................
        public PushBox()
        {
            InitializeComponent();

            Touch.FrameReported += new TouchFrameEventHandler(Touch_FrameReported);
 
        }
我的想法是,想控制当玩家点击(因为我现在只能使用模拟器)屏幕上的一个位置即开始捕获。于是,有以下代码:

        void Touch_FrameReported(object sender, TouchFrameEventArgs e)
        {
            if (sender == null) return;

           
            if (e.GetPrimaryTouchPoint(this).Action == TouchAction.Down)
            {
.........................

但是,在运行程序中,经常(不是每一次)出现当点击屏幕上的按钮时触发一个异常,大致内容如下:

"The parameter is incorrect.--ArgumentException was unhandled"


进一步分析发现,上面的sender参数为null。于是,我添加了上面方法中的第一句,便避免了问题。目前原因不得而知......
0 0