运行系统任务栏消息WP8时出现空引用异常
本文关键字:引用 异常 任务栏 消息 WP8 运行系统 | 更新日期: 2023-09-27 18:20:07
当导航到时,我的WP8应用程序会在系统托盘中显示一条消息几秒钟。但我用于显示消息的以下方法总是抛出system.NullReferenceException:对象引用未设置为对象的实例。我很困惑为什么会这样,也许有人能指出问题所在?代码为:
private void runSystrayMessage(bool isVisible, string text, int length)
{
try
{
SystemTray.ProgressIndicator.IsVisible = true;
SystemTray.ProgressIndicator.IsIndeterminate = isVisible;
SystemTray.ProgressIndicator.Text = text;
}
catch (Exception e)
{
Debug.WriteLine("Exception caught" + e);
}
DispatcherTimer timer = new DispatcherTimer();
try
{
timer.Interval = TimeSpan.FromMilliseconds(length);
}
catch(ArgumentOutOfRangeException e)
{
Debug.WriteLine("ArgumentOutOfrangeException caught" + e);
}
timer.Tick += (sender, args) =>
{
try
{
SystemTray.ProgressIndicator.IsVisible = false;
}
catch(System.InvalidOperationException e)
{
Debug.WriteLine("InvalidOperationException caught" + e);
}
timer.Stop();
};
timer.Start();
}
完整的异常消息是:
System.NullReferenceException:对象引用未设置为对象的实例。
位于ContosoSocial.StartPage。<>c_DisplayClass1.b_0(对象发送器,EventArgs参数)
位于MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex,Delegate handlerDelegate,Object sender,Object args)
在MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj、IntPtr unmanagedObjArgs、Int32 argsTypeIndex、Int32 actualArgsTypeIndex和String eventName)
您的问题是您没有在应用程序中创建ProgressIndicator的新实例。你必须实例化一个。在OnNavigatedTo方法中执行。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
SystemTray.ProgressIndicator = new ProgressIndicator();
}
这应该能解决你的问题。