Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MessagePrompt在首次启动应用程序时崩溃_C#_.net_Silverlight_Windows Phone 7 - Fatal编程技术网

C# MessagePrompt在首次启动应用程序时崩溃

C# MessagePrompt在首次启动应用程序时崩溃,c#,.net,silverlight,windows-phone-7,C#,.net,Silverlight,Windows Phone 7,我有一个问题,我正在WP7应用程序中使用coding4fun dll来显示弹出消息。 我正在使用: Micrsoft.Phone.Controls.Toolkit 编码4fun.Phone.Controls 在第一次启动设备上的部署时,它会崩溃,说值不能为null(parameter name元素),而在emulator上运行正常。我尝试了这个dll的最新版本,但结果是一样的 添加最新版本1.4.8的Micrsoft.Phone.Controls.Toolkit时发出警告,添加silverlig

我有一个问题,我正在WP7应用程序中使用coding4fun dll来显示弹出消息。 我正在使用:

  • Micrsoft.Phone.Controls.Toolkit
  • 编码4fun.Phone.Controls
  • 在第一次启动设备上的部署时,它会崩溃,说值不能为null(parameter name元素),而在emulator上运行正常。我尝试了这个dll的最新版本,但结果是一样的

    添加最新版本1.4.8的Micrsoft.Phone.Controls.Toolkit时发出警告,添加silverlight库可能会导致意外后果

    虽然我尝试了这个dll的其他版本,但仍然没有成功

    我在stacktrace中遇到异常

  • Clarity.Phone.Extensions.DialogService.InitializePup
  • Clarity.Phone.Extensions.DilaogService.Show
  • 基本上,我是在InitializeComponent()之后,在mainpage.xaml(第一页)的构造函数中使用这个弹出窗口,它在部署时第一次启动时抛出null引用类型,但应用程序正在安装。同样,若我在设备上运行应用程序,那个么它将正确显示。 我的代码是:

    notificationPrompt = new MessagePrompt();
    notificationPrompt.Title = "Notification"
    notificationPrompt.Body = "";
    notificationPrompt.ActionPopUpButtons.Clear();
    Button btnDisclaimer = new Button() { Content = "Yes" };
    btnDisclaimerContinue.Click += new RoutedEventHandler(btnNotificationPromptYes_Click);
    Button btnDisclaimerCancel = new Button() { Content = "No" };
    btnDisclaimerCancel.Click += new RoutedEventHandler(btnNotificationPromptNo_Click);
    notificationPrompt.ActionPopUpButtons.Add(btnDisclaimerContinue);
    notificationPrompt.ActionPopUpButtons.Add(btnDisclaimerCancel);
    notificationPrompt.Show();
    

    我认为最好将所有这些代码移到构造函数之外,并将其放在PhoneApplicationPage类的已加载事件(在构建FrameworkElement并将其添加到对象树时发生:)中,或者只重写OnNavigatedTo方法:

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
    
        // What you want here...
        ...
    }
    

    通常,当PhoneApplicationPage的构造函数中出现异常时,它们将不会显示,从而使调试变得更加困难和烦人……

    我认为最好将所有这些代码移到构造函数之外,并将其放在加载的事件中(在构建FrameworkElement并将其添加到对象树中时发生:))或只重写OnNavigatedTo方法:

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
    
        // What you want here...
        ...
    }
    

    通常,当您在PhoneApplicationPage的构造函数中出现异常时,它们将不会显示,这使得调试更加困难和烦人…

    我使用最新的coding4fun库尝试了这段代码,它工作正常,也许您可以提供更多代码或详细信息。提到警告,您是否会尝试包含silverlight工具包而不是windows phone工具包?两者都可以在模拟器上找到,但在设备中抛出空引用异常,并添加最新版本的dll,即1.4.8版,在添加microsoft.phone.controls.toolkit(silverlight警告)时发出警告。基本上,我在mainpage.xaml的构造函数中使用该弹出窗口(第一页)在InitializeComponent()之后,它在部署时第一次启动时抛出null引用类型,但应用程序正在安装。同样,如果我在设备上运行应用程序,它就会正确显示。那么,您是否尝试将提示符.Show()移动到加载的事件中?谢谢Jan K,非常感谢您提醒我加载的事件。我在其他页面中使用Loaded,但由于在第一个页面中并没有要加载的数据,所以我直接调用构造函数中的方法。我将整个方法从构造函数移动到加载的事件,它工作得非常好。我认为问题在于,在弹出窗口出现之前,没有创建弹出窗口的根可视对象,因此引发空引用异常。一次又一次谢谢你,伙计!!我用最新的coding4fun库尝试了这段代码,效果很好,也许您可以提供更多代码或详细信息。提到警告,您是否会尝试包含silverlight工具包而不是windows phone工具包?两者都可以在模拟器上找到,但在设备中抛出空引用异常,并添加最新版本的dll,即1.4.8版,在添加microsoft.phone.controls.toolkit(silverlight警告)时发出警告。基本上,我在mainpage.xaml的构造函数中使用该弹出窗口(第一页)在InitializeComponent()之后,它在部署时第一次启动时抛出null引用类型,但应用程序正在安装。同样,如果我在设备上运行应用程序,它就会正确显示。那么,您是否尝试将提示符.Show()移动到加载的事件中?谢谢Jan K,非常感谢您提醒我加载的事件。我在其他页面中使用Loaded,但由于在第一个页面中并没有要加载的数据,所以我直接调用构造函数中的方法。我将整个方法从构造函数移动到加载的事件,它工作得非常好。我认为问题在于,在弹出窗口出现之前,没有创建弹出窗口的根可视对象,因此引发空引用异常。一次又一次谢谢你,伙计!!OP声明他正在接收一个异常;虽然不在构造函数中放入任何基于逻辑的代码是标准(也是建议的)实践,但您的回答感觉太像是一个注释,对问题没有帮助;虽然不在构造函数中放入任何基于逻辑的代码是标准(也是推荐的)实践,但您的回答感觉太像是一个注释,对这个问题没有帮助。