我試圖在我的應用程序中使用按鈕控件將同一種想法解釋到這個問題上 ContextMenu on tap instead of tap and hold。ContextMenu點擊而不是點擊並按住按鈕控制
但是,執行下面的代碼時我得到了NullRefrenceException
。
<Button Content="Menu" Margin="0,0,316,699" Grid.Row="1" x:Name="MenuButton" >
<toolkit:GestureService.GestureListener>
<toolkit:GestureListener Tap="GestureListener_Tap" />
</toolkit:GestureService.GestureListener>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Header="Add to Favorite" Click="AddFavorite_Click"/>
<toolkit:MenuItem Header="Samples" Click="Samples_Click"/>
<toolkit:MenuItem Header="Send to friends" Click="SendToFriends_Click"/>
<toolkit:MenuItem Header="Links" Click="Links_Click"/>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</Button>
private void GestureListener_Tap(object sender, Microsoft.Phone.Controls.GestureEventArgs e)
{
Button button = sender as Button;
ContextMenu contextMenu = ContextMenuService.GetContextMenu(button);
if (contextMenu.Parent == null)
{
contextMenu.IsOpen = true;
}
}
而實際上,只是用邊境管制示例代碼讓我由於某種原因,相同NullReferenceException
。下面是我得到的例外的堆棧。
at Microsoft.Phone.Controls.ContextMenu.UpdateVisualStates(Boolean useTransitions)
at Microsoft.Phone.Controls.ContextMenu.OnOpened(RoutedEventArgs e)
at Microsoft.Phone.Controls.ContextMenu.<OpenPopup>b__12(Object s, EventArgs 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)
有沒有人可以幫助我如何讓代碼工作?我對Windows Phone應用程序開發非常陌生,所以任何幫助將不勝感激!
哪一行給出錯誤? –
我在上面添加了堆棧跟蹤。行結束後我會得到這個異常。我一定在做一些非常愚蠢的事情。 – Meimio