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
}
}