Windows Phone использовать GestureService динамический бросок nullreferenceexcpetion

Я использую динамический инструментарий GestureService, приведенный ниже код, помещенный в конструкцию страницы, в порядке, но при нажатии элемента управления, такого как Grid,StackPanel выдаст исключение nullreference.

private void TitlePanel_Tap_1(object sender, System.Windows.Input.GestureEventArgs e) {
    Image img = new Image();
    BitmapImage bitmapImage = new BitmapImage();
    bitmapImage.UriSource = new Uri("/Assets/background.png", UriKind.Relative);
    img.Source = bitmapImage;
    var gesture = GestureService.GetGestureListener(img);
}

Трассировка стека исключений:

at Microsoft.Phone.Controls.GestureListener.RaiseGestureEvent[T](Func`2 eventGetter, Func`1 argsGetter, Boolean releaseMouseCapture)
at Microsoft.Phone.Controls.GestureListener.OnTap(Object sender, GestureEventArgs e)
at MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)
An unhandled exception of type 'System.NullReferenceException' occurred in System.Windows.ni.dll

2 ответа

Измените свой код как:

private void TitlePanel_Tap_1(object sender, System.Windows.Input.GestureEventArgs e) {
    Image img = new Image();        
    img.Source = new BitmapImage(new Uri("/Assets/background.png", UriKind.Relative));;
    if(null != img)
    {
          var gesture = GestureService.GetGestureListener(img);
          //Apply your tap events for gesture if you need here
    }
}

Вы должны попробовать этот код. Должно работать с сеткой.

Другие вопросы по тегам