버튼 컨트롤을 사용하여이 애플리케이션에 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