是什么产生了这个错误'异常被调用的目标抛出了'
本文关键字:目标 调用 错误 产生了 是什么 异常 | 更新日期: 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);
}