是什么产生了这个错误'异常被调用的目标抛出了'

本文关键字:目标 调用 错误 产生了 是什么 异常 | 更新日期: 2023-09-27 18:19:02

我正在开发一个Windows Phone 8应用程序,我在页面启动上创建了一个弹出元素,并用作静态变量弹出。

private void Application_Launching(object sender, LaunchingEventArgs e)
{
     RemoveCurrentDeactivationSettings();
     APPCommon.popupsetup();
}
//APPCOMMON Page
public static Popup busyindicator;
public static void popupsetup()
{
    busyindicator = new Popup()
    {
        Child = new Border()
        {
            Child = new Telerik.Windows.Controls.RadBusyIndicator()
            {
                FontSize = 25,
                IsRunning = true,
                IsEnabled = true,
                Content = "Processing...",
                Foreground = new SolidColorBrush(Colors.White)
            },
            Opacity = 0.8,
            Name = "busyindicate",
            Background = new SolidColorBrush(Colors.Black),
            Width = Application.Current.Host.Content.ActualWidth,
            Height = Application.Current.Host.Content.ActualHeight
        }
    };
}

它工作得很好,即使在重模式下。然而,当应用程序进入IDLE模式(锁定屏幕或开始菜单)时,我很少会出现错误,当我从开始菜单返回应用程序而不是使用后退键时,我得到一个错误,说"异常已被调用的目标抛出"在我的DefaultPage上。

元素已经是另一个元素的子元素。'

public MainPage()
{
     InitializeComponent();
     App.RootFrame.RemoveBackEntry();
     this.LayoutRoot.Children.Add(APPCommon.busyindicator); // Error Occurs
}

因此,我想知道为什么会发生这种情况,我应该做些什么来解决这个问题

是什么产生了这个错误'异常被调用的目标抛出了'

我建议使用"factory"方法代替Popup的共享实例。使用全局静态UI元素是自找麻烦…

public static Popup CreatePopup()
{
    return new Popup
    {
        // ...
    };
}

:

public MainPage()
{
     InitializeComponent();
     this.LayoutRoot.Children.Add(APPCommon.CreatePopup());
}

try this:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    base.OnNavigatedTo(e);
    App.RootFrame.RemoveBackEntry();
    this.LayoutRoot.Children.Add(APPCommon.busyindicator);
}